@openscout/protocol 0.3.6-dev.2 → 0.3.6-dev.4
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/actors.d.ts +1 -1
- package/dist/actors.d.ts.map +1 -1
- package/dist/broker-routes.d.ts +1 -0
- package/dist/broker-routes.d.ts.map +1 -1
- package/dist/broker-routes.js +1 -0
- package/dist/common.d.ts +1 -1
- package/dist/common.d.ts.map +1 -1
- package/dist/host-integrations.d.ts +1 -1
- package/dist/host-integrations.d.ts.map +1 -1
- package/dist/host-integrations.js +12 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/invocations.d.ts +2 -0
- package/dist/invocations.d.ts.map +1 -1
- package/dist/machines.d.ts +43 -2
- package/dist/machines.d.ts.map +1 -1
- package/dist/machines.js +53 -2
- package/dist/mcp-events.d.ts +21 -0
- package/dist/mcp-events.d.ts.map +1 -0
- package/dist/mcp-events.js +1 -0
- package/dist/mesh.d.ts +1 -1
- package/dist/mesh.d.ts.map +1 -1
- package/dist/mesh.js +2 -1
- package/dist/messages.d.ts +2 -0
- package/dist/messages.d.ts.map +1 -1
- package/dist/scout-delivery.d.ts +2 -0
- package/dist/scout-delivery.d.ts.map +1 -1
- package/dist/scout-dispatch.d.ts +6 -0
- package/dist/scout-dispatch.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/actors.ts +1 -0
- package/src/broker-routes.ts +1 -0
- package/src/common.ts +1 -0
- package/src/host-integrations.ts +14 -4
- package/src/index.ts +1 -0
- package/src/invocations.ts +2 -0
- package/src/machines.ts +91 -4
- package/src/mcp-events.ts +22 -0
- package/src/mesh.ts +2 -1
- package/src/messages.ts +2 -0
- package/src/scout-delivery.ts +2 -0
- package/src/scout-dispatch.ts +11 -1
package/dist/actors.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ActorKind, AdvertiseScope, AgentState, DeliveryTransport, MetadataMap, ScoutId } from "./common.js";
|
|
2
2
|
export type AgentClass = "general" | "builder" | "reviewer" | "researcher" | "operator" | "bridge" | "system";
|
|
3
3
|
export type AgentCapability = "chat" | "invoke" | "deliver" | "speak" | "listen" | "bridge" | "summarize" | "review" | "execute";
|
|
4
|
-
export type AgentEndpointTransport = Extract<DeliveryTransport, "local_socket" | "http" | "mcp_poll" | "devin_cloud_cli" | "websocket" | "pairing_bridge" | "claude_channel" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "pi_rpc" | "grok_acp" | "kimi_acp" | "cursor_acp" | "opencode_acp" | "devin_acp" | "tmux" | "cursor_exec" | "cursor_cli_text" | "cursor_cli_stream_json" | "cursor_sdk_local">;
|
|
4
|
+
export type AgentEndpointTransport = Extract<DeliveryTransport, "local_socket" | "http" | "mcp_poll" | "devin_cloud_cli" | "websocket" | "pairing_bridge" | "claude_channel" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "pi_rpc" | "grok_acp" | "kimi_acp" | "cursor_acp" | "opencode_acp" | "devin_acp" | "tmux" | "ghostty" | "cursor_exec" | "cursor_cli_text" | "cursor_cli_stream_json" | "cursor_sdk_local">;
|
|
5
5
|
export declare const AGENT_HARNESSES: readonly ["codex", "claude", "grok", "grok-acp", "kimi", "flue", "cursor", "opencode", "devin", "native", "worker", "bridge", "http", "pi"];
|
|
6
6
|
export type AgentHarness = typeof AGENT_HARNESSES[number];
|
|
7
7
|
export type WakePolicy = "manual" | "on_demand" | "keep_warm";
|
package/dist/actors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACf,cAAc,GACd,MAAM,GACN,UAAU,GACV,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,MAAM,GACN,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,CACrB,CAAC;AAEF,eAAO,MAAM,eAAe,6IAelB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../src/actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,WAAW,EACX,OAAO,EACR,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,GACZ,UAAU,GACV,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,eAAe,GACvB,MAAM,GACN,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACf,cAAc,GACd,MAAM,GACN,UAAU,GACV,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,MAAM,GACN,SAAS,GACT,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,CACrB,CAAC;AAEF,eAAO,MAAM,eAAe,6IAelB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;AAE9D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACrD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,YAAY,EAAE,eAAe,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,EAAE,sBAAsB,CAAC;IAClC,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
package/dist/broker-routes.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare const scoutBrokerPaths: {
|
|
|
4
4
|
readonly home: "/v1/home";
|
|
5
5
|
readonly node: "/v1/node";
|
|
6
6
|
readonly snapshot: "/v1/snapshot";
|
|
7
|
+
readonly notificationRouting: "/v1/notification-routing";
|
|
7
8
|
readonly conversationProjection: "/v1/conversation-projection";
|
|
8
9
|
readonly capabilities: "/v1/capabilities";
|
|
9
10
|
readonly runtimeCatalog: "/v1/runtime-catalog";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broker-routes.d.ts","sourceRoot":"","sources":["../src/broker-routes.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"broker-routes.d.ts","sourceRoot":"","sources":["../src/broker-routes.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CnB,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAG3E;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAKvE;AAED,6EAA6E;AAC7E,wBAAgB,gCAAgC,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,kCAAkC,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE/E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE"}
|
package/dist/broker-routes.js
CHANGED
|
@@ -7,6 +7,7 @@ export const scoutBrokerPaths = {
|
|
|
7
7
|
home: "/v1/home",
|
|
8
8
|
node: "/v1/node",
|
|
9
9
|
snapshot: "/v1/snapshot",
|
|
10
|
+
notificationRouting: "/v1/notification-routing",
|
|
10
11
|
conversationProjection: "/v1/conversation-projection",
|
|
11
12
|
capabilities: "/v1/capabilities",
|
|
12
13
|
runtimeCatalog: "/v1/runtime-catalog",
|
package/dist/common.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type DeliveryStatus = "accepted" | "peer_acked" | "running" | "completed"
|
|
|
6
6
|
export type DeliveryFailureReason = "peer_unreachable" | "peer_rejected" | "agent_offline" | "timeout" | "harness_error" | "dispatch" | "cancelled";
|
|
7
7
|
export type DeliveryPolicy = "best_effort" | "must_ack" | "durable" | "ephemeral";
|
|
8
8
|
export type DeliveryTargetKind = "participant" | "agent" | "bridge" | "device" | "voice_session" | "webhook";
|
|
9
|
-
export type DeliveryTransport = "local_socket" | "websocket" | "pairing_bridge" | "peer_broker" | "http" | "mcp_poll" | "devin_cloud_cli" | "webhook" | "telegram" | "discord" | "sms" | "email" | "tts" | "native_voice" | "claude_channel" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "pi_rpc" | "grok_acp" | "kimi_acp" | "cursor_acp" | "opencode_acp" | "devin_acp" | "tmux" | "cursor_exec" | "cursor_cli_text" | "cursor_cli_stream_json" | "cursor_sdk_local";
|
|
9
|
+
export type DeliveryTransport = "local_socket" | "websocket" | "pairing_bridge" | "peer_broker" | "http" | "mcp_poll" | "devin_cloud_cli" | "webhook" | "telegram" | "discord" | "sms" | "email" | "tts" | "native_voice" | "claude_channel" | "claude_stream_json" | "codex_app_server" | "codex_exec" | "claude_resume" | "pi_rpc" | "grok_acp" | "kimi_acp" | "cursor_acp" | "opencode_acp" | "devin_acp" | "tmux" | "ghostty" | "cursor_exec" | "cursor_cli_text" | "cursor_cli_stream_json" | "cursor_sdk_local";
|
|
10
10
|
export type DeliveryReason = "conversation_visibility" | "direct_message" | "mention" | "thread_reply" | "invocation" | "bridge_outbound" | "speech";
|
|
11
11
|
export type AdvertiseScope = "local" | "mesh";
|
|
12
12
|
export type ShareMode = "local" | "summary" | "shared";
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,cAAc,GAEtB,UAAU,GACV,YAAY,GACZ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,WAAW,GAEX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,SAAS,GACT,eAAe,GACf,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAElF,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,UAAU,GACV,iBAAiB,GACjB,SAAS,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,OAAO,GACP,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,MAAM,GACN,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,cAAc,GACtB,yBAAyB,GACzB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,WAAW,GACX,QAAQ,GACR,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,GACT,aAAa,GACb,QAAQ,GACR,YAAY,GACZ,SAAS,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5E,MAAM,MAAM,cAAc,GAEtB,UAAU,GACV,YAAY,GACZ,SAAS,GACT,WAAW,GACX,UAAU,GACV,QAAQ,GACR,WAAW,GAEX,SAAS,GACT,QAAQ,GACR,MAAM,GACN,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAC7B,kBAAkB,GAClB,eAAe,GACf,eAAe,GACf,SAAS,GACT,eAAe,GACf,UAAU,GACV,WAAW,CAAC;AAEhB,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,CAAC;AAElF,MAAM,MAAM,kBAAkB,GAC1B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GACzB,cAAc,GACd,WAAW,GACX,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,UAAU,GACV,iBAAiB,GACjB,SAAS,GACT,UAAU,GACV,SAAS,GACT,KAAK,GACL,OAAO,GACP,KAAK,GACL,cAAc,GACd,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,GAClB,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,UAAU,GACV,UAAU,GACV,YAAY,GACZ,cAAc,GACd,WAAW,GACX,MAAM,GACN,SAAS,GACT,aAAa,GACb,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,CAAC;AAEvB,MAAM,MAAM,cAAc,GACtB,yBAAyB,GACzB,gBAAgB,GAChB,SAAS,GACT,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,QAAQ,CAAC;AAEb,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AgentHarness } from "./actors.js";
|
|
2
2
|
export type ScoutHostIntegrationRole = "execution_harness" | "agent_host" | "mcp_host" | "terminal_host" | "agent_state_surface";
|
|
3
|
-
export type ScoutHostIntegrationId = "claude-code" | "codex" | "cursor" | "pi" | "hermes" | "herdr";
|
|
3
|
+
export type ScoutHostIntegrationId = "claude-code" | "codex" | "cursor" | "pi" | "hermes" | "herdr" | "orca";
|
|
4
4
|
export interface ScoutHostIntegration {
|
|
5
5
|
id: ScoutHostIntegrationId;
|
|
6
6
|
label: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-integrations.d.ts","sourceRoot":"","sources":["../src/host-integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,YAAY,GACZ,UAAU,GACV,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"host-integrations.d.ts","sourceRoot":"","sources":["../src/host-integrations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,MAAM,wBAAwB,GAChC,mBAAmB,GACnB,YAAY,GACZ,UAAU,GACV,eAAe,GACf,qBAAqB,CAAC;AAE1B,MAAM,MAAM,sBAAsB,GAC9B,aAAa,GACb,OAAO,GACP,QAAQ,GACR,IAAI,GACJ,QAAQ,GACR,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,sBAAsB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC3C;;;;OAIG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EAkEzD,CAAC;AAEX,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,GACT,oBAAoB,GAAG,SAAS,CAElC;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,oBAAoB,EAC1B,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAET"}
|
|
@@ -33,8 +33,8 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
33
33
|
label: "pi",
|
|
34
34
|
roles: ["execution_harness", "agent_host"],
|
|
35
35
|
harness: "pi",
|
|
36
|
-
repositoryUrl: "https://github.com/
|
|
37
|
-
installHint: "pi install git:github.com/
|
|
36
|
+
repositoryUrl: "https://github.com/arach/pi-scout",
|
|
37
|
+
installHint: "pi install git:github.com/arach/pi-scout",
|
|
38
38
|
summary: "pi can run Scout-routed work through its native extension model.",
|
|
39
39
|
},
|
|
40
40
|
{
|
|
@@ -42,7 +42,7 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
42
42
|
label: "Hermes Agent",
|
|
43
43
|
roles: ["agent_host", "mcp_host"],
|
|
44
44
|
homepage: "https://hermes-agent.nousresearch.com/docs/",
|
|
45
|
-
repositoryUrl: "https://github.com/
|
|
45
|
+
repositoryUrl: "https://github.com/arach/hermes-scout",
|
|
46
46
|
installHint: "Install Hermes Scout as a Hermes plugin after Scout is healthy.",
|
|
47
47
|
summary: "Hermes hosts Scout tools through its plugin and MCP system; it is not a Scout harness.",
|
|
48
48
|
},
|
|
@@ -55,6 +55,15 @@ export const SCOUT_HOST_INTEGRATIONS = [
|
|
|
55
55
|
installHint: "Install the Herdr integrations for the agent hosts you use, such as Claude, Codex, Hermes, or Cursor.",
|
|
56
56
|
summary: "Herdr is a terminal host and agent-state surface for sessions Scout can observe or drive; it is not a Scout harness.",
|
|
57
57
|
},
|
|
58
|
+
{
|
|
59
|
+
id: "orca",
|
|
60
|
+
label: "Orca",
|
|
61
|
+
roles: ["terminal_host", "agent_state_surface"],
|
|
62
|
+
homepage: "https://onorca.dev",
|
|
63
|
+
repositoryUrl: "https://github.com/stablyai/orca",
|
|
64
|
+
installHint: "Install Orca (brew install --cask stablyai/orca/orca); its agent hooks report state for the sessions it runs.",
|
|
65
|
+
summary: "Orca runs agent CLIs in terminals inside git worktrees; Scout reads its agent state and types into its terminals. It is not a Scout harness.",
|
|
66
|
+
},
|
|
58
67
|
];
|
|
59
68
|
export function scoutHostIntegrationById(id) {
|
|
60
69
|
return SCOUT_HOST_INTEGRATIONS.find((host) => host.id === id);
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/invocations.d.ts
CHANGED
|
@@ -63,6 +63,8 @@ export interface InvocationExecutionPreference {
|
|
|
63
63
|
turnBudgetMs?: number;
|
|
64
64
|
}
|
|
65
65
|
export interface InvocationRequest {
|
|
66
|
+
/** Caller-supplied, requester-scoped idempotency key. */
|
|
67
|
+
requestId?: string;
|
|
66
68
|
id: ScoutId;
|
|
67
69
|
requesterId: ScoutId;
|
|
68
70
|
requesterNodeId: ScoutId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invocations.d.ts","sourceRoot":"","sources":["../src/invocations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"invocations.d.ts","sourceRoot":"","sources":["../src/invocations.ts"],"names":[],"mappings":"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"}
|
package/dist/machines.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ import type { AdvertiseScope, MetadataMap, ScoutId } from "./common.js";
|
|
|
23
23
|
* whole model is testable without a network, a broker, or a database.
|
|
24
24
|
*/
|
|
25
25
|
export declare const MACHINE_ID_PREFIX = "mach-";
|
|
26
|
-
export type MachineEvidenceKind = "scout" | "tailnet" | "lan" | "host";
|
|
26
|
+
export type MachineEvidenceKind = "scout" | "tailnet" | "lan" | "host" | "ssh";
|
|
27
27
|
export type MachinePlatform = "macos" | "linux" | "windows" | "ios" | "android" | "unknown";
|
|
28
28
|
/**
|
|
29
29
|
* What a machine can do *for Scout*, as observed — never as configured. A
|
|
@@ -101,7 +101,30 @@ export interface HostMachineEvidence extends MachineEvidenceBase {
|
|
|
101
101
|
runningSessionCount?: number;
|
|
102
102
|
version?: string;
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
/**
|
|
105
|
+
* One `Host` block from the operator's SSH config: how they already reach a
|
|
106
|
+
* machine. It is configuration, not a sighting — it names the machine and the
|
|
107
|
+
* way in, but proves nothing about whether the machine is up, so it never
|
|
108
|
+
* moves `lastSeenAt` and never adds a capability (see `isMachineSighting`).
|
|
109
|
+
*/
|
|
110
|
+
export interface SshMachineEvidence extends MachineEvidenceBase {
|
|
111
|
+
kind: "ssh";
|
|
112
|
+
/** The first pattern on the `Host` line — what the operator types. */
|
|
113
|
+
alias: string;
|
|
114
|
+
/** Every concrete pattern on the line, `alias` first. */
|
|
115
|
+
aliases: string[];
|
|
116
|
+
/** `HostName`, or the alias itself when the block sets none. */
|
|
117
|
+
hostName: string;
|
|
118
|
+
user?: string;
|
|
119
|
+
port?: number;
|
|
120
|
+
identityFile?: string;
|
|
121
|
+
proxyJump?: string;
|
|
122
|
+
/** The file the block came from, for "edit in" affordances. */
|
|
123
|
+
configPath: string;
|
|
124
|
+
}
|
|
125
|
+
export type MachineEvidence = ScoutMachineEvidence | TailnetMachineEvidence | LanMachineEvidence | HostMachineEvidence | SshMachineEvidence;
|
|
126
|
+
/** Whether a piece of evidence is someone actually seeing the machine. */
|
|
127
|
+
export declare function isMachineSighting(evidence: MachineEvidence): boolean;
|
|
105
128
|
/**
|
|
106
129
|
* Identity keys, split by how long they stay true.
|
|
107
130
|
*
|
|
@@ -192,6 +215,22 @@ export type MachinePresence = "online" | "recent" | "offline";
|
|
|
192
215
|
/** Anything seen inside this window counts as present. */
|
|
193
216
|
export declare const MACHINE_ONLINE_WINDOW_MS: number;
|
|
194
217
|
export declare const MACHINE_RECENT_WINDOW_MS: number;
|
|
218
|
+
/** One way in over SSH, as the operator's config spells it. */
|
|
219
|
+
export interface MachineSshTarget {
|
|
220
|
+
alias: string;
|
|
221
|
+
aliases: string[];
|
|
222
|
+
hostName: string;
|
|
223
|
+
user?: string;
|
|
224
|
+
port?: number;
|
|
225
|
+
identityFile?: string;
|
|
226
|
+
proxyJump?: string;
|
|
227
|
+
configPath: string;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The SSH ways in, read off the evidence. Stored records keep only the
|
|
231
|
+
* evidence, so readers derive this rather than trusting a persisted copy.
|
|
232
|
+
*/
|
|
233
|
+
export declare function machineSshTargets(evidence: readonly MachineEvidence[]): MachineSshTarget[];
|
|
195
234
|
export interface MachineRecord {
|
|
196
235
|
id: ScoutId;
|
|
197
236
|
/** Operator-set name. Null means "use `name`". */
|
|
@@ -211,6 +250,8 @@ export interface MachineRecord {
|
|
|
211
250
|
macAddresses: string[];
|
|
212
251
|
capabilities: MachineCapability[];
|
|
213
252
|
routes: MachineRoute[];
|
|
253
|
+
/** SSH config entries that reach this machine. Configured, not observed. */
|
|
254
|
+
sshTargets?: MachineSshTarget[];
|
|
214
255
|
evidence: MachineEvidence[];
|
|
215
256
|
/** Operator marked it worth keeping even when nothing has seen it in weeks. */
|
|
216
257
|
pinned: boolean;
|
package/dist/machines.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../src/machines.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAO,MAAM,iBAAiB,UAAU,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"machines.d.ts","sourceRoot":"","sources":["../src/machines.ts"],"names":[],"mappings":"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"}
|
package/dist/machines.js
CHANGED
|
@@ -22,6 +22,10 @@
|
|
|
22
22
|
* whole model is testable without a network, a broker, or a database.
|
|
23
23
|
*/
|
|
24
24
|
export const MACHINE_ID_PREFIX = "mach-";
|
|
25
|
+
/** Whether a piece of evidence is someone actually seeing the machine. */
|
|
26
|
+
export function isMachineSighting(evidence) {
|
|
27
|
+
return evidence.kind !== "ssh";
|
|
28
|
+
}
|
|
25
29
|
const EMPTY_KEYS = { durable: [], transient: [] };
|
|
26
30
|
/** mDNS service types Scout browses, and what each one proves. */
|
|
27
31
|
export const MACHINE_SERVICE_CAPABILITIES = {
|
|
@@ -194,6 +198,25 @@ export function machineIdentityKeys(evidence) {
|
|
|
194
198
|
pushKey(durable, `host:${host}`);
|
|
195
199
|
return { durable, transient };
|
|
196
200
|
}
|
|
201
|
+
case "ssh": {
|
|
202
|
+
// Only HostName identifies the machine. The aliases are the operator's
|
|
203
|
+
// shorthand (`art` for arts-mac-mini) and would fuse unrelated machines
|
|
204
|
+
// that happen to share a nickname with someone's hostname.
|
|
205
|
+
const address = normalizeMachineAddress(evidence.hostName);
|
|
206
|
+
if (/^[\d.]+$|:/.test(address)) {
|
|
207
|
+
// A literal address: a tailnet one stays with its node; a LAN one is
|
|
208
|
+
// DHCP's to reassign, so it joins only within this pass.
|
|
209
|
+
if (isTailnetAddress(address))
|
|
210
|
+
pushKey(durable, `ip:${address}`);
|
|
211
|
+
else if (!isLoopbackAddress(address))
|
|
212
|
+
pushKey(transient, `ip:${address}`);
|
|
213
|
+
return { durable, transient };
|
|
214
|
+
}
|
|
215
|
+
const host = normalizeMachineHostName(evidence.hostName);
|
|
216
|
+
if (host)
|
|
217
|
+
pushKey(durable, `host:${host}`);
|
|
218
|
+
return { durable, transient };
|
|
219
|
+
}
|
|
197
220
|
default:
|
|
198
221
|
return EMPTY_KEYS;
|
|
199
222
|
}
|
|
@@ -334,6 +357,10 @@ export function deriveMachineName(evidence) {
|
|
|
334
357
|
if (name)
|
|
335
358
|
return name;
|
|
336
359
|
}
|
|
360
|
+
// Known only from the SSH config: the alias the operator types for it.
|
|
361
|
+
const ssh = evidenceOf(evidence, "ssh")[0];
|
|
362
|
+
if (ssh)
|
|
363
|
+
return ssh.alias;
|
|
337
364
|
const mac = evidenceOf(evidence, "lan")
|
|
338
365
|
.map((lan) => normalizeMacAddress(lan.macAddress))
|
|
339
366
|
.find(Boolean);
|
|
@@ -469,6 +496,22 @@ export function deriveMachineRoutes(evidence, isSelf = false) {
|
|
|
469
496
|
/** Anything seen inside this window counts as present. */
|
|
470
497
|
export const MACHINE_ONLINE_WINDOW_MS = 2 * 60_000;
|
|
471
498
|
export const MACHINE_RECENT_WINDOW_MS = 60 * 60_000;
|
|
499
|
+
/**
|
|
500
|
+
* The SSH ways in, read off the evidence. Stored records keep only the
|
|
501
|
+
* evidence, so readers derive this rather than trusting a persisted copy.
|
|
502
|
+
*/
|
|
503
|
+
export function machineSshTargets(evidence) {
|
|
504
|
+
return evidenceOf(evidence, "ssh").map((ssh) => ({
|
|
505
|
+
alias: ssh.alias,
|
|
506
|
+
aliases: ssh.aliases,
|
|
507
|
+
hostName: ssh.hostName,
|
|
508
|
+
...(ssh.user ? { user: ssh.user } : {}),
|
|
509
|
+
...(ssh.port ? { port: ssh.port } : {}),
|
|
510
|
+
...(ssh.identityFile ? { identityFile: ssh.identityFile } : {}),
|
|
511
|
+
...(ssh.proxyJump ? { proxyJump: ssh.proxyJump } : {}),
|
|
512
|
+
configPath: ssh.configPath,
|
|
513
|
+
}));
|
|
514
|
+
}
|
|
472
515
|
export function machineLabel(machine) {
|
|
473
516
|
return machine.displayName?.trim() || machine.name;
|
|
474
517
|
}
|
|
@@ -487,7 +530,13 @@ export function machinePresence(machine, now = Date.now()) {
|
|
|
487
530
|
*/
|
|
488
531
|
export function buildMachineRecord(group, previous) {
|
|
489
532
|
const evidence = [...group.evidence].sort((a, b) => a.observedAt - b.observedAt);
|
|
490
|
-
|
|
533
|
+
// Presence comes from sightings only: reading the SSH config every pass
|
|
534
|
+
// would otherwise make every machine in it look online forever.
|
|
535
|
+
const observedAt = evidence
|
|
536
|
+
.filter(isMachineSighting)
|
|
537
|
+
.reduce((latest, item) => Math.max(latest, item.observedAt), 0);
|
|
538
|
+
const configuredAt = evidence.reduce((latest, item) => Math.max(latest, item.observedAt), 0);
|
|
539
|
+
const sshTargets = machineSshTargets(evidence);
|
|
491
540
|
const scout = evidenceOf(evidence, "scout")[0];
|
|
492
541
|
const tailnet = evidenceOf(evidence, "tailnet")
|
|
493
542
|
.sort((a, b) => Number(b.online) - Number(a.online))[0];
|
|
@@ -532,10 +581,12 @@ export function buildMachineRecord(group, previous) {
|
|
|
532
581
|
macAddresses,
|
|
533
582
|
capabilities: deriveMachineCapabilities(evidence),
|
|
534
583
|
routes: deriveMachineRoutes(evidence, isSelf),
|
|
584
|
+
...(sshTargets.length > 0 ? { sshTargets } : {}),
|
|
535
585
|
evidence,
|
|
536
586
|
pinned: previous?.pinned ?? false,
|
|
537
587
|
...(previous?.notes ? { notes: previous.notes } : {}),
|
|
538
|
-
|
|
588
|
+
// A machine known only from config was first *listed* when it was read.
|
|
589
|
+
firstSeenAt: previous?.firstSeenAt ?? (observedAt || configuredAt),
|
|
539
590
|
lastSeenAt: Math.max(observedAt, previous?.lastSeenAt ?? 0),
|
|
540
591
|
...(previous?.metadata ? { metadata: previous.metadata } : {}),
|
|
541
592
|
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Authenticated by the public gateway, never taken from MCP arguments. No bearer secrets. */
|
|
2
|
+
export interface McpEventPrincipal {
|
|
3
|
+
kind: "oauth" | "agent_token";
|
|
4
|
+
id: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
ownerKey: string;
|
|
7
|
+
node: string;
|
|
8
|
+
agentId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface McpEventDelivery {
|
|
11
|
+
id: string;
|
|
12
|
+
lease: string;
|
|
13
|
+
subscriptionId: string;
|
|
14
|
+
principal: McpEventPrincipal;
|
|
15
|
+
url: string;
|
|
16
|
+
secret: string;
|
|
17
|
+
previousSecret?: string;
|
|
18
|
+
body: string;
|
|
19
|
+
}
|
|
20
|
+
export declare const MCP_EVENTS_PROTOCOL = "2026-07-28";
|
|
21
|
+
//# sourceMappingURL=mcp-events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-events.d.ts","sourceRoot":"","sources":["../src/mcp-events.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,GAAG,aAAa,CAAC;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,mBAAmB,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const MCP_EVENTS_PROTOCOL = "2026-07-28";
|
package/dist/mesh.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { AdvertiseScope, MetadataMap, ScoutId } from "./common.js";
|
|
2
2
|
export declare const OPENSCOUT_MESH_PROTOCOL_VERSION = 1;
|
|
3
|
-
export declare const OPENSCOUT_IROH_MESH_ALPN = "openscout/mesh/
|
|
3
|
+
export declare const OPENSCOUT_IROH_MESH_ALPN = "openscout/mesh/1";
|
|
4
4
|
export declare const DEFAULT_OPENSCOUT_MESH_RENDEZVOUS_URL = "https://mesh.oscout.net";
|
|
5
5
|
export declare const DEFAULT_OPENSCOUT_MOBILE_PAIRING_RELAY_URL = "wss://mesh.oscout.net/v1/relay";
|
|
6
6
|
export type NodeMeshEntrypoint = IrohMeshEntrypoint | CloudflareTunnelMeshEntrypoint | HttpMeshEntrypoint | MobilePairingMeshEntrypoint;
|
package/dist/mesh.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,+BAA+B,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../src/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,eAAO,MAAM,wBAAwB,qBAAqB,CAAC;AAC3D,eAAO,MAAM,qCAAqC,4BAA4B,CAAC;AAC/E,eAAO,MAAM,0CAA0C,mCAAmC,CAAC;AAE3F,MAAM,MAAM,kBAAkB,GAC1B,kBAAkB,GAClB,8BAA8B,GAC9B,kBAAkB,GAClB,2BAA2B,CAAC;AAEhC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,IAAI,EAAE,OAAO,wBAAwB,CAAC;IACtC,qBAAqB,EAAE,OAAO,+BAA+B,CAAC;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAC;AAK/D,MAAM,WAAW,iBAAiB;IAChC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,uBAAuB,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE,OAAO,+BAA+B,CAAC;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE;QACV,SAAS,EAAE,SAAS,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,CAAC,EAAE,OAAO,+BAA+B,CAAC;IAC1C,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,2BAA2B,EAAE,CAAC;CACtC;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;IACrD,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,GAAG,qBAAqB,CAaxB"}
|
package/dist/mesh.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const OPENSCOUT_MESH_PROTOCOL_VERSION = 1;
|
|
2
|
-
|
|
2
|
+
// mesh/1 requires end-to-end Scout peer proofs; mesh/0 silently lost provenance.
|
|
3
|
+
export const OPENSCOUT_IROH_MESH_ALPN = "openscout/mesh/1";
|
|
3
4
|
export const DEFAULT_OPENSCOUT_MESH_RENDEZVOUS_URL = "https://mesh.oscout.net";
|
|
4
5
|
export const DEFAULT_OPENSCOUT_MOBILE_PAIRING_RELAY_URL = "wss://mesh.oscout.net/v1/relay";
|
|
5
6
|
export function buildUnsignedMeshPresence(input) {
|
package/dist/messages.d.ts
CHANGED
package/dist/messages.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../src/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,OAAO,EACP,eAAe,EAChB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE9E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB"}
|
package/dist/scout-delivery.d.ts
CHANGED
|
@@ -63,6 +63,8 @@ export type ScoutDeliveryRemediationKind = "choose_target" | "register_target" |
|
|
|
63
63
|
| "stale_reference";
|
|
64
64
|
export type ScoutDeliverRejectReason = "unknown_target" | "ambiguous_target" | "invalid_target" | "missing_target";
|
|
65
65
|
export interface ScoutDeliverRequest {
|
|
66
|
+
/** Caller-supplied, requester-scoped idempotency key. */
|
|
67
|
+
requestId?: string;
|
|
66
68
|
id?: ScoutId;
|
|
67
69
|
caller?: ScoutCallerContext;
|
|
68
70
|
requesterId?: ScoutId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-delivery.d.ts","sourceRoot":"","sources":["../src/scout-delivery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scout-delivery.d.ts","sourceRoot":"","sources":["../src/scout-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EACV,4BAA4B,EAC5B,qBAAqB,EACrB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EACV,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,KAAK,CAAC;IAChB,gBAAgB,EAAE,UAAU,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,gBAAgB,EAAE,UAAU,CAAC;IAC7B,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,iEAAiE;IACjE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,CAAC;AAEnE,MAAM,MAAM,4BAA4B,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEjE,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAC3C,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,4BAA4B,GACpC,eAAe,GACf,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,0BAA0B,GAC1B,kCAAkC;AACpC,mFAAmF;GACjF,iBAAiB,CAAC;AAEtB,MAAM,MAAM,wBAAwB,GAChC,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,CAAC;AAErB,MAAM,WAAW,mBAAmB;IAClC,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,GAAG,iBAAiB,EAAE,4BAA4B,CAAC,CAAC,CAAC;IACzG,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE;QACT,EAAE,CAAC,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,qBAAqB,CAAC;QACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,4BAA4B,CAAC;QAC/C,QAAQ,CAAC,EAAE,WAAW,CAAC;KACxB,CAAC;IACF,eAAe,CAAC,EAAE,WAAW,CAAC;IAC9B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,qBAAqB,CAAC;IACjC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,yBAAyB,CAAC;CAC7C;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,qBAAqB,CAAC;IACjC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;IACrC,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;IAChB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,WAAW,CAAC,EAAE,8BAA8B,CAAC;CAC9C;AAED;;;;GAIG;AACH,MAAM,MAAM,4BAA4B,GAAG,iCAAiC,CAAC;AAE7E,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC;IAChB,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,WAAW,CAAC,EAAE,8BAA8B,CAAC;CAC9C;AAED,MAAM,MAAM,oBAAoB,GAC5B,4BAA4B,GAC5B,iCAAiC,GACjC,4BAA4B,CAAC"}
|
package/dist/scout-dispatch.d.ts
CHANGED
|
@@ -64,7 +64,13 @@ export type ScoutRouteTarget = {
|
|
|
64
64
|
value?: string;
|
|
65
65
|
} | {
|
|
66
66
|
kind: "project_path";
|
|
67
|
+
/** The project folder, as it exists on the machine that will run the session. */
|
|
67
68
|
projectPath: string;
|
|
69
|
+
/**
|
|
70
|
+
* The mesh machine to start the session on (`scout ask --on archie`). When set,
|
|
71
|
+
* the path is resolved on that machine only: no local check, no peer ranking.
|
|
72
|
+
*/
|
|
73
|
+
host?: string;
|
|
68
74
|
value?: string;
|
|
69
75
|
} | {
|
|
70
76
|
kind: "channel";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scout-dispatch.d.ts","sourceRoot":"","sources":["../src/scout-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3F,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE/G,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,aAAa,CAAC;AAExF,MAAM,MAAM,2BAA2B,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAE3E,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,eAAe,GACf,YAAY,GACZ,aAAa,GACb,cAAc,GACd,SAAS,GACT,WAAW,CAAC;AAEhB,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D;IACE,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,eAAe,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,iGAAiG;IACjG,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;
|
|
1
|
+
{"version":3,"file":"scout-dispatch.d.ts","sourceRoot":"","sources":["../src/scout-dispatch.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openscout/protocol",
|
|
3
|
-
"version": "0.3.6-dev.
|
|
3
|
+
"version": "0.3.6-dev.4",
|
|
4
4
|
"description": "Typed protocol for the OpenScout local control plane",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"typescript": "^5"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "34ed478536b4d9b828a22eec90cc265aece6eaa1"
|
|
61
61
|
}
|
package/src/actors.ts
CHANGED
package/src/broker-routes.ts
CHANGED
|
@@ -8,6 +8,7 @@ export const scoutBrokerPaths = {
|
|
|
8
8
|
home: "/v1/home",
|
|
9
9
|
node: "/v1/node",
|
|
10
10
|
snapshot: "/v1/snapshot",
|
|
11
|
+
notificationRouting: "/v1/notification-routing",
|
|
11
12
|
conversationProjection: "/v1/conversation-projection",
|
|
12
13
|
capabilities: "/v1/capabilities",
|
|
13
14
|
runtimeCatalog: "/v1/runtime-catalog",
|
package/src/common.ts
CHANGED
package/src/host-integrations.ts
CHANGED
|
@@ -13,7 +13,8 @@ export type ScoutHostIntegrationId =
|
|
|
13
13
|
| "cursor"
|
|
14
14
|
| "pi"
|
|
15
15
|
| "hermes"
|
|
16
|
-
| "herdr"
|
|
16
|
+
| "herdr"
|
|
17
|
+
| "orca";
|
|
17
18
|
|
|
18
19
|
export interface ScoutHostIntegration {
|
|
19
20
|
id: ScoutHostIntegrationId;
|
|
@@ -66,8 +67,8 @@ export const SCOUT_HOST_INTEGRATIONS: readonly ScoutHostIntegration[] = [
|
|
|
66
67
|
label: "pi",
|
|
67
68
|
roles: ["execution_harness", "agent_host"],
|
|
68
69
|
harness: "pi",
|
|
69
|
-
repositoryUrl: "https://github.com/
|
|
70
|
-
installHint: "pi install git:github.com/
|
|
70
|
+
repositoryUrl: "https://github.com/arach/pi-scout",
|
|
71
|
+
installHint: "pi install git:github.com/arach/pi-scout",
|
|
71
72
|
summary: "pi can run Scout-routed work through its native extension model.",
|
|
72
73
|
},
|
|
73
74
|
{
|
|
@@ -75,7 +76,7 @@ export const SCOUT_HOST_INTEGRATIONS: readonly ScoutHostIntegration[] = [
|
|
|
75
76
|
label: "Hermes Agent",
|
|
76
77
|
roles: ["agent_host", "mcp_host"],
|
|
77
78
|
homepage: "https://hermes-agent.nousresearch.com/docs/",
|
|
78
|
-
repositoryUrl: "https://github.com/
|
|
79
|
+
repositoryUrl: "https://github.com/arach/hermes-scout",
|
|
79
80
|
installHint: "Install Hermes Scout as a Hermes plugin after Scout is healthy.",
|
|
80
81
|
summary: "Hermes hosts Scout tools through its plugin and MCP system; it is not a Scout harness.",
|
|
81
82
|
},
|
|
@@ -88,6 +89,15 @@ export const SCOUT_HOST_INTEGRATIONS: readonly ScoutHostIntegration[] = [
|
|
|
88
89
|
installHint: "Install the Herdr integrations for the agent hosts you use, such as Claude, Codex, Hermes, or Cursor.",
|
|
89
90
|
summary: "Herdr is a terminal host and agent-state surface for sessions Scout can observe or drive; it is not a Scout harness.",
|
|
90
91
|
},
|
|
92
|
+
{
|
|
93
|
+
id: "orca",
|
|
94
|
+
label: "Orca",
|
|
95
|
+
roles: ["terminal_host", "agent_state_surface"],
|
|
96
|
+
homepage: "https://onorca.dev",
|
|
97
|
+
repositoryUrl: "https://github.com/stablyai/orca",
|
|
98
|
+
installHint: "Install Orca (brew install --cask stablyai/orca/orca); its agent hooks report state for the sessions it runs.",
|
|
99
|
+
summary: "Orca runs agent CLIs in terminals inside git worktrees; Scout reads its agent state and types into its terminals. It is not a Scout harness.",
|
|
100
|
+
},
|
|
91
101
|
] as const;
|
|
92
102
|
|
|
93
103
|
export function scoutHostIntegrationById(
|
package/src/index.ts
CHANGED
package/src/invocations.ts
CHANGED
package/src/machines.ts
CHANGED
|
@@ -26,7 +26,7 @@ import type { AdvertiseScope, MetadataMap, ScoutId } from "./common.js";
|
|
|
26
26
|
|
|
27
27
|
export const MACHINE_ID_PREFIX = "mach-";
|
|
28
28
|
|
|
29
|
-
export type MachineEvidenceKind = "scout" | "tailnet" | "lan" | "host";
|
|
29
|
+
export type MachineEvidenceKind = "scout" | "tailnet" | "lan" | "host" | "ssh";
|
|
30
30
|
|
|
31
31
|
export type MachinePlatform =
|
|
32
32
|
| "macos"
|
|
@@ -132,11 +132,39 @@ export interface HostMachineEvidence extends MachineEvidenceBase {
|
|
|
132
132
|
version?: string;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* One `Host` block from the operator's SSH config: how they already reach a
|
|
137
|
+
* machine. It is configuration, not a sighting — it names the machine and the
|
|
138
|
+
* way in, but proves nothing about whether the machine is up, so it never
|
|
139
|
+
* moves `lastSeenAt` and never adds a capability (see `isMachineSighting`).
|
|
140
|
+
*/
|
|
141
|
+
export interface SshMachineEvidence extends MachineEvidenceBase {
|
|
142
|
+
kind: "ssh";
|
|
143
|
+
/** The first pattern on the `Host` line — what the operator types. */
|
|
144
|
+
alias: string;
|
|
145
|
+
/** Every concrete pattern on the line, `alias` first. */
|
|
146
|
+
aliases: string[];
|
|
147
|
+
/** `HostName`, or the alias itself when the block sets none. */
|
|
148
|
+
hostName: string;
|
|
149
|
+
user?: string;
|
|
150
|
+
port?: number;
|
|
151
|
+
identityFile?: string;
|
|
152
|
+
proxyJump?: string;
|
|
153
|
+
/** The file the block came from, for "edit in" affordances. */
|
|
154
|
+
configPath: string;
|
|
155
|
+
}
|
|
156
|
+
|
|
135
157
|
export type MachineEvidence =
|
|
136
158
|
| ScoutMachineEvidence
|
|
137
159
|
| TailnetMachineEvidence
|
|
138
160
|
| LanMachineEvidence
|
|
139
|
-
| HostMachineEvidence
|
|
161
|
+
| HostMachineEvidence
|
|
162
|
+
| SshMachineEvidence;
|
|
163
|
+
|
|
164
|
+
/** Whether a piece of evidence is someone actually seeing the machine. */
|
|
165
|
+
export function isMachineSighting(evidence: MachineEvidence): boolean {
|
|
166
|
+
return evidence.kind !== "ssh";
|
|
167
|
+
}
|
|
140
168
|
|
|
141
169
|
/**
|
|
142
170
|
* Identity keys, split by how long they stay true.
|
|
@@ -321,6 +349,22 @@ export function machineIdentityKeys(evidence: MachineEvidence): MachineIdentityK
|
|
|
321
349
|
if (host) pushKey(durable, `host:${host}`);
|
|
322
350
|
return { durable, transient };
|
|
323
351
|
}
|
|
352
|
+
case "ssh": {
|
|
353
|
+
// Only HostName identifies the machine. The aliases are the operator's
|
|
354
|
+
// shorthand (`art` for arts-mac-mini) and would fuse unrelated machines
|
|
355
|
+
// that happen to share a nickname with someone's hostname.
|
|
356
|
+
const address = normalizeMachineAddress(evidence.hostName);
|
|
357
|
+
if (/^[\d.]+$|:/.test(address)) {
|
|
358
|
+
// A literal address: a tailnet one stays with its node; a LAN one is
|
|
359
|
+
// DHCP's to reassign, so it joins only within this pass.
|
|
360
|
+
if (isTailnetAddress(address)) pushKey(durable, `ip:${address}`);
|
|
361
|
+
else if (!isLoopbackAddress(address)) pushKey(transient, `ip:${address}`);
|
|
362
|
+
return { durable, transient };
|
|
363
|
+
}
|
|
364
|
+
const host = normalizeMachineHostName(evidence.hostName);
|
|
365
|
+
if (host) pushKey(durable, `host:${host}`);
|
|
366
|
+
return { durable, transient };
|
|
367
|
+
}
|
|
324
368
|
default:
|
|
325
369
|
return EMPTY_KEYS;
|
|
326
370
|
}
|
|
@@ -481,6 +525,10 @@ export function deriveMachineName(evidence: readonly MachineEvidence[]): string
|
|
|
481
525
|
if (name) return name;
|
|
482
526
|
}
|
|
483
527
|
|
|
528
|
+
// Known only from the SSH config: the alias the operator types for it.
|
|
529
|
+
const ssh = evidenceOf(evidence, "ssh")[0];
|
|
530
|
+
if (ssh) return ssh.alias;
|
|
531
|
+
|
|
484
532
|
const mac = evidenceOf(evidence, "lan")
|
|
485
533
|
.map((lan) => normalizeMacAddress(lan.macAddress))
|
|
486
534
|
.find(Boolean);
|
|
@@ -627,6 +675,35 @@ export type MachinePresence = "online" | "recent" | "offline";
|
|
|
627
675
|
export const MACHINE_ONLINE_WINDOW_MS = 2 * 60_000;
|
|
628
676
|
export const MACHINE_RECENT_WINDOW_MS = 60 * 60_000;
|
|
629
677
|
|
|
678
|
+
/** One way in over SSH, as the operator's config spells it. */
|
|
679
|
+
export interface MachineSshTarget {
|
|
680
|
+
alias: string;
|
|
681
|
+
aliases: string[];
|
|
682
|
+
hostName: string;
|
|
683
|
+
user?: string;
|
|
684
|
+
port?: number;
|
|
685
|
+
identityFile?: string;
|
|
686
|
+
proxyJump?: string;
|
|
687
|
+
configPath: string;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
/**
|
|
691
|
+
* The SSH ways in, read off the evidence. Stored records keep only the
|
|
692
|
+
* evidence, so readers derive this rather than trusting a persisted copy.
|
|
693
|
+
*/
|
|
694
|
+
export function machineSshTargets(evidence: readonly MachineEvidence[]): MachineSshTarget[] {
|
|
695
|
+
return evidenceOf(evidence, "ssh").map((ssh) => ({
|
|
696
|
+
alias: ssh.alias,
|
|
697
|
+
aliases: ssh.aliases,
|
|
698
|
+
hostName: ssh.hostName,
|
|
699
|
+
...(ssh.user ? { user: ssh.user } : {}),
|
|
700
|
+
...(ssh.port ? { port: ssh.port } : {}),
|
|
701
|
+
...(ssh.identityFile ? { identityFile: ssh.identityFile } : {}),
|
|
702
|
+
...(ssh.proxyJump ? { proxyJump: ssh.proxyJump } : {}),
|
|
703
|
+
configPath: ssh.configPath,
|
|
704
|
+
}));
|
|
705
|
+
}
|
|
706
|
+
|
|
630
707
|
export interface MachineRecord {
|
|
631
708
|
id: ScoutId;
|
|
632
709
|
/** Operator-set name. Null means "use `name`". */
|
|
@@ -646,6 +723,8 @@ export interface MachineRecord {
|
|
|
646
723
|
macAddresses: string[];
|
|
647
724
|
capabilities: MachineCapability[];
|
|
648
725
|
routes: MachineRoute[];
|
|
726
|
+
/** SSH config entries that reach this machine. Configured, not observed. */
|
|
727
|
+
sshTargets?: MachineSshTarget[];
|
|
649
728
|
evidence: MachineEvidence[];
|
|
650
729
|
/** Operator marked it worth keeping even when nothing has seen it in weeks. */
|
|
651
730
|
pinned: boolean;
|
|
@@ -679,7 +758,13 @@ export function buildMachineRecord(
|
|
|
679
758
|
previous?: Partial<MachineRecord> | null,
|
|
680
759
|
): MachineRecord {
|
|
681
760
|
const evidence = [...group.evidence].sort((a, b) => a.observedAt - b.observedAt);
|
|
682
|
-
|
|
761
|
+
// Presence comes from sightings only: reading the SSH config every pass
|
|
762
|
+
// would otherwise make every machine in it look online forever.
|
|
763
|
+
const observedAt = evidence
|
|
764
|
+
.filter(isMachineSighting)
|
|
765
|
+
.reduce((latest, item) => Math.max(latest, item.observedAt), 0);
|
|
766
|
+
const configuredAt = evidence.reduce((latest, item) => Math.max(latest, item.observedAt), 0);
|
|
767
|
+
const sshTargets = machineSshTargets(evidence);
|
|
683
768
|
|
|
684
769
|
const scout = evidenceOf(evidence, "scout")[0];
|
|
685
770
|
const tailnet = evidenceOf(evidence, "tailnet")
|
|
@@ -726,10 +811,12 @@ export function buildMachineRecord(
|
|
|
726
811
|
macAddresses,
|
|
727
812
|
capabilities: deriveMachineCapabilities(evidence),
|
|
728
813
|
routes: deriveMachineRoutes(evidence, isSelf),
|
|
814
|
+
...(sshTargets.length > 0 ? { sshTargets } : {}),
|
|
729
815
|
evidence,
|
|
730
816
|
pinned: previous?.pinned ?? false,
|
|
731
817
|
...(previous?.notes ? { notes: previous.notes } : {}),
|
|
732
|
-
|
|
818
|
+
// A machine known only from config was first *listed* when it was read.
|
|
819
|
+
firstSeenAt: previous?.firstSeenAt ?? (observedAt || configuredAt),
|
|
733
820
|
lastSeenAt: Math.max(observedAt, previous?.lastSeenAt ?? 0),
|
|
734
821
|
...(previous?.metadata ? { metadata: previous.metadata } : {}),
|
|
735
822
|
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Authenticated by the public gateway, never taken from MCP arguments. No bearer secrets. */
|
|
2
|
+
export interface McpEventPrincipal {
|
|
3
|
+
kind: "oauth" | "agent_token";
|
|
4
|
+
id: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
ownerKey: string;
|
|
7
|
+
node: string;
|
|
8
|
+
agentId: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface McpEventDelivery {
|
|
12
|
+
id: string;
|
|
13
|
+
lease: string;
|
|
14
|
+
subscriptionId: string;
|
|
15
|
+
principal: McpEventPrincipal;
|
|
16
|
+
url: string;
|
|
17
|
+
secret: string;
|
|
18
|
+
previousSecret?: string;
|
|
19
|
+
body: string;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const MCP_EVENTS_PROTOCOL = "2026-07-28";
|
package/src/mesh.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { AdvertiseScope, MetadataMap, ScoutId } from "./common.js";
|
|
2
2
|
|
|
3
3
|
export const OPENSCOUT_MESH_PROTOCOL_VERSION = 1;
|
|
4
|
-
|
|
4
|
+
// mesh/1 requires end-to-end Scout peer proofs; mesh/0 silently lost provenance.
|
|
5
|
+
export const OPENSCOUT_IROH_MESH_ALPN = "openscout/mesh/1";
|
|
5
6
|
export const DEFAULT_OPENSCOUT_MESH_RENDEZVOUS_URL = "https://mesh.oscout.net";
|
|
6
7
|
export const DEFAULT_OPENSCOUT_MOBILE_PAIRING_RELAY_URL = "wss://mesh.oscout.net/v1/relay";
|
|
7
8
|
|
package/src/messages.ts
CHANGED
package/src/scout-delivery.ts
CHANGED
|
@@ -97,6 +97,8 @@ export type ScoutDeliverRejectReason =
|
|
|
97
97
|
| "missing_target";
|
|
98
98
|
|
|
99
99
|
export interface ScoutDeliverRequest {
|
|
100
|
+
/** Caller-supplied, requester-scoped idempotency key. */
|
|
101
|
+
requestId?: string;
|
|
100
102
|
id?: ScoutId;
|
|
101
103
|
caller?: ScoutCallerContext;
|
|
102
104
|
requesterId?: ScoutId;
|
package/src/scout-dispatch.ts
CHANGED
|
@@ -62,7 +62,17 @@ export type ScoutRouteTarget =
|
|
|
62
62
|
value?: string;
|
|
63
63
|
}
|
|
64
64
|
| { kind: "binding_ref"; ref: string; value?: string }
|
|
65
|
-
| {
|
|
65
|
+
| {
|
|
66
|
+
kind: "project_path";
|
|
67
|
+
/** The project folder, as it exists on the machine that will run the session. */
|
|
68
|
+
projectPath: string;
|
|
69
|
+
/**
|
|
70
|
+
* The mesh machine to start the session on (`scout ask --on archie`). When set,
|
|
71
|
+
* the path is resolved on that machine only: no local check, no peer ranking.
|
|
72
|
+
*/
|
|
73
|
+
host?: string;
|
|
74
|
+
value?: string;
|
|
75
|
+
}
|
|
66
76
|
| { kind: "channel"; channel: string; value?: string }
|
|
67
77
|
| { kind: "broadcast"; value?: string };
|
|
68
78
|
|