@stelis/agent-q-core 0.0.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.
Files changed (47) hide show
  1. package/README.md +144 -0
  2. package/dist/adapter-internal.d.ts +5 -0
  3. package/dist/adapter-internal.js +6 -0
  4. package/dist/adapter-internal.js.map +1 -0
  5. package/dist/config.d.ts +74 -0
  6. package/dist/config.js +489 -0
  7. package/dist/config.js.map +1 -0
  8. package/dist/core.d.ts +320 -0
  9. package/dist/core.js +840 -0
  10. package/dist/core.js.map +1 -0
  11. package/dist/device.d.ts +55 -0
  12. package/dist/device.js +23 -0
  13. package/dist/device.js.map +1 -0
  14. package/dist/errors.d.ts +6 -0
  15. package/dist/errors.js +20 -0
  16. package/dist/errors.js.map +1 -0
  17. package/dist/host-output-schema.d.ts +2437 -0
  18. package/dist/host-output-schema.js +655 -0
  19. package/dist/host-output-schema.js.map +1 -0
  20. package/dist/protocol-error.d.ts +4 -0
  21. package/dist/protocol-error.js +9 -0
  22. package/dist/protocol-error.js.map +1 -0
  23. package/dist/protocol-management-primitives.d.ts +27 -0
  24. package/dist/protocol-management-primitives.js +51 -0
  25. package/dist/protocol-management-primitives.js.map +1 -0
  26. package/dist/protocol-primitives.d.ts +53 -0
  27. package/dist/protocol-primitives.js +331 -0
  28. package/dist/protocol-primitives.js.map +1 -0
  29. package/dist/protocol.d.ts +207 -0
  30. package/dist/protocol.js +897 -0
  31. package/dist/protocol.js.map +1 -0
  32. package/dist/provider-protocol.d.ts +262 -0
  33. package/dist/provider-protocol.js +637 -0
  34. package/dist/provider-protocol.js.map +1 -0
  35. package/dist/public-error.d.ts +9 -0
  36. package/dist/public-error.js +79 -0
  37. package/dist/public-error.js.map +1 -0
  38. package/dist/safe-text.d.ts +31 -0
  39. package/dist/safe-text.js +143 -0
  40. package/dist/safe-text.js.map +1 -0
  41. package/dist/transport-invariants.d.ts +18 -0
  42. package/dist/transport-invariants.js +24 -0
  43. package/dist/transport-invariants.js.map +1 -0
  44. package/dist/usb.d.ts +76 -0
  45. package/dist/usb.js +454 -0
  46. package/dist/usb.js.map +1 -0
  47. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-protocol.js","sourceRoot":"","sources":["../src/provider-protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export declare const GENERIC_ERROR_CODE = "agent_q_error";
2
+ export declare const PUBLIC_ERROR_MESSAGES: Record<string, string>;
3
+ export interface PublicError {
4
+ code: string;
5
+ message: string;
6
+ retryable: boolean;
7
+ }
8
+ export declare function normalizeErrorCode(code: string): string;
9
+ export declare function toPublicError(code: string, retryable: boolean): PublicError;
@@ -0,0 +1,79 @@
1
+ // Single source of truth (SoT) for Agent-Q's public error policy: the canonical,
2
+ // client-safe { code, message, retryable } shown at any untrusted output boundary
3
+ // such as MCP and the Admin HTTP API.
4
+ //
5
+ // Contract: Agent-Q core (and the modules it calls) may throw a raw AgentQError
6
+ // whose message carries OS, serial, or Firmware text that Agent-Q did not author.
7
+ // Core is NOT required to pre-sanitize errors; safety lives at the output
8
+ // boundary. Therefore every output adapter MUST project errors through this
9
+ // module (toPublicError / normalizeErrorCode) before returning OR logging them,
10
+ // so the raw message is dropped and only an allowlisted code maps to a fixed
11
+ // message (any unknown code collapses to agent_q_error). This module imports
12
+ // nothing else from Agent-Q, so every boundary can depend on it without pulling
13
+ // in MCP.
14
+ export const GENERIC_ERROR_CODE = "agent_q_error";
15
+ // Canonical, client-safe messages keyed by error code. The raw error message can
16
+ // carry OS serial, Firmware, or arbitrary Error text that is not authored by
17
+ // Agent-Q, so it is never forwarded to an untrusted consumer. Any code outside
18
+ // this allowlist is reported as the generic `agent_q_error`.
19
+ export const PUBLIC_ERROR_MESSAGES = {
20
+ no_active_device: "No active device is configured.",
21
+ device_not_found: "The requested device is not known to Agent-Q.",
22
+ invalid_device_id: "The provided deviceId is invalid.",
23
+ invalid_device: "The device reported an unsafe identity.",
24
+ invalid_metadata: "No metadata field was provided to update.",
25
+ invalid_label: "The provided label is invalid.",
26
+ reserved_purpose: "That purpose name is reserved.",
27
+ invalid_purpose: "The provided purpose is invalid.",
28
+ invalid_client_name: "The provided client name is invalid.",
29
+ invalid_method: "The requested method is invalid.",
30
+ invalid_params: "The provided method parameters are invalid.",
31
+ invalid_id: "The request id is invalid.",
32
+ request_id_conflict: "The request id is already bound to a different request.",
33
+ invalid_json: "The device sent a malformed response.",
34
+ invalid_code: "The identification code is invalid.",
35
+ invalid_session: "The session is no longer valid.",
36
+ invalid_state: "The device is not in a valid state for this request.",
37
+ policy_error: "The device active policy is unavailable.",
38
+ history_error: "The device approval history is unavailable.",
39
+ unsupported_version: "The device firmware protocol version is not supported.",
40
+ unsupported_type: "The device does not support this request.",
41
+ unsupported_chain: "The requested chain is not supported.",
42
+ unsupported_method: "The requested method is not supported.",
43
+ unsupported_transaction: "Transaction shape is not supported.",
44
+ unsupported_payload_size: "The signing payload exceeds the current device adapter capacity.",
45
+ malformed_transaction: "Transaction bytes are malformed.",
46
+ incompatible_version: "The device firmware protocol version is not supported.",
47
+ protocol_error: "The device sent an unexpected response.",
48
+ timeout: "The device did not respond in time.",
49
+ busy: "The device is busy with another request.",
50
+ rejected: "The request was rejected on the device.",
51
+ ui_error: "The device could not display the required approval UI.",
52
+ auth_unavailable: "The device local authentication verifier is unavailable.",
53
+ rng_error: "The device secure random generator is unavailable.",
54
+ account_error: "The device could not derive the requested accounts.",
55
+ handshake_failed: "The device did not respond to a status handshake.",
56
+ port_not_found: "The device is not connected.",
57
+ port_in_use: "The device port is in use by another process.",
58
+ port_permission_denied: "Agent-Q does not have permission to access the device port.",
59
+ transport_closed: "The device connection was closed.",
60
+ local_server_unavailable: "Start the local Agent-Q server with `agent-q` before using this command.",
61
+ identification_code_exhausted: "Could not allocate a unique identification code.",
62
+ internal_output_error: "Agent-Q produced an unexpected internal result.",
63
+ agent_q_error: "Agent-Q request failed.",
64
+ };
65
+ // Keep allowlisted codes, collapse everything else to `agent_q_error`. Used for
66
+ // both error objects and diagnostic codes (e.g. firmwareErrorCode), so a device-
67
+ // or OS-supplied code string can never reach a consumer verbatim.
68
+ export function normalizeErrorCode(code) {
69
+ return Object.prototype.hasOwnProperty.call(PUBLIC_ERROR_MESSAGES, code)
70
+ ? code
71
+ : GENERIC_ERROR_CODE;
72
+ }
73
+ // Canonical { code, message, retryable } from a raw code. Shared by every output
74
+ // boundary so they all follow the same allowlist and never echo a raw message.
75
+ export function toPublicError(code, retryable) {
76
+ const normalized = normalizeErrorCode(code);
77
+ return { code: normalized, message: PUBLIC_ERROR_MESSAGES[normalized], retryable };
78
+ }
79
+ //# sourceMappingURL=public-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-error.js","sourceRoot":"","sources":["../src/public-error.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,sCAAsC;AACtC,EAAE;AACF,gFAAgF;AAChF,kFAAkF;AAClF,0EAA0E;AAC1E,4EAA4E;AAC5E,gFAAgF;AAChF,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,UAAU;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAElD,iFAAiF;AACjF,6EAA6E;AAC7E,+EAA+E;AAC/E,6DAA6D;AAC7D,MAAM,CAAC,MAAM,qBAAqB,GAA2B;IAC3D,gBAAgB,EAAE,iCAAiC;IACnD,gBAAgB,EAAE,+CAA+C;IACjE,iBAAiB,EAAE,mCAAmC;IACtD,cAAc,EAAE,yCAAyC;IACzD,gBAAgB,EAAE,2CAA2C;IAC7D,aAAa,EAAE,gCAAgC;IAC/C,gBAAgB,EAAE,gCAAgC;IAClD,eAAe,EAAE,kCAAkC;IACnD,mBAAmB,EAAE,sCAAsC;IAC3D,cAAc,EAAE,kCAAkC;IAClD,cAAc,EAAE,6CAA6C;IAC7D,UAAU,EAAE,4BAA4B;IACxC,mBAAmB,EAAE,yDAAyD;IAC9E,YAAY,EAAE,uCAAuC;IACrD,YAAY,EAAE,qCAAqC;IACnD,eAAe,EAAE,iCAAiC;IAClD,aAAa,EAAE,sDAAsD;IACrE,YAAY,EAAE,0CAA0C;IACxD,aAAa,EAAE,6CAA6C;IAC5D,mBAAmB,EAAE,wDAAwD;IAC7E,gBAAgB,EAAE,2CAA2C;IAC7D,iBAAiB,EAAE,uCAAuC;IAC1D,kBAAkB,EAAE,wCAAwC;IAC5D,uBAAuB,EAAE,qCAAqC;IAC9D,wBAAwB,EAAE,kEAAkE;IAC5F,qBAAqB,EAAE,kCAAkC;IACzD,oBAAoB,EAAE,wDAAwD;IAC9E,cAAc,EAAE,yCAAyC;IACzD,OAAO,EAAE,qCAAqC;IAC9C,IAAI,EAAE,0CAA0C;IAChD,QAAQ,EAAE,yCAAyC;IACnD,QAAQ,EAAE,wDAAwD;IAClE,gBAAgB,EAAE,0DAA0D;IAC5E,SAAS,EAAE,oDAAoD;IAC/D,aAAa,EAAE,qDAAqD;IACpE,gBAAgB,EAAE,mDAAmD;IACrE,cAAc,EAAE,8BAA8B;IAC9C,WAAW,EAAE,+CAA+C;IAC5D,sBAAsB,EAAE,6DAA6D;IACrF,gBAAgB,EAAE,mCAAmC;IACrD,wBAAwB,EAAE,0EAA0E;IACpG,6BAA6B,EAAE,kDAAkD;IACjF,qBAAqB,EAAE,iDAAiD;IACxE,aAAa,EAAE,yBAAyB;CACzC,CAAC;AAQF,gFAAgF;AAChF,iFAAiF;AACjF,kEAAkE;AAClE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC;QACtE,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,kBAAkB,CAAC;AACzB,CAAC;AAED,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,SAAkB;IAC5D,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;AACrF,CAAC"}
@@ -0,0 +1,31 @@
1
+ export declare const DEVICE_STATES: readonly ["idle", "busy", "awaiting_approval", "locked", "error"];
2
+ export declare const PROVISIONING_STATES: readonly ["unprovisioned", "provisioning", "provisioned", "locked", "error"];
3
+ export type DeviceState = (typeof DEVICE_STATES)[number];
4
+ export type ProvisioningState = (typeof PROVISIONING_STATES)[number];
5
+ export declare const DEVICE_ID_PATTERN: RegExp;
6
+ export declare const REQUEST_ID_PATTERN: RegExp;
7
+ export declare const SESSION_ID_PATTERN: RegExp;
8
+ export declare const PURPOSE_PATTERN: RegExp;
9
+ export declare const CLIENT_NAME_PATTERN: RegExp;
10
+ export declare const IDENTIFICATION_CODE_PATTERN: RegExp;
11
+ export declare const MAX_FIRMWARE_NAME_LENGTH = 64;
12
+ export declare const MAX_HARDWARE_ID_LENGTH = 64;
13
+ export declare const MAX_FIRMWARE_VERSION_LENGTH = 32;
14
+ export declare const MAX_PORT_HINT_LENGTH = 128;
15
+ export declare const MAX_LABEL_LENGTH = 64;
16
+ export declare const RESERVED_PURPOSES: ReadonlySet<string>;
17
+ export declare const PROTOTYPE_KEYS: ReadonlySet<string>;
18
+ export declare const PRINTABLE_ASCII_ONLY: RegExp;
19
+ export declare const ISO_TIMESTAMP_PATTERN: RegExp;
20
+ export declare function isDeviceState(value: unknown): value is DeviceState;
21
+ export declare function isProvisioningState(value: unknown): value is ProvisioningState;
22
+ export declare function isSafeDeviceId(value: unknown): value is string;
23
+ export declare function isSafeRequestId(value: unknown): value is string;
24
+ export declare function isSessionId(value: unknown): value is string;
25
+ export declare function isClientName(value: unknown): value is string;
26
+ export declare function isValidPurpose(value: unknown): value is string;
27
+ export declare function isValidLabel(value: unknown): value is string | null;
28
+ export declare function isSafeDisplayText(value: unknown, maxLength: number): value is string;
29
+ export declare function isIsoTimestamp(value: unknown): value is string;
30
+ export declare function sanitizeDisplayText(value: unknown, maxLength: number): string;
31
+ export declare function sanitizePortHint(value: unknown): string;
@@ -0,0 +1,143 @@
1
+ // Single source of truth (SoT) for string-policy validation and sanitization
2
+ // at every Agent-Q trust boundary:
3
+ // - wire ingress (protocol.ts parseProtocolResponse): device-supplied text
4
+ // - disk ingress (config.ts load): the stored, possibly hand-edited registry
5
+ // - MCP egress (mcp.ts output schemas): the untrusted client/agent surface
6
+ // - MCP input + request building (mcp.ts input schemas, protocol.ts make*)
7
+ //
8
+ // Two policies, applied deliberately differently:
9
+ // - Identifiers (deviceId, requestId, sessionId, purpose, clientName) have a
10
+ // strict format. Invalid values are REJECTED so the caller corrects them; an
11
+ // identifier is never silently rewritten.
12
+ // - Display text (firmwareName, hardware, firmwareVersion, port hints) is
13
+ // untrusted device-/OS-supplied text. It is STRIPPED to bounded printable
14
+ // ASCII and never rejected, so one malformed device cannot brick discovery.
15
+ //
16
+ // This module imports nothing else from Agent-Q. It is the leaf that every
17
+ // boundary depends on, so there is exactly one definition of each rule.
18
+ //
19
+ // Control characters (C0 range and DEL) are detected by code-point scan rather
20
+ // than by a regex literal, so this source file never contains raw control bytes.
21
+ export const DEVICE_STATES = ["idle", "busy", "awaiting_approval", "locked", "error"];
22
+ export const PROVISIONING_STATES = ["unprovisioned", "provisioning", "provisioned", "locked", "error"];
23
+ // Identifier formats. deviceId and requestId share a character class but differ
24
+ // in length bound, so each boundary states its own limit explicitly.
25
+ export const DEVICE_ID_PATTERN = /^[A-Za-z0-9_.-]{1,128}$/;
26
+ export const REQUEST_ID_PATTERN = /^[A-Za-z0-9_.-]{1,79}$/;
27
+ export const SESSION_ID_PATTERN = /^session_[0-9a-f]{1,128}$/;
28
+ export const PURPOSE_PATTERN = /^[A-Za-z0-9_.-]{1,32}$/;
29
+ // Printable ASCII only: space (0x20) through tilde (0x7E).
30
+ export const CLIENT_NAME_PATTERN = /^[\x20-\x7E]{1,64}$/;
31
+ // Firmware identification code: exactly four decimal digits.
32
+ export const IDENTIFICATION_CODE_PATTERN = /^[0-9]{4}$/;
33
+ // Display-text length bounds (printable ASCII; see sanitizeDisplayText).
34
+ export const MAX_FIRMWARE_NAME_LENGTH = 64;
35
+ export const MAX_HARDWARE_ID_LENGTH = 64;
36
+ export const MAX_FIRMWARE_VERSION_LENGTH = 32;
37
+ export const MAX_PORT_HINT_LENGTH = 128;
38
+ export const MAX_LABEL_LENGTH = 64;
39
+ // 'default' is reserved: the default device lives in activeDeviceId, never in
40
+ // activeDeviceIdsByPurpose.
41
+ export const RESERVED_PURPOSES = new Set(["default"]);
42
+ // Names that are unsafe as plain-object keys. A purpose string becomes a key of
43
+ // the activeDeviceIdsByPurpose map, so "__proto__" would set the prototype
44
+ // instead of an own entry (the routing would silently vanish), and
45
+ // "constructor"/"prototype" would shadow built-ins. They are rejected even
46
+ // though they match PURPOSE_PATTERN. Reads of that map additionally use
47
+ // own-property lookups (see config.ts/core.ts) so inherited names such as
48
+ // "toString" or "hasOwnProperty" can never resolve to an inherited value.
49
+ export const PROTOTYPE_KEYS = new Set(["__proto__", "prototype", "constructor"]);
50
+ // Printable ASCII: space (0x20) through tilde (0x7E). Excludes C0 controls, DEL
51
+ // (0x7F), and every byte >= 0x80, so sanitized text is safe to embed in the MCP
52
+ // JSON output stream.
53
+ export const PRINTABLE_ASCII_ONLY = /^[\x20-\x7E]*$/;
54
+ const NON_PRINTABLE_ASCII = /[^\x20-\x7E]/g;
55
+ // ISO-8601 instant with optional milliseconds and a Z or +hh:mm offset.
56
+ export const ISO_TIMESTAMP_PATTERN = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/;
57
+ // True if value contains a character that is unsafe in label output: a C0
58
+ // control (0x00-0x1F), DEL (0x7F), a C1 control (0x80-0x9F), or a Unicode
59
+ // line/paragraph separator (U+2028/U+2029). Other printable Unicode (accented or
60
+ // CJK text, emoji) is allowed, so this only narrows the label policy; device
61
+ // display strings are already reduced to printable ASCII by sanitizeDisplayText.
62
+ // A code-point scan avoids a control-character regex literal so this source file
63
+ // stays plain text.
64
+ function containsControlChar(value) {
65
+ for (let index = 0; index < value.length; index += 1) {
66
+ const code = value.charCodeAt(index);
67
+ if (code <= 0x1f ||
68
+ code === 0x7f ||
69
+ (code >= 0x80 && code <= 0x9f) ||
70
+ code === 0x2028 ||
71
+ code === 0x2029) {
72
+ return true;
73
+ }
74
+ }
75
+ return false;
76
+ }
77
+ export function isDeviceState(value) {
78
+ return typeof value === "string" && DEVICE_STATES.includes(value);
79
+ }
80
+ export function isProvisioningState(value) {
81
+ return typeof value === "string" && PROVISIONING_STATES.includes(value);
82
+ }
83
+ export function isSafeDeviceId(value) {
84
+ return typeof value === "string" && DEVICE_ID_PATTERN.test(value);
85
+ }
86
+ export function isSafeRequestId(value) {
87
+ return typeof value === "string" && REQUEST_ID_PATTERN.test(value);
88
+ }
89
+ export function isSessionId(value) {
90
+ return typeof value === "string" && SESSION_ID_PATTERN.test(value);
91
+ }
92
+ export function isClientName(value) {
93
+ return typeof value === "string" && CLIENT_NAME_PATTERN.test(value);
94
+ }
95
+ export function isValidPurpose(value) {
96
+ return (typeof value === "string" &&
97
+ PURPOSE_PATTERN.test(value) &&
98
+ !RESERVED_PURPOSES.has(value) &&
99
+ !PROTOTYPE_KEYS.has(value));
100
+ }
101
+ // A label is a user-supplied display name (a request input). It is rejected —
102
+ // not rewritten — when empty, too long, or carrying control characters, so the
103
+ // caller can correct it. Spaces and other printable characters are allowed.
104
+ export function isValidLabel(value) {
105
+ if (value === null) {
106
+ return true;
107
+ }
108
+ return (typeof value === "string" &&
109
+ value.length >= 1 &&
110
+ value.length <= MAX_LABEL_LENGTH &&
111
+ !containsControlChar(value));
112
+ }
113
+ // Predicate counterpart of sanitizeDisplayText (the producer). Retained as the
114
+ // SoT's explicit "is this already-safe display text?" check for callers and
115
+ // tests that need a boolean. The MCP egress expresses the identical rule as
116
+ // z.string().regex(PRINTABLE_ASCII_ONLY).max(maxLength) so the constraint also
117
+ // appears in the published JSON Schema; this predicate is the same rule in
118
+ // imperative form.
119
+ export function isSafeDisplayText(value, maxLength) {
120
+ return typeof value === "string" && value.length <= maxLength && PRINTABLE_ASCII_ONLY.test(value);
121
+ }
122
+ export function isIsoTimestamp(value) {
123
+ return (typeof value === "string" &&
124
+ ISO_TIMESTAMP_PATTERN.test(value) &&
125
+ Number.isFinite(Date.parse(value)));
126
+ }
127
+ // Reduce untrusted device-/OS-supplied text to bounded printable ASCII. Strips
128
+ // every non-printable byte and caps the result; never throws and never rejects,
129
+ // so a malformed string degrades to safe text instead of failing the request. A
130
+ // non-string input becomes "".
131
+ export function sanitizeDisplayText(value, maxLength) {
132
+ if (typeof value !== "string") {
133
+ return "";
134
+ }
135
+ const stripped = value.replace(NON_PRINTABLE_ASCII, "");
136
+ return stripped.length > maxLength ? stripped.slice(0, maxLength) : stripped;
137
+ }
138
+ // Port hints are OS-supplied diagnostic strings (for example "/dev/cu.usbmodem1"
139
+ // or "COM3"), not identifiers, so they are sanitized as display text.
140
+ export function sanitizePortHint(value) {
141
+ return sanitizeDisplayText(value, MAX_PORT_HINT_LENGTH);
142
+ }
143
+ //# sourceMappingURL=safe-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe-text.js","sourceRoot":"","sources":["../src/safe-text.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare const INTERNAL_PIN_INPUT_WINDOW_MS = 30000;
2
+ export declare const INTERNAL_WRONG_PIN_ATTEMPTS_BEFORE_LOCKOUT = 5;
3
+ export declare const INTERNAL_PIN_LOCKOUT_MS = 30000;
4
+ export declare const INTERNAL_TRANSPORT_MARGIN_MS = 5000;
5
+ export declare const INTERNAL_REQUEST_WINDOW_MS = 30000;
6
+ export declare const INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS: number;
7
+ export declare const INTERNAL_USB_DEADLINE_MS = 30000;
8
+ export declare const INTERNAL_DISCONNECT_DEADLINE_MS = 30000;
9
+ export declare const INTERNAL_POLICY_UPDATE_DEADLINE_MS: number;
10
+ export declare const INTERNAL_SIGN_TRANSACTION_DEADLINE_MS: number;
11
+ export declare const INTERNAL_SIGN_PERSONAL_MESSAGE_DEADLINE_MS: number;
12
+ export declare const INTERNAL_CONNECT_DEADLINE_MS: number;
13
+ export declare const DEFAULT_AGENT_Q_USB_BAUD_RATE = 115200;
14
+ export declare const AGENT_Q_USB_VENDOR_ID = "303a";
15
+ export declare const AGENT_Q_USB_PRODUCT_ID = "1001";
16
+ export declare const AGENT_Q_USB_VENDOR_ID_NUMBER = 12346;
17
+ export declare const AGENT_Q_USB_PRODUCT_ID_NUMBER = 4097;
18
+ export declare const MAX_PROTOCOL_RESPONSE_LINE_BYTES: number;
@@ -0,0 +1,24 @@
1
+ export const INTERNAL_PIN_INPUT_WINDOW_MS = 30000;
2
+ export const INTERNAL_WRONG_PIN_ATTEMPTS_BEFORE_LOCKOUT = 5;
3
+ export const INTERNAL_PIN_LOCKOUT_MS = 30000;
4
+ export const INTERNAL_TRANSPORT_MARGIN_MS = 5000;
5
+ export const INTERNAL_REQUEST_WINDOW_MS = INTERNAL_PIN_INPUT_WINDOW_MS;
6
+ export const INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS = INTERNAL_WRONG_PIN_ATTEMPTS_BEFORE_LOCKOUT * INTERNAL_PIN_INPUT_WINDOW_MS +
7
+ INTERNAL_PIN_LOCKOUT_MS +
8
+ INTERNAL_TRANSPORT_MARGIN_MS;
9
+ export const INTERNAL_USB_DEADLINE_MS = INTERNAL_REQUEST_WINDOW_MS;
10
+ export const INTERNAL_DISCONNECT_DEADLINE_MS = INTERNAL_REQUEST_WINDOW_MS;
11
+ export const INTERNAL_POLICY_UPDATE_DEADLINE_MS = INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS;
12
+ export const INTERNAL_SIGN_TRANSACTION_DEADLINE_MS = INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS;
13
+ export const INTERNAL_SIGN_PERSONAL_MESSAGE_DEADLINE_MS = INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS;
14
+ export const INTERNAL_CONNECT_DEADLINE_MS = INTERNAL_LOCAL_PIN_INTERACTION_DEADLINE_MS;
15
+ export const DEFAULT_AGENT_Q_USB_BAUD_RATE = 115200;
16
+ export const AGENT_Q_USB_VENDOR_ID = "303a";
17
+ export const AGENT_Q_USB_PRODUCT_ID = "1001";
18
+ export const AGENT_Q_USB_VENDOR_ID_NUMBER = 0x303a;
19
+ export const AGENT_Q_USB_PRODUCT_ID_NUMBER = 0x1001;
20
+ // Current Firmware responses are bounded by protocol parsers. This transport
21
+ // cap catches malformed or hostile streams before an unterminated line can grow
22
+ // without bound, while leaving room for the largest allowed read responses.
23
+ export const MAX_PROTOCOL_RESPONSE_LINE_BYTES = 64 * 1024;
24
+ //# sourceMappingURL=transport-invariants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-invariants.js","sourceRoot":"","sources":["../src/transport-invariants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAClD,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC;AACvE,MAAM,CAAC,MAAM,0CAA0C,GACrD,0CAA0C,GAAG,4BAA4B;IACzE,uBAAuB;IACvB,4BAA4B,CAAC;AAC/B,MAAM,CAAC,MAAM,wBAAwB,GAAG,0BAA0B,CAAC;AACnE,MAAM,CAAC,MAAM,+BAA+B,GAAG,0BAA0B,CAAC;AAC1E,MAAM,CAAC,MAAM,kCAAkC,GAAG,0CAA0C,CAAC;AAC7F,MAAM,CAAC,MAAM,qCAAqC,GAAG,0CAA0C,CAAC;AAChG,MAAM,CAAC,MAAM,0CAA0C,GAAG,0CAA0C,CAAC;AACrG,MAAM,CAAC,MAAM,4BAA4B,GAAG,0CAA0C,CAAC;AAEvF,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAC7C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC;AAEpD,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,GAAG,IAAI,CAAC"}
package/dist/usb.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ import { type AccountsResponse, type ApprovalHistoryResponse, type CapabilitiesResponse, type ConnectResponse, type DisconnectResponse, type IdentifyDeviceResponse, type PolicyProposeResultResponse, type PolicyResponse, type SignResultResponse, type SignPersonalMessageParams, type SignTransactionParams, type SupportedSignRoute, type StatusResponse } from "./protocol.js";
2
+ import { AGENT_Q_USB_PRODUCT_ID, AGENT_Q_USB_VENDOR_ID, INTERNAL_USB_DEADLINE_MS } from "./transport-invariants.js";
3
+ export { AGENT_Q_USB_PRODUCT_ID, AGENT_Q_USB_VENDOR_ID, INTERNAL_USB_DEADLINE_MS };
4
+ export type UnavailableReason = "timeout" | "port_not_found" | "port_in_use" | "port_permission_denied" | "handshake_failed" | "incompatible_version" | "transport_closed";
5
+ export interface PortInfo {
6
+ path: string;
7
+ manufacturer?: string;
8
+ serialNumber?: string;
9
+ pnpId?: string;
10
+ locationId?: string;
11
+ productId?: string;
12
+ vendorId?: string;
13
+ }
14
+ export interface UsbStatusResult {
15
+ portPath: string;
16
+ protocolResponse: StatusResponse;
17
+ }
18
+ export interface UsbStatusFailure {
19
+ portPath: string;
20
+ unavailableReason: UnavailableReason;
21
+ firmwareErrorCode?: string;
22
+ }
23
+ export interface UsbStatusScanResult {
24
+ ports: PortInfo[];
25
+ devices: UsbStatusResult[];
26
+ failures: UsbStatusFailure[];
27
+ }
28
+ export interface UsbSerialDriver {
29
+ listPorts(): Promise<PortInfo[]>;
30
+ requestStatus(portPath: string, deadlineMs: number): Promise<StatusResponse>;
31
+ identifyDevice(portPath: string, code: string, deadlineMs: number): Promise<IdentifyDeviceResponse>;
32
+ connectDevice(portPath: string, clientName: string, deadlineMs: number): Promise<ConnectResponse>;
33
+ disconnectDevice(portPath: string, sessionId: string, deadlineMs: number): Promise<DisconnectResponse>;
34
+ getCapabilities(portPath: string, sessionId: string, deadlineMs: number): Promise<CapabilitiesResponse>;
35
+ getAccounts(portPath: string, sessionId: string, deadlineMs: number): Promise<AccountsResponse>;
36
+ policyGet(portPath: string, sessionId: string, deadlineMs: number): Promise<PolicyResponse>;
37
+ getApprovalHistory(portPath: string, sessionId: string, params: {
38
+ limit?: number;
39
+ beforeSeq?: string;
40
+ }, deadlineMs: number): Promise<ApprovalHistoryResponse>;
41
+ policyPropose(portPath: string, sessionId: string, policy: Record<string, unknown>, deadlineMs: number): Promise<PolicyProposeResultResponse>;
42
+ signTransaction(portPath: string, sessionId: string, route: Extract<SupportedSignRoute, {
43
+ operation: "sign_transaction";
44
+ }>, params: SignTransactionParams, deadlineMs: number): Promise<SignResultResponse>;
45
+ signPersonalMessage(portPath: string, sessionId: string, route: Extract<SupportedSignRoute, {
46
+ operation: "sign_personal_message";
47
+ }>, params: SignPersonalMessageParams, deadlineMs: number): Promise<SignResultResponse>;
48
+ }
49
+ export declare class SerialPortUsbDriver implements UsbSerialDriver {
50
+ listPorts(): Promise<PortInfo[]>;
51
+ requestStatus(portPath: string, deadlineMs: number): Promise<StatusResponse>;
52
+ identifyDevice(portPath: string, code: string, deadlineMs: number): Promise<IdentifyDeviceResponse>;
53
+ connectDevice(portPath: string, clientName: string, deadlineMs: number): Promise<ConnectResponse>;
54
+ disconnectDevice(portPath: string, sessionId: string, deadlineMs: number): Promise<DisconnectResponse>;
55
+ getCapabilities(portPath: string, sessionId: string, deadlineMs: number): Promise<CapabilitiesResponse>;
56
+ getAccounts(portPath: string, sessionId: string, deadlineMs: number): Promise<AccountsResponse>;
57
+ policyGet(portPath: string, sessionId: string, deadlineMs: number): Promise<PolicyResponse>;
58
+ getApprovalHistory(portPath: string, sessionId: string, params: {
59
+ limit?: number;
60
+ beforeSeq?: string;
61
+ }, deadlineMs: number): Promise<ApprovalHistoryResponse>;
62
+ policyPropose(portPath: string, sessionId: string, policy: Record<string, unknown>, deadlineMs: number): Promise<PolicyProposeResultResponse>;
63
+ signTransaction(portPath: string, sessionId: string, route: Extract<SupportedSignRoute, {
64
+ operation: "sign_transaction";
65
+ }>, params: SignTransactionParams, deadlineMs: number): Promise<SignResultResponse>;
66
+ signPersonalMessage(portPath: string, sessionId: string, route: Extract<SupportedSignRoute, {
67
+ operation: "sign_personal_message";
68
+ }>, params: SignPersonalMessageParams, deadlineMs: number): Promise<SignResultResponse>;
69
+ }
70
+ export declare function resolveUsbCalloutPath(path: string, platform?: NodeJS.Platform, pathExists?: (path: string) => boolean): string;
71
+ export declare function validateInternalDeadlineMs(value: unknown): number;
72
+ export declare function isLikelyAgentQUsbPort(port: PortInfo): boolean;
73
+ export declare function scanUsbDevices(driver: UsbSerialDriver, deadlineMs?: number): Promise<UsbStatusResult[]>;
74
+ export declare function deadlineEnforcingDriver(driver: UsbSerialDriver): UsbSerialDriver;
75
+ export declare function scanUsbDeviceStatuses(driver: UsbSerialDriver, deadlineMs?: number, now?: () => number): Promise<UsbStatusScanResult>;
76
+ export declare function mapErrorToUnavailableReason(error: unknown): UnavailableReason;