sealbridge 0.2.2 → 0.3.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 (251) hide show
  1. package/README.ja.md +492 -30
  2. package/README.md +522 -109
  3. package/dist/cli/dist/accept.d.ts +13 -0
  4. package/dist/cli/dist/accept.js +115 -0
  5. package/dist/cli/dist/accept.js.map +1 -0
  6. package/dist/cli/dist/approval-summary.d.ts +1 -1
  7. package/dist/cli/dist/board.d.ts +10 -9
  8. package/dist/cli/dist/board.js +62 -31
  9. package/dist/cli/dist/board.js.map +1 -1
  10. package/dist/cli/dist/command-identity.d.ts +6 -0
  11. package/dist/cli/dist/command-identity.js +13 -0
  12. package/dist/cli/dist/command-identity.js.map +1 -0
  13. package/dist/cli/dist/config.d.ts +3 -0
  14. package/dist/cli/dist/config.js +29 -0
  15. package/dist/cli/dist/config.js.map +1 -0
  16. package/dist/cli/dist/connections.d.ts +15 -0
  17. package/dist/cli/dist/connections.js +191 -0
  18. package/dist/cli/dist/connections.js.map +1 -0
  19. package/dist/cli/dist/contacts.d.ts +4 -3
  20. package/dist/cli/dist/contacts.js +39 -28
  21. package/dist/cli/dist/contacts.js.map +1 -1
  22. package/dist/cli/dist/doctor.d.ts +9 -0
  23. package/dist/cli/dist/doctor.js +46 -5
  24. package/dist/cli/dist/doctor.js.map +1 -1
  25. package/dist/cli/dist/error-messages.js +22 -0
  26. package/dist/cli/dist/error-messages.js.map +1 -1
  27. package/dist/cli/dist/index.js +44 -6
  28. package/dist/cli/dist/index.js.map +1 -1
  29. package/dist/cli/dist/invite-output.d.ts +14 -0
  30. package/dist/cli/dist/invite-output.js +66 -0
  31. package/dist/cli/dist/invite-output.js.map +1 -0
  32. package/dist/cli/dist/invite-share.d.ts +6 -3
  33. package/dist/cli/dist/invite-share.js +40 -15
  34. package/dist/cli/dist/invite-share.js.map +1 -1
  35. package/dist/cli/dist/invites-migrate.d.ts +3 -0
  36. package/dist/cli/dist/invites-migrate.js +33 -0
  37. package/dist/cli/dist/invites-migrate.js.map +1 -0
  38. package/dist/cli/dist/mcp.d.ts +7 -5
  39. package/dist/cli/dist/mcp.js +23 -18
  40. package/dist/cli/dist/mcp.js.map +1 -1
  41. package/dist/cli/dist/network.d.ts +11 -1
  42. package/dist/cli/dist/network.js +150 -87
  43. package/dist/cli/dist/network.js.map +1 -1
  44. package/dist/cli/dist/pending.d.ts +8 -0
  45. package/dist/cli/dist/pending.js +50 -0
  46. package/dist/cli/dist/pending.js.map +1 -0
  47. package/dist/cli/dist/public-settings.d.ts +5 -4
  48. package/dist/cli/dist/public-settings.js +13 -15
  49. package/dist/cli/dist/public-settings.js.map +1 -1
  50. package/dist/cli/dist/receipt.d.ts +1 -1
  51. package/dist/cli/dist/relay-auth.d.ts +3 -0
  52. package/dist/cli/dist/relay-auth.js +23 -0
  53. package/dist/cli/dist/relay-auth.js.map +1 -0
  54. package/dist/cli/dist/requests.d.ts +10 -0
  55. package/dist/cli/dist/requests.js +91 -0
  56. package/dist/cli/dist/requests.js.map +1 -0
  57. package/dist/cli/dist/sdk.d.ts +10 -0
  58. package/dist/cli/dist/sdk.js +7 -0
  59. package/dist/cli/dist/sdk.js.map +1 -0
  60. package/dist/cli/dist/setup-files.d.ts +24 -0
  61. package/dist/cli/dist/setup-files.js +190 -0
  62. package/dist/cli/dist/setup-files.js.map +1 -0
  63. package/dist/cli/dist/setup-hosts.d.ts +29 -0
  64. package/dist/cli/dist/setup-hosts.js +75 -0
  65. package/dist/cli/dist/setup-hosts.js.map +1 -0
  66. package/dist/cli/dist/setup.d.ts +61 -0
  67. package/dist/cli/dist/setup.js +243 -0
  68. package/dist/cli/dist/setup.js.map +1 -0
  69. package/dist/cli/dist/task-input.d.ts +1 -1
  70. package/dist/cli/dist/wake-hook.d.ts +1 -1
  71. package/dist/cli/dist/worker-json.d.ts +4 -0
  72. package/dist/cli/dist/worker-json.js +87 -0
  73. package/dist/cli/dist/worker-json.js.map +1 -0
  74. package/dist/examples/two-owner-demo/dist/run-demo.d.ts +13 -13
  75. package/dist/package.json +1 -1
  76. package/dist/packages/adapters/dist/command.d.ts +2 -2
  77. package/dist/packages/adapters/dist/credential-proxy.d.ts +2 -2
  78. package/dist/packages/adapters/dist/index.d.ts +1 -1
  79. package/dist/packages/adapters/dist/mcp.d.ts +2 -2
  80. package/dist/packages/adapters/dist/openai.d.ts +2 -2
  81. package/dist/packages/adapters/dist/sandbox.d.ts +2 -2
  82. package/dist/packages/core/dist/connection.d.ts +58 -0
  83. package/dist/packages/core/dist/connection.js +132 -0
  84. package/dist/packages/core/dist/connection.js.map +1 -0
  85. package/dist/packages/core/dist/delivery-status.d.ts +22 -0
  86. package/dist/packages/core/dist/delivery-status.js +53 -0
  87. package/dist/packages/core/dist/delivery-status.js.map +1 -0
  88. package/dist/packages/core/dist/discovery.d.ts +7 -6
  89. package/dist/packages/core/dist/discovery.js +19 -20
  90. package/dist/packages/core/dist/discovery.js.map +1 -1
  91. package/dist/packages/core/dist/edge.d.ts +1 -0
  92. package/dist/packages/core/dist/edge.js +1 -0
  93. package/dist/packages/core/dist/edge.js.map +1 -1
  94. package/dist/packages/core/dist/index.d.ts +3 -0
  95. package/dist/packages/core/dist/index.js +3 -0
  96. package/dist/packages/core/dist/index.js.map +1 -1
  97. package/dist/packages/core/dist/protocol.d.ts +24 -0
  98. package/dist/packages/core/dist/protocol.js +54 -0
  99. package/dist/packages/core/dist/protocol.js.map +1 -0
  100. package/dist/packages/core/dist/receipts.d.ts +1 -0
  101. package/dist/packages/core/dist/receipts.js +1 -1
  102. package/dist/packages/core/dist/receipts.js.map +1 -1
  103. package/dist/packages/core/dist/schema.d.ts +1 -0
  104. package/dist/packages/core/dist/schema.js +13 -2
  105. package/dist/packages/core/dist/schema.js.map +1 -1
  106. package/dist/packages/ledger/dist/index.d.ts +1 -1
  107. package/dist/packages/relay/dist/admission.d.ts +14 -0
  108. package/dist/packages/relay/dist/admission.js +70 -0
  109. package/dist/packages/relay/dist/admission.js.map +1 -0
  110. package/dist/packages/relay/dist/fetch.d.ts +8 -2
  111. package/dist/packages/relay/dist/fetch.js +41 -12
  112. package/dist/packages/relay/dist/fetch.js.map +1 -1
  113. package/dist/packages/relay/dist/index.d.ts +23 -12
  114. package/dist/packages/relay/dist/index.js +130 -78
  115. package/dist/packages/relay/dist/index.js.map +1 -1
  116. package/dist/packages/relay/dist/journal.d.ts +1 -1
  117. package/dist/packages/relay/dist/notifications.d.ts +1 -1
  118. package/dist/packages/relay/dist/retry.d.ts +23 -0
  119. package/dist/packages/relay/dist/retry.js +43 -1
  120. package/dist/packages/relay/dist/retry.js.map +1 -1
  121. package/dist/packages/relay/dist/ssrf.d.ts +3 -2
  122. package/dist/packages/relay/dist/ssrf.js.map +1 -1
  123. package/dist/packages/relay/dist/worker.js +1 -1
  124. package/dist/packages/relay/dist/worker.js.map +1 -1
  125. package/dist/packages/runtime/dist/a2a.d.ts +1 -1
  126. package/dist/packages/runtime/dist/a2a.js +1 -1
  127. package/dist/packages/runtime/dist/adapter.d.ts +2 -2
  128. package/dist/packages/runtime/dist/application-config.d.ts +20 -0
  129. package/dist/packages/runtime/dist/application-config.js +222 -0
  130. package/dist/packages/runtime/dist/application-config.js.map +1 -0
  131. package/dist/packages/runtime/dist/approval-providers.d.ts +24 -3
  132. package/dist/packages/runtime/dist/approval-providers.js +79 -3
  133. package/dist/packages/runtime/dist/approval-providers.js.map +1 -1
  134. package/dist/packages/runtime/dist/connection-admission-review.d.ts +39 -0
  135. package/dist/packages/runtime/dist/connection-admission-review.js +86 -0
  136. package/dist/packages/runtime/dist/connection-admission-review.js.map +1 -0
  137. package/dist/packages/runtime/dist/connection-persistence.d.ts +35 -0
  138. package/dist/packages/runtime/dist/connection-persistence.js +181 -0
  139. package/dist/packages/runtime/dist/connection-persistence.js.map +1 -0
  140. package/dist/packages/runtime/dist/connection-records.d.ts +167 -0
  141. package/dist/packages/runtime/dist/connection-records.js +132 -0
  142. package/dist/packages/runtime/dist/connection-records.js.map +1 -0
  143. package/dist/packages/runtime/dist/connection-router.d.ts +45 -0
  144. package/dist/packages/runtime/dist/connection-router.js +130 -0
  145. package/dist/packages/runtime/dist/connection-router.js.map +1 -0
  146. package/dist/packages/runtime/dist/connection-service.d.ts +159 -0
  147. package/dist/packages/runtime/dist/connection-service.js +239 -0
  148. package/dist/packages/runtime/dist/connection-service.js.map +1 -0
  149. package/dist/packages/runtime/dist/connection-transport.d.ts +14 -0
  150. package/dist/packages/runtime/dist/connection-transport.js +89 -0
  151. package/dist/packages/runtime/dist/connection-transport.js.map +1 -0
  152. package/dist/packages/runtime/dist/delivery-records.d.ts +180 -0
  153. package/dist/packages/runtime/dist/delivery-records.js +205 -0
  154. package/dist/packages/runtime/dist/delivery-records.js.map +1 -0
  155. package/dist/packages/runtime/dist/delivery-status-router.d.ts +27 -0
  156. package/dist/packages/runtime/dist/delivery-status-router.js +150 -0
  157. package/dist/packages/runtime/dist/delivery-status-router.js.map +1 -0
  158. package/dist/packages/runtime/dist/delivery-status.d.ts +43 -0
  159. package/dist/packages/runtime/dist/delivery-status.js +193 -0
  160. package/dist/packages/runtime/dist/delivery-status.js.map +1 -0
  161. package/dist/packages/runtime/dist/delivery-store.d.ts +125 -0
  162. package/dist/packages/runtime/dist/delivery-store.js +1047 -0
  163. package/dist/packages/runtime/dist/delivery-store.js.map +1 -0
  164. package/dist/packages/runtime/dist/gateway.d.ts +4 -3
  165. package/dist/packages/runtime/dist/gateway.js.map +1 -1
  166. package/dist/packages/runtime/dist/held-request-review.d.ts +49 -0
  167. package/dist/packages/runtime/dist/held-request-review.js +122 -0
  168. package/dist/packages/runtime/dist/held-request-review.js.map +1 -0
  169. package/dist/packages/runtime/dist/held-request-store.d.ts +112 -0
  170. package/dist/packages/runtime/dist/held-request-store.js +290 -0
  171. package/dist/packages/runtime/dist/held-request-store.js.map +1 -0
  172. package/dist/packages/runtime/dist/idempotency-store.d.ts +53 -0
  173. package/dist/packages/runtime/dist/idempotency-store.js +331 -0
  174. package/dist/packages/runtime/dist/idempotency-store.js.map +1 -0
  175. package/dist/packages/runtime/dist/inbox.d.ts +1 -1
  176. package/dist/packages/runtime/dist/index.d.ts +27 -1
  177. package/dist/packages/runtime/dist/index.js +26 -0
  178. package/dist/packages/runtime/dist/index.js.map +1 -1
  179. package/dist/packages/runtime/dist/invite-store.d.ts +76 -0
  180. package/dist/packages/runtime/dist/invite-store.js +337 -0
  181. package/dist/packages/runtime/dist/invite-store.js.map +1 -0
  182. package/dist/packages/runtime/dist/key-store.d.ts +77 -0
  183. package/dist/packages/runtime/dist/key-store.js +226 -0
  184. package/dist/packages/runtime/dist/key-store.js.map +1 -0
  185. package/dist/packages/runtime/dist/local-identity.d.ts +33 -0
  186. package/dist/packages/runtime/dist/local-identity.js +278 -0
  187. package/dist/packages/runtime/dist/local-identity.js.map +1 -0
  188. package/dist/packages/runtime/dist/mcp-rpc.d.ts +19 -0
  189. package/dist/packages/runtime/dist/mcp-rpc.js +175 -0
  190. package/dist/packages/runtime/dist/mcp-rpc.js.map +1 -0
  191. package/dist/packages/runtime/dist/mcp-server.d.ts +46 -19
  192. package/dist/packages/runtime/dist/mcp-server.js +427 -184
  193. package/dist/packages/runtime/dist/mcp-server.js.map +1 -1
  194. package/dist/packages/runtime/dist/mcp-tool-catalog.d.ts +1 -1
  195. package/dist/packages/runtime/dist/mcp-tool-catalog.js +172 -13
  196. package/dist/packages/runtime/dist/mcp-tool-catalog.js.map +1 -1
  197. package/dist/packages/runtime/dist/mcp.d.ts +2 -2
  198. package/dist/packages/runtime/dist/message-status.d.ts +32 -0
  199. package/dist/packages/runtime/dist/message-status.js +29 -0
  200. package/dist/packages/runtime/dist/message-status.js.map +1 -0
  201. package/dist/packages/runtime/dist/outbox.d.ts +91 -0
  202. package/dist/packages/runtime/dist/outbox.js +462 -0
  203. package/dist/packages/runtime/dist/outbox.js.map +1 -0
  204. package/dist/packages/runtime/dist/policy.d.ts +1 -1
  205. package/dist/packages/runtime/dist/protocol-peer-store.d.ts +40 -0
  206. package/dist/packages/runtime/dist/protocol-peer-store.js +176 -0
  207. package/dist/packages/runtime/dist/protocol-peer-store.js.map +1 -0
  208. package/dist/packages/runtime/dist/protocol-release.d.ts +26 -0
  209. package/dist/packages/runtime/dist/protocol-release.js +76 -0
  210. package/dist/packages/runtime/dist/protocol-release.js.map +1 -0
  211. package/dist/packages/runtime/dist/quota.d.ts +1 -1
  212. package/dist/packages/runtime/dist/relay-selection.d.ts +20 -0
  213. package/dist/packages/runtime/dist/relay-selection.js +34 -0
  214. package/dist/packages/runtime/dist/relay-selection.js.map +1 -0
  215. package/dist/packages/runtime/dist/requester-pending-store.d.ts +59 -0
  216. package/dist/packages/runtime/dist/requester-pending-store.js +266 -0
  217. package/dist/packages/runtime/dist/requester-pending-store.js.map +1 -0
  218. package/dist/packages/runtime/dist/secret-store.d.ts +19 -0
  219. package/dist/packages/runtime/dist/secret-store.js +51 -0
  220. package/dist/packages/runtime/dist/secret-store.js.map +1 -0
  221. package/dist/packages/runtime/dist/session-audit.d.ts +29 -7
  222. package/dist/packages/runtime/dist/session-audit.js +149 -29
  223. package/dist/packages/runtime/dist/session-audit.js.map +1 -1
  224. package/dist/packages/runtime/dist/session.d.ts +101 -9
  225. package/dist/packages/runtime/dist/session.js +696 -96
  226. package/dist/packages/runtime/dist/session.js.map +1 -1
  227. package/dist/packages/runtime/dist/task-journal.d.ts +18 -3
  228. package/dist/packages/runtime/dist/task-journal.js +271 -18
  229. package/dist/packages/runtime/dist/task-journal.js.map +1 -1
  230. package/dist/packages/runtime/dist/verifier.d.ts +3 -2
  231. package/dist/packages/runtime/dist/verifier.js +1 -0
  232. package/dist/packages/runtime/dist/verifier.js.map +1 -1
  233. package/dist/packages/runtime/dist/worker-trust-store.d.ts +111 -0
  234. package/dist/packages/runtime/dist/worker-trust-store.js +592 -0
  235. package/dist/packages/runtime/dist/worker-trust-store.js.map +1 -0
  236. package/dist/packages/sandbox/dist/container.d.ts +1 -1
  237. package/dist/packages/sandbox/dist/index.d.ts +1 -1
  238. package/dist/spec/README.ja.md +21 -1
  239. package/dist/spec/README.md +20 -1
  240. package/dist/spec/agent-card.schema.json +11 -1
  241. package/dist/spec/delivery-status.schema.json +106 -0
  242. package/dist/spec/examples/protocol-versions/sample-agent-card.json +35 -0
  243. package/dist/spec/examples/sample-delivery-status.json +21 -0
  244. package/dist/spec/examples/sample-task-manifest.0.1.0.json +173 -0
  245. package/dist/spec/examples/sample-task-manifest.0.2.0.json +173 -0
  246. package/dist/spec/task-manifest.0.1.0.schema.json +422 -0
  247. package/dist/spec/task-manifest.0.2.0.schema.json +422 -0
  248. package/dist/spec/task-manifest.schema.json +9 -418
  249. package/docs/sdk.ja.md +133 -0
  250. package/docs/sdk.md +138 -0
  251. package/package.json +15 -3
@@ -2,18 +2,21 @@
2
2
  import { readFileSync, writeFileSync } from 'node:fs';
3
3
  import { dirname, join } from 'node:path';
4
4
  import { inviteShareCommand } from './invite-share.js';
5
+ import { connectionHumanReview } from './connections.js';
5
6
  import { publicSettingsFlags, publicProfileSummary } from './public-settings.js';
6
- import { createSignedAgentCard, createInviteToken, discoverAgentCards } from '../../packages/core/dist/index.js';
7
+ import { createSignedAgentCard, createInviteToken, discoverAgentCards, isInviteTarget, parseAndVerifyInviteToken } from '../../packages/core/dist/index.js';
7
8
  import { startLocalRelay, HttpRelayClient } from '../../packages/relay/dist/index.js';
8
- import { WorkerNode, RequesterClient, PolicyAutoApprovalProvider, InteractiveCliApprovalProvider, } from '../../packages/runtime/dist/index.js';
9
+ import { WorkerNode, HeldRequestReview, LiveProtocol, ProtocolPeerStore, WorkerTrustStore, workerIntakePath, resolveStoredIdentity, selectApplicationRelay, normalizeRelayUrl, readApplicationConfig, RequesterClient, RequesterPendingStore, InviteStore, PolicyAutoApprovalProvider, InteractiveCliApprovalProvider, } from '../../packages/runtime/dist/index.js';
9
10
  import { CommandAgentAdapter, ClaudeCodeAdapter, CodexCliAdapter, OpenAICompatibleAdapter, SandboxAgentAdapter, assertCliAuthentication, } from '../../packages/adapters/dist/index.js';
10
11
  import { createWakeHook } from './wake-hook.js';
11
12
  import { createReceiveHook } from './receive-hook.js';
12
13
  import { contactsPath, loadContacts, contactsApproval, addContact } from './contacts.js';
13
14
  import { readTaskInputFile } from './task-input.js';
14
15
  import { approvalSummary } from './approval-summary.js';
15
- import { japaneseErrorReason } from './error-messages.js';
16
- const REPEATABLE = new Set(['--allow-requester', '--open-allow-task-type']);
16
+ import { relayAuthOptions, RELAY_AUTH_HELP } from './relay-auth.js';
17
+ import { parseInviteOutput, deliverInvite } from './invite-output.js';
18
+ import { emitWorkerJson, inviteDigest } from './worker-json.js';
19
+ const REPEATABLE = new Set(['--allowed-peer', '--allow-requester', '--allow-task-type']);
17
20
  const LLM_ADAPTERS = new Set(['claude', 'codex', 'openai']);
18
21
  function flags(args) {
19
22
  const out = new Map();
@@ -83,6 +86,10 @@ const REVIEW_HELP = `
83
86
  --to <invite|link|did> Delegate: accepts https://sealbridge.app/i#acp-invite:... links.
84
87
  --invite-ttl <seconds> Worker invite lifetime (default: 86400 / 24h; range: 1–2592000).
85
88
  Startup prints both the token and a ready-to-share HTTPS link.
89
+ --invite-output <destination> Worker: stdout (default), none, file:<path>, or fd:<n> (POSIX only, n > 2).
90
+ File: unused path in an existing private directory; token + newline.
91
+ FD: inherited pipe/socket or private file; remains open. No stdout copy.
92
+ Stderr invite_ready JSON contains metadata only in every mode.
86
93
  --verbose Full approval JSON instead of concise summaries (default: off).
87
94
  Claude/Codex workers require a host ANTHROPIC_API_KEY / OPENAI_API_KEY.
88
95
  Task HOME is fresh: host CLI login directories are not exposed. --cmd overrides manage their own authentication.`;
@@ -103,7 +110,6 @@ function allowRequesterDids(parsed) {
103
110
  function workerAcceptance(parsed) {
104
111
  return {
105
112
  allowedRequesterDids: allowRequesterDids(parsed),
106
- allowAnyRequester: parsed.has('--allow-any-requester'),
107
113
  maxInputTokens: optionalCount(parsed, 'max-input-tokens'),
108
114
  maxOutputTokens: optionalCount(parsed, 'max-output-tokens'),
109
115
  maxToolInvocations: optionalCount(parsed, 'max-tool-invocations'),
@@ -113,26 +119,19 @@ function workerAcceptance(parsed) {
113
119
  publishToRegistry: parsed.has('--publish'),
114
120
  };
115
121
  }
116
- function openRateLimit(parsed) {
117
- const raw = parsed.get('--open-rate-limit-per-did');
118
- if (raw === undefined)
119
- return undefined;
120
- const match = typeof raw === 'string' ? /^([1-9]\d*)(?:\/(?:m|min|60s))?$/.exec(raw) : null;
121
- if (!match || !Number.isSafeInteger(Number(match[1])))
122
- throw new Error('INVALID_OPEN_RATE_LIMIT_PER_DID');
123
- return Number(match[1]);
124
- }
125
- function assertLlmAutoAccept(adapter, automatic, acceptance) {
122
+ function assertLlmAutoAccept(adapter, automatic, acceptance, trustedGrant = false) {
126
123
  if (!automatic || !LLM_ADAPTERS.has(adapter))
127
124
  return;
128
- if (acceptance.allowAnyRequester || (acceptance.allowedRequesterDids?.length ?? 0) > 0)
125
+ if (trustedGrant || (acceptance.allowedRequesterDids?.length ?? 0) > 0)
129
126
  return;
130
127
  throw new Error('LLM_AUTO_ACCEPT_REQUIRES_ALLOWLIST: --auto-accept with the ' +
131
128
  adapter +
132
129
  ' adapter can spend the worker owner API key. Pass --allow-requester <did> ' +
133
- '(repeatable or comma-separated) or --allow-any-requester.');
130
+ '(repeatable or comma-separated). Connections remain limited and require owner opening.');
134
131
  }
135
- export async function networkCommand(command, args) {
132
+ export async function networkCommand(command, args, application = {}) {
133
+ if (args.some(a => a === '--open' || a.startsWith('--open=') || a === '--access-mode' || a.startsWith('--open-') || a.startsWith('--access-mode=') || a === '--allow-any-requester' || a.startsWith('--allow-any-requester=')))
134
+ throw new Error('ACCESS_MODE_REMOVED: Use connections; replace old budget flags with --max-input-tokens, --max-output-tokens, --max-tool-invocations, --max-wall-clock-seconds, --allow-task-type and --max-requests-per-minute.');
136
135
  if (args.includes('--help') && ['delegate', 'worker', 'relay'].includes(command)) {
137
136
  console.log(command === 'relay' ? `Relay notification options:
138
137
  --wake-command <command> Opt-in wake hook, signed routing JSON on stdin (default: off).
@@ -142,7 +141,16 @@ export async function networkCommand(command, args) {
142
141
  --wake-timeout-ms <n> Per-attempt timeout (default: 5000).
143
142
  --notification-key <file> Persistent signing key (default: ephemeral local identity).
144
143
  --notification-ttl-ms <n> Wake registration/dedup and expiry notice retention (default: 3600000).
145
- --envelope-ttl-ms <n> Undelivered envelope TTL (default: 600000).` : TIMEOUT_HELP + REVIEW_HELP + `
144
+ --envelope-ttl-ms <n> Undelivered envelope TTL (default: 86400000).
145
+ --max-queue-size <n> Queued envelopes per recipient (default: 256).
146
+ --max-queue-bytes <n> Queued JSON bytes per recipient (default: 4194304).
147
+ --max-envelope-bytes <n> Signed envelope JSON bytes (default: 262144).
148
+ --max-envelopes-per-sender <n> Queued envelopes per sender and recipient (default: queue size).` : TIMEOUT_HELP + '\n' + RELAY_AUTH_HELP + REVIEW_HELP + `
149
+ --allowed-peer <did> Worker: hard peer perimeter (repeatable/comma-separated).
150
+ requests list|show|approve|discard|deny Local review; approve records limited connection consent.
151
+ connections list|request|approve|reject|withdraw|disconnect|block|unblock|confirm-invite|prior-approved|connect-prior|sync
152
+ Separate human connection consent; inspection unavailable by default.
153
+ --allow-task-type <type> Repeatable/comma-separated advertised task types.
146
154
  --wake-channel <name> Worker: register an operator channel on startup (default: off).
147
155
  The local relay CLI provides channel "default".`);
148
156
  return;
@@ -156,13 +164,23 @@ export async function networkCommand(command, args) {
156
164
  args.splice(index, 2);
157
165
  if (args.some(a => ['--open', '--publish', '--auto-accept', '--auto-approve', '--yes', '--allow-any-requester', '--access-mode'].includes(a) || a.startsWith('--open-') || a === '--max-tasks-per-day'))
158
166
  throw new Error('CONFLICTING_PUBLIC_SETTINGS');
159
- return networkCommand('worker', ['start', ...args, ...publicSettingsFlags(settings)]);
167
+ const generated = publicSettingsFlags(settings);
168
+ for (const flag of ['--max-input-tokens', '--max-output-tokens', '--max-tool-invocations', '--max-wall-clock-seconds', '--max-requests-per-minute']) {
169
+ const existing = args.indexOf(flag), setting = generated.indexOf(flag);
170
+ if (existing >= 0 && setting >= 0) {
171
+ generated[setting + 1] = String(Math.min(Number(args[existing + 1]), Number(generated[setting + 1])));
172
+ args.splice(existing, 2);
173
+ }
174
+ }
175
+ return networkCommand('worker', ['start', ...args, ...generated], application);
160
176
  }
161
177
  if (command === 'invite' && sub !== 'create')
162
- return inviteShareCommand(sub ?? '', args);
178
+ return inviteShareCommand(sub ?? '', args, application.identityOptions);
163
179
  if ((command === 'relay' || command === 'worker') && sub !== 'start')
164
180
  throw new Error('Expected ' + command + ' start');
165
181
  const f = flags(args);
182
+ const inviteOutput = command === 'worker' ? parseInviteOutput(f.get('--invite-output')) : undefined;
183
+ const authRecovery = relayAuthOptions(f);
166
184
  const allowPrivateRelay = f.has('--allow-private-relay');
167
185
  if (command === 'relay') {
168
186
  const port = Number(text(f, 'port', '8787'));
@@ -170,6 +188,10 @@ export async function networkCommand(command, args) {
170
188
  throw new Error('INVALID_PORT');
171
189
  const relay = await startLocalRelay({ port, host: text(f, 'host', '127.0.0.1'), relayOptions: {
172
190
  envelopeTtlMs: optionalCount(f, 'envelope-ttl-ms'),
191
+ maxQueueSize: optionalCount(f, 'max-queue-size'),
192
+ maxQueueBytesPerRecipient: optionalCount(f, 'max-queue-bytes'),
193
+ maxEnvelopeBytes: optionalCount(f, 'max-envelope-bytes'),
194
+ maxEnvelopesPerSender: optionalCount(f, 'max-envelopes-per-sender'),
173
195
  notificationTtlMs: optionalCount(f, 'notification-ttl-ms'),
174
196
  notificationKey: f.has('--notification-key') ? JSON.parse(readFileSync(text(f, 'notification-key'), 'utf8')) : undefined,
175
197
  ...(f.has('--wake-command') ? { wake: {
@@ -187,8 +209,13 @@ export async function networkCommand(command, args) {
187
209
  await relay.close();
188
210
  return;
189
211
  }
212
+ const { relays: fallbackCandidates } = readApplicationConfig({ ...application.identityOptions, allowPrivateRelay });
213
+ const selectedRelay = (inviteRelay) => selectApplicationRelay({
214
+ configured: f.has('--relay') ? text(f, 'relay') : undefined,
215
+ inviteRelay, fallbackCandidates, allowPrivateRelay,
216
+ }).relay;
190
217
  if (command === 'discover') {
191
- const client = new HttpRelayClient(text(f, 'relay'), { allowPrivateRelay });
218
+ const client = new HttpRelayClient(selectedRelay(), application.fetch ?? fetch, undefined, { allowPrivateRelay });
192
219
  console.log(JSON.stringify(discoverAgentCards(await client.discover(), {
193
220
  ...(f.has('--skill') ? { skillId: text(f, 'skill') } : {}),
194
221
  ...(f.has('--task-type') ? { taskType: text(f, 'task-type') } : {}),
@@ -196,22 +223,25 @@ export async function networkCommand(command, args) {
196
223
  }), null, 2));
197
224
  return;
198
225
  }
199
- const key = JSON.parse(readFileSync(text(f, 'key'), 'utf8'));
226
+ const key = await resolveStoredIdentity(command === 'delegate' ? 'requester' : 'worker', {
227
+ ...application.identityOptions,
228
+ explicitKeyPath: f.has('--key') ? text(f, 'key') : undefined,
229
+ });
200
230
  if (command === 'invite') {
231
+ // Local signing retains the explicit URL; connection policy applies when dialing.
232
+ const relayUrl = text(f, 'relay', fallbackCandidates[0]);
201
233
  const card = createSignedAgentCard({
202
234
  name: text(f, 'name', 'Sealbridge Worker'),
203
235
  agentDid: key.did,
204
- relayEndpoint: text(f, 'relay'),
236
+ relayEndpoint: relayUrl,
205
237
  skills: [{ id: 'json-task', name: 'JSON task' }],
238
+ protocolVersions: new LiveProtocol().receiveVersions(),
206
239
  }, key);
207
240
  console.log(createInviteToken({ agentCard: card, expiresInSeconds: Number(text(f, 'expires-in', '3600')) }, key));
208
241
  return;
209
242
  }
210
243
  const automatic = ['yes', 'auto-accept', 'auto-approve'].some((name) => f.has('--' + name));
211
244
  if (command === 'worker') {
212
- const accessMode = text(f, 'access-mode', f.has('--open') ? 'open' : 'invite-only');
213
- if (!['invite-only', 'open'].includes(accessMode) || (f.has('--open') && accessMode !== 'open'))
214
- throw new Error('INVALID_ACCESS_MODE');
215
245
  const onInboxRecord = f.has('--on-receive')
216
246
  ? createReceiveHook(text(f, 'on-receive')) : undefined;
217
247
  if (onInboxRecord && !f.has('--inbox'))
@@ -227,39 +257,17 @@ export async function networkCommand(command, args) {
227
257
  ...(acceptance.allowedRequesterDids ?? []),
228
258
  ...loadContacts(contactFile, key.did).filter(c => c.allow && !c.revoked).map(c => c.ownerDid),
229
259
  ])];
230
- const rateLimit = openRateLimit(f);
231
- const allowedTaskTypes = f.has('--open-allow-task-type')
232
- ? [...new Set(text(f, 'open-allow-task-type').split(',').map((value) => value.trim()))]
233
- : undefined;
234
- if (allowedTaskTypes?.some((value) => !value))
235
- throw new Error('INVALID_OPEN_ALLOW_TASK_TYPE');
236
- if ((allowedTaskTypes || rateLimit !== undefined) && accessMode !== 'open')
237
- throw new Error('OPEN_POLICY_REQUIRES_OPEN_MODE');
260
+ const allowedTaskTypes = f.has('--allow-task-type')
261
+ ? [...new Set(text(f, 'allow-task-type').split(',').map(value => value.trim()))] : undefined;
262
+ if (allowedTaskTypes?.some(value => !value))
263
+ throw new Error('INVALID_ALLOW_TASK_TYPE');
238
264
  if (allowedTaskTypes && f.has('--task-type') && !allowedTaskTypes.includes(text(f, 'task-type')))
239
- throw new Error('CONFLICTING_OPEN_TASK_TYPE');
240
- if (rateLimit !== undefined)
241
- acceptance.maxTasksPerRequesterPerMinute = Math.min(acceptance.maxTasksPerRequesterPerMinute ?? rateLimit, rateLimit);
242
- const openPolicy = {};
243
- const openFlags = {
244
- maxInputTokens: 'open-max-input-tokens',
245
- maxOutputTokens: 'open-max-output-tokens',
246
- maxToolInvocations: 'open-max-tool-calls',
247
- maxWallClockSeconds: 'open-max-wall-seconds',
248
- };
249
- for (const field of Object.keys(openFlags)) {
250
- const limit = optionalCount(f, openFlags[field]);
251
- if (limit !== undefined)
252
- openPolicy[field] = limit;
253
- }
254
- if (Object.keys(openPolicy).length && accessMode !== 'open')
255
- throw new Error('OPEN_POLICY_REQUIRES_OPEN_MODE');
256
- if (accessMode === 'open')
257
- for (const field of Object.keys(openFlags)) {
258
- const general = acceptance[field];
259
- if (general !== undefined)
260
- openPolicy[field] = Math.min(openPolicy[field] ?? general, general);
261
- }
262
- assertLlmAutoAccept(adapterName, automatic, acceptance);
265
+ throw new Error('CONFLICTING_TASK_TYPE');
266
+ const intakeStore = new WorkerTrustStore(key, {
267
+ path: workerIntakePath(key.did, application.identityOptions),
268
+ fs: application.identityOptions?.fs, platform: application.identityOptions?.platform,
269
+ });
270
+ assertLlmAutoAccept(adapterName, automatic, acceptance, intakeStore.hasTrustedGrant());
263
271
  if (adapterName === 'claude' || adapterName === 'codex')
264
272
  assertCliAuthentication(adapterName, f.has('--cmd') ? { command: text(f, 'cmd') } : {});
265
273
  let adapter;
@@ -293,52 +301,82 @@ export async function networkCommand(command, args) {
293
301
  }
294
302
  if (allowedTaskTypes)
295
303
  adapter.skills = adapter.skills.map((skill) => ({ ...skill, taskTypes: allowedTaskTypes }));
296
- const workerRelay = new HttpRelayClient(text(f, 'relay'), key, { allowPrivateRelay,
304
+ const relayUrl = selectedRelay();
305
+ const workerRelay = new HttpRelayClient(relayUrl, application.fetch ?? fetch, key, { allowPrivateRelay, ...authRecovery,
297
306
  requestTimeoutMs: optionalCount(f, 'connect-timeout-ms') });
298
307
  const worker = new WorkerNode({
308
+ ...authRecovery,
299
309
  ...(f.has('--max-tasks-per-day') ? { dailyLimit: {
300
310
  path: join(dirname(contactsPath()), 'daily-tasks.json'),
301
311
  maxTasks: optionalCount(f, 'max-tasks-per-day'),
302
312
  } } : {}),
303
- accessMode: accessMode,
304
- ...(Object.keys(openPolicy).length ? { openPolicy } : {}),
313
+ intakeStore,
314
+ ...(f.has('--allowed-peer') ? { allowedPeerDids: text(f, 'allowed-peer').split(',').map(d => d.trim()).filter(Boolean) } : {}),
315
+ adapterKind: LLM_ADAPTERS.has(adapterName) ? 'llm' : 'non-llm',
316
+ automaticApproval: automatic,
317
+ ownerApprovalProvider: process.stdin.isTTY && process.stderr.isTTY
318
+ ? contactsApproval(contactFile, key, false, explicitAcceptance, approval(key, false, undefined, f.has('--verbose')))
319
+ : undefined,
320
+ checkPeer: (did) => {
321
+ const contact = loadContacts(contactFile, key.did).find(c => c.ownerDid === did);
322
+ if (contact?.revoked)
323
+ throw new Error('CONTACT_REVOKED');
324
+ if (automatic && contact && !contact.allow)
325
+ throw new Error('CONTACT_NOT_ALLOWED');
326
+ if (contact?.allow)
327
+ return 'trusted';
328
+ },
329
+ identityOptions: application.identityOptions ?? {},
330
+ deliveryOptions: { identityOptions: application.identityOptions,
331
+ resolveTransport: url => {
332
+ if (normalizeRelayUrl(url) !== normalizeRelayUrl(relayUrl))
333
+ throw new Error('RELAY_ENDPOINT_MISMATCH');
334
+ return workerRelay;
335
+ } },
336
+ heldReview: new HeldRequestReview(key, application.identityOptions),
337
+ protocolPeers: new ProtocolPeerStore(key, application.identityOptions),
338
+ connectionReview: connectionHumanReview(undefined, 'worker'),
339
+ onConnectionEvent: event => console.error(JSON.stringify(event)),
305
340
  ...sessionTimeouts(f),
306
341
  owner: key,
307
342
  relay: workerRelay,
308
343
  inviteTtlSeconds: inviteTtl,
309
- relayUrl: text(f, 'relay'),
344
+ relayUrl,
310
345
  adapter,
311
346
  name: text(f, 'name', adapter.name),
312
347
  approvalProvider: contactsApproval(contactFile, key, automatic, explicitAcceptance, approval(key, false, undefined, f.has('--verbose'))),
313
348
  auditPath: f.has('--audit') ? text(f, 'audit') : undefined,
314
349
  inboxPath: f.has('--inbox') ? text(f, 'inbox') : undefined,
315
350
  onInboxRecord,
316
- onStatus: (status, error) => console.error(JSON.stringify({ status, ...(error ? { error: error.message, reasonJa: japaneseErrorReason(error.message) } : {}) })),
317
- onEvent: (event, taskId, error) => console.error(JSON.stringify({ event, taskId, ...error,
318
- ...(error ? { reasonJa: japaneseErrorReason(error.code) } : {}) })),
351
+ onStatus: (status, error) => emitWorkerJson({ status, error }),
352
+ onEvent: (event, taskId, error) => emitWorkerJson({ event, taskId,
353
+ code: error?.code, detail: error?.detail, reason: error?.reason }),
319
354
  ...acceptance,
320
355
  allowPrivateRelay,
321
356
  });
322
357
  if (f.has('--preview')) {
323
- console.log(JSON.stringify(publicProfileSummary(worker.agentCard, acceptance.maxTasksPerRequesterPerMinute, optionalCount(f, 'max-tasks-per-day'), automatic), null, 2));
358
+ console.log(JSON.stringify(publicProfileSummary(worker.agentCard, acceptance.maxTasksPerRequesterPerMinute, optionalCount(f, 'max-tasks-per-day'), automatic, { maxInputTokens: acceptance.maxInputTokens,
359
+ maxOutputTokens: acceptance.maxOutputTokens, maxToolInvocations: acceptance.maxToolInvocations, maxWallClockSeconds: acceptance.maxWallClockSeconds }), null, 2));
324
360
  return;
325
361
  }
326
362
  if (f.has('--wake-channel'))
327
363
  await workerRelay.registerWake(key.did, text(f, 'wake-channel'));
328
364
  if (acceptance.publishToRegistry)
329
365
  await worker.register();
330
- if (accessMode === 'open' && automatic && !acceptance.allowedRequesterDids?.length)
331
- console.error(`[Sealbridge WARNING] Worker started in --open mode with ${f.has('--yes') ? '--yes' : 'automatic approval'} and no requester allowlist. Any requester can submit tasks for automatic acceptance within configured limits.`);
332
366
  const token = worker.invite(inviteTtl);
333
- console.log(token);
334
- console.log('https://sealbridge.app/i#' + token);
367
+ const invite = parseAndVerifyInviteToken(token, Date.now(), { allowPrivateRelay });
368
+ deliverInvite(inviteOutput, token);
369
+ emitWorkerJson({ event: 'invite_ready', inviteDigest: inviteDigest(token),
370
+ expiresAt: invite.expiresAt, workerDid: invite.agentDid, relay: relayUrl });
335
371
  const stop = () => worker.stop();
336
372
  process.once('SIGINT', stop);
337
373
  process.once('SIGTERM', stop);
338
374
  try {
375
+ await worker.startDelivery();
339
376
  await worker.start({ once: f.has('--once') });
340
377
  }
341
378
  finally {
379
+ worker.stopDelivery();
342
380
  process.removeListener('SIGINT', stop);
343
381
  process.removeListener('SIGTERM', stop);
344
382
  }
@@ -347,7 +385,7 @@ export async function networkCommand(command, args) {
347
385
  if (command === 'delegate') {
348
386
  if (f.has('--input') && f.has('--input-file'))
349
387
  throw new Error('INVALID_INPUT_OPTIONS: use exactly one of --input and --input-file');
350
- const input = f.has('--input-file')
388
+ const input = application.pendingRequest ? application.pendingRequest.input : f.has('--input-file')
351
389
  ? readTaskInputFile(text(f, 'input-file')) : JSON.parse(text(f, 'input'));
352
390
  if (f.has('--save-contact'))
353
391
  addContact(f.has('--contacts') ? text(f, 'contacts') : contactsPath(), key, text(f, 'to'), text(f, 'save-contact'), allowPrivateRelay);
@@ -356,28 +394,53 @@ export async function networkCommand(command, args) {
356
394
  const value = text(f, 'output-schema');
357
395
  outputSchema = JSON.parse(value.trim().startsWith('{') ? value : readFileSync(value, 'utf8'));
358
396
  }
397
+ const workerRef = application.pendingRequest?.workerRef;
398
+ const to = workerRef
399
+ ? (await InviteStore.open(key, { ...application.identityOptions, relayPolicy: { allowPrivateRelay } })).resolve(workerRef).inviteToken
400
+ : application.pendingRequest?.to ?? text(f, 'to', f.has('--discover') || f.has('--task-type') ? '' : undefined);
401
+ const invite = isInviteTarget(to) ? parseAndVerifyInviteToken(to, Date.now(), { allowPrivateRelay }) : undefined;
402
+ const relay = selectedRelay(invite?.relayUrl ?? application.pendingRelayUrl);
359
403
  const client = new RequesterClient({
404
+ ...authRecovery,
360
405
  ...sessionTimeouts(f),
361
406
  owner: key,
362
- ...(f.has('--relay')
363
- ? { relay: new HttpRelayClient(text(f, 'relay'), key, { allowPrivateRelay, requestTimeoutMs: optionalCount(f, 'connect-timeout-ms') }) }
364
- : {}),
407
+ identityOptions: application.identityOptions ?? {},
408
+ protocolPeers: new ProtocolPeerStore(key, application.identityOptions),
409
+ connectionReview: connectionHumanReview(),
410
+ pendingStore: new RequesterPendingStore(key, application.identityOptions),
411
+ pendingRelayUrl: relay,
412
+ deliveryOptions: { identityOptions: application.identityOptions,
413
+ resolveTransport: (url, owner) => application.transportFactory?.(url, owner) ??
414
+ new HttpRelayClient(url, application.fetch ?? fetch, owner, { allowPrivateRelay, ...authRecovery,
415
+ requestTimeoutMs: optionalCount(f, 'connect-timeout-ms') }) },
416
+ relay: application.transportFactory?.(relay, key) ?? new HttpRelayClient(relay, application.fetch ?? fetch, key, { allowPrivateRelay, ...authRecovery,
417
+ requestTimeoutMs: optionalCount(f, 'connect-timeout-ms') }),
365
418
  approvalProvider: approval(key, automatic, undefined, f.has('--verbose')),
366
419
  auditPath: f.has('--audit') ? text(f, 'audit') : undefined,
367
420
  allowPrivateRelay,
368
421
  });
369
- const result = await client.delegate({
370
- ...sessionTimeouts(f),
371
- to: text(f, 'to', f.has('--discover') || f.has('--task-type') ? '' : undefined),
372
- ...(f.has('--discover') || f.has('--task-type') ? { discover: {
373
- ...(f.has('--discover') ? { skillId: text(f, 'discover') } : {}),
374
- ...(f.has('--task-type') ? { taskType: text(f, 'task-type') } : {}),
375
- } } : {}),
376
- title: text(f, 'title'),
377
- description: text(f, 'description'),
378
- input,
379
- outputSchema,
380
- });
422
+ await client.startDelivery();
423
+ let result;
424
+ try {
425
+ result = await client.delegate({
426
+ ...sessionTimeouts(f),
427
+ ...(f.has('--discover') || f.has('--task-type') ? { discover: {
428
+ ...(f.has('--discover') ? { skillId: text(f, 'discover') } : {}),
429
+ ...(f.has('--task-type') ? { taskType: text(f, 'task-type') } : {}),
430
+ } } : {}),
431
+ title: application.pendingRequest?.title ?? text(f, 'title'),
432
+ description: application.pendingRequest?.description ?? text(f, 'description'),
433
+ input,
434
+ outputSchema,
435
+ ...application.pendingRequest,
436
+ to,
437
+ ...Object.fromEntries(Object.entries(sessionTimeouts(f)).filter(([, value]) => value !== undefined)),
438
+ });
439
+ }
440
+ finally {
441
+ client.stopDelivery();
442
+ }
443
+ application.onDelegated?.();
381
444
  if (f.has('--out'))
382
445
  writeFileSync(text(f, 'out'), JSON.stringify(result.deliverable, null, 2) + '\n', {
383
446
  flag: 'wx',
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../src/network.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { KeyPair } from '../../packages/core/dist/index.js';
2
+ import type { RelayTransport } from '../../packages/relay/dist/index.js';
3
+ import type { InviteStoreOptions } from '../../packages/runtime/dist/index.js';
4
+ export declare function pendingCommand(args: string[], application?: {
5
+ identityOptions?: InviteStoreOptions;
6
+ fetch?: typeof fetch;
7
+ transportFactory?: (url: string, owner: KeyPair) => RelayTransport;
8
+ }): Promise<void>;
@@ -0,0 +1,50 @@
1
+ import { inspectStoredIdentity, RequesterPendingStore } from '../../packages/runtime/dist/index.js';
2
+ import { networkCommand } from './network.js';
3
+ export async function pendingCommand(args, application = {}) {
4
+ const usage = 'Usage: sealbridge pending list [--key FILE] | resubmit ID [delegate approval/relay/audit/output options] | remove ID [--key FILE]';
5
+ if (args.length === 1 && args[0] === '--help') {
6
+ console.log(usage);
7
+ return;
8
+ }
9
+ const [action, ...rest] = args;
10
+ if (!['list', 'remove', 'resubmit'].includes(action))
11
+ throw new Error(usage);
12
+ const id = action === 'list' ? undefined : rest.shift();
13
+ if (action !== 'list' && (!id || id.startsWith('--')))
14
+ throw new Error(usage);
15
+ const keyIndex = rest.indexOf('--key');
16
+ if (keyIndex >= 0 && (!rest[keyIndex + 1] || rest[keyIndex + 1].startsWith('--')))
17
+ throw new Error(usage);
18
+ const identityOptions = { ...application.identityOptions,
19
+ explicitKeyPath: keyIndex >= 0 ? rest[keyIndex + 1] : application.identityOptions?.explicitKeyPath };
20
+ if (action !== 'resubmit' && rest.some((_, index) => keyIndex < 0 || (index !== keyIndex && index !== keyIndex + 1)))
21
+ throw new Error(usage);
22
+ const owner = (await inspectStoredIdentity('requester', identityOptions)).key;
23
+ if (!owner) {
24
+ if (action === 'list') {
25
+ console.log(JSON.stringify({ requests: [] }));
26
+ return;
27
+ }
28
+ throw new Error('PENDING_NOT_FOUND');
29
+ }
30
+ const store = new RequesterPendingStore(owner, identityOptions);
31
+ if (action === 'list') {
32
+ console.log(JSON.stringify({ requests: store.list() }));
33
+ return;
34
+ }
35
+ if (action === 'remove') {
36
+ store.remove(id);
37
+ console.log(JSON.stringify({ removed: id }));
38
+ return;
39
+ }
40
+ const allowed = new Set(['--key', '--relay', '--audit', '--out', '--auto-approve', '--yes', '--allow-private-relay', '--verbose',
41
+ '--execution-timeout-ms', '--task-timeout-ms', '--wait-timeout-ms', '--connect-timeout-ms',
42
+ '--transport-idle-timeout-ms', '--heartbeat-interval-ms', '--relay-auth-retries', '--relay-auth-recovery-timeout-ms']);
43
+ for (const arg of rest)
44
+ if (arg.startsWith('--') && !allowed.has(arg))
45
+ throw new Error('INVALID_PENDING_OPTION');
46
+ if (keyIndex < 0 && identityOptions.explicitKeyPath)
47
+ rest.push('--key', identityOptions.explicitKeyPath);
48
+ await store.resubmit(id, (request, relayUrl) => networkCommand('delegate', rest, { ...application, pendingRequest: request, pendingRelayUrl: relayUrl, onDelegated: () => store.resolve(id) }));
49
+ }
50
+ //# sourceMappingURL=pending.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending.js","sourceRoot":"","sources":["../src/pending.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SignedAgentCard } from '@acp/core';
1
+ import type { SignedAgentCard } from '../../packages/core/dist/index.js';
2
2
  export interface PublicSettings {
3
3
  public: boolean;
4
4
  taskTypes: string[];
@@ -11,17 +11,18 @@ export interface PublicSettings {
11
11
  alwaysAsk: boolean;
12
12
  }
13
13
  export declare function publicSettingsFlags(s: PublicSettings): string[];
14
- export declare function publicProfileSummary(card: SignedAgentCard, rate?: number, daily?: number, automatic?: boolean): {
14
+ export declare function publicProfileSummary(card: SignedAgentCard, rate?: number, daily?: number, automatic?: boolean, budgets?: Record<string, number | undefined>): {
15
15
  name: string;
16
16
  access: string;
17
17
  jobs: string[];
18
- perJob: Partial<Pick<import("@acp/core").BudgetSpec, "maxInputTokens" | "maxOutputTokens" | "maxToolInvocations" | "maxWallClockSeconds">>;
19
18
  hostLimits: {
20
19
  perPersonPerMinute: number | null;
21
20
  perDay: number | null;
22
21
  dayReset: string;
23
22
  };
24
23
  approval: string;
25
- notice: string;
24
+ inspection: string;
25
+ perJob: Record<string, number | undefined>;
26
+ automaticPolicy: boolean;
26
27
  signedCard: SignedAgentCard;
27
28
  };