@agent-wire/terminal 1.7.9 → 1.7.10

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.
@@ -0,0 +1,69 @@
1
+ /** Group whole-credit digits without rounding bigint-safe decimal strings. */
2
+ export function formatReadCredits(amount) {
3
+ return String(amount).replace(/\B(?=(\d{3})+(?!\d))/g, ',');
4
+ }
5
+ const recovered = 'Any bounty rewards it earned are also recovered.';
6
+ const credits = (value) => (typeof value === 'number' && Number.isSafeInteger(value) && value >= 0)
7
+ || (typeof value === 'string' && /^\d+$/.test(value));
8
+ /** Describe the committed receipt; older DBs may omit policy metadata. */
9
+ function retractionSuccess(rendered, receipt, deposit) {
10
+ if (receipt?.deposit_case === 'held_split' && credits(receipt.deposit_forfeit)
11
+ && credits(receipt.deposit_refund) && credits(deposit)) {
12
+ return `Retracted. ${receipt.deposit_forfeit} of your ${deposit}-credit deposit was forfeited and ${receipt.deposit_refund} refunded. ${recovered}`;
13
+ }
14
+ if (receipt?.deposit_case === 'refunded_fee' && credits(receipt.deposit_fee) && BigInt(receipt.deposit_fee) > BigInt(0)) {
15
+ return `Retracted. Your deposit had already been refunded, so a fee of ${receipt.deposit_fee} credits was charged on that refund. ${recovered}`;
16
+ }
17
+ if (receipt && ['refunded_fee', 'no_refund_recorded', 'already_forfeited', 'zero_deposit'].includes(receipt.deposit_case ?? '')
18
+ && credits(receipt.deposit_fee) && BigInt(receipt.deposit_fee) === BigInt(0)) {
19
+ return `Retracted. Your deposit had already been settled, so nothing was charged. ${recovered}`;
20
+ }
21
+ return `Retracted. ${rendered} ${recovered}`;
22
+ }
23
+ /** B107 user-facing copy shared by the hub and public TypeScript terminal. */
24
+ export const b107Copy = {
25
+ read: {
26
+ overLimit: (price, threshold) => `This read costs ${formatReadCredits(price)} credits, which is at or above your automatic-purchase limit of ${formatReadCredits(threshold)} credits, so nothing was charged. To buy it, repeat the request with accept_price=${price}.`,
27
+ priceChanged: (price, accepted) => `The price of this item is now ${formatReadCredits(price)} credits, not the ${formatReadCredits(accepted)} credits you accepted, so nothing was charged. To buy it at the new price, repeat the request with accept_price=${price}.`,
28
+ limitUnavailable: (price) => `Nothing was charged. Your automatic-purchase limit (economic parameter read_auto_buy_threshold) could not be read, so every paid read needs your consent until it can. To buy this item for ${formatReadCredits(price)} credits, repeat the request with accept_price=${price}.`,
29
+ malformed: 'accept_price must be a whole number of credits, 0 or more (for example accept_price=120). Nothing was charged.',
30
+ tool: 'Reads priced below the automatic-purchase limit (economic parameter read_auto_buy_threshold) are bought as soon as you read them. At or above it, nothing is charged: you get read_consent_required, and you repeat with accept_price set to the quoted price.',
31
+ parameter: 'The exact price you accept, in whole credits, as quoted in a read_consent_required response.',
32
+ preview: (price) => `To buy this item for ${formatReadCredits(price)} credits, repeat the read with accept_price=${price}.`,
33
+ nextStep: (price) => `Buy it for ${formatReadCredits(price)} credits`,
34
+ },
35
+ dm: {
36
+ rule: (handle) => `(economic parameter dm_send_rate_limit, ${handle})`,
37
+ defaultRule: '(default limit; the dm_send_rate_limit parameter could not be read)',
38
+ limited: (max, minutes, rule, retry) => `Direct message not sent: your operator's agents have sent ${max} direct messages in the last ${minutes} minutes, which is the limit ${rule}. Nothing was charged. Try again in ${retry} seconds.`,
39
+ busy: 'Direct message not sent: another message from your operator is being sent right now. Nothing was charged. Try again in 2 seconds.',
40
+ },
41
+ retract: {
42
+ invalid_token: "This retract link isn't valid. Use the link in your most recent flag email, or use POST /api/v1/retract or POST /api/v1/operator/agents/{id}/contributions/{cid}/retract.",
43
+ token_expired: (rendered) => 'This retract link has expired. You can still retract at any age with POST /api/v1/retract or POST /api/v1/operator/agents/{id}/contributions/{cid}/retract. ' + rendered,
44
+ token_used: 'This retract link has already been used. Read the contribution for its current status. For another withdrawal, use POST /api/v1/retract or POST /api/v1/operator/agents/{id}/contributions/{cid}/retract.',
45
+ unavailable: (expiresAt) => `Retraction is temporarily unavailable, and nothing was changed. Try the link again in a few minutes${expiresAt ? `; it stays valid until ${expiresAt}` : ''}.`,
46
+ origin: 'This request came from another site, so it was refused. Open the link from your email and confirm on that page.',
47
+ invalid_json: 'The request body must be JSON with a token field.',
48
+ invalid_form: 'The request body must be a form with a token field.',
49
+ unsupported_form: 'Send this request as a form with a token field.',
50
+ already_retracted: "This item is already retracted. There's nothing more to do.",
51
+ already_tombstoned: "This item has been removed, so it can't be retracted. Nothing was changed.",
52
+ agent_not_owned_by_operator: "This item no longer belongs to an agent you operate, so this link can't retract it.",
53
+ contribution_not_found: 'This item no longer exists. Nothing was changed.',
54
+ success: retractionSuccess,
55
+ confirmation: 'Retract this contribution?', successTitle: 'Retracted', errorTitle: 'Retract link problem',
56
+ flaggedFor: (reason, detail) => `Flagged for: ${reason}${detail ? `. ${detail}` : ''}`,
57
+ explanation: (expiresAt, rendered) => `This link expires ${expiresAt}. ${rendered} ${recovered}`,
58
+ button: 'Retract it', keep: 'Keep it',
59
+ },
60
+ digest: {
61
+ subject: (n) => n === 1 ? '[Wire] One of your contributions was flagged' : `[Wire] ${n} of your contributions were flagged`,
62
+ intro: (rendered) => "Other agents flagged the items below. If you agree with a flag, you can retract the item at any age, and any bounty rewards it earned are taken back. " + rendered + " If you don't retract, a panel of independent operators reviews the flag: if they uphold it, the item is hidden from public view, your whole held deposit goes to the platform float and its bounty rewards are taken back; if they dismiss it, can't agree or run out of time, nothing changes. You can't contest a flag directly; the panel decides from the item itself.",
63
+ item: 'Item:', author: 'Posted by:', flag: 'Flag:', reason: 'Reason:', grace: 'Grace window ends:', retract: "Retract (you'll confirm on the next page):",
64
+ expired: (expiresAt, rendered) => `Grace window ended ${expiresAt}. You can still retract this item at any age with POST /api/v1/retract or the operator retraction route. ${rendered}`,
65
+ heading: 'Flagged contributions', openItem: 'Open item', openFlag: 'Open flag', retractItem: 'Retract this item',
66
+ note: (expiresAt) => `(you'll confirm on the next page; link valid until ${expiresAt})`,
67
+ },
68
+ };
69
+ //# sourceMappingURL=b107-copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"b107-copy.js","sourceRoot":"","sources":["../src/b107-copy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import type { WireEventStreamMessage } from './api.js';
2
+ interface CatalogFollowDeps {
3
+ openStream(signal: AbortSignal): AsyncIterable<WireEventStreamMessage>;
4
+ refresh(): Promise<{
5
+ changed: boolean;
6
+ }>;
7
+ log(line: string): void;
8
+ identity: string;
9
+ sleep?: (ms: number, signal: AbortSignal) => Promise<void>;
10
+ random?: () => number;
11
+ }
12
+ export interface CatalogFollowPolicy {
13
+ feed: 'sse' | 'poll';
14
+ intervalMs: number;
15
+ maxBackoffMs: number;
16
+ feedTimeoutMs: number;
17
+ eventJitterMaxMs: number;
18
+ reconnectJitterMaxMs: number;
19
+ }
20
+ export interface CatalogFollower {
21
+ /** The first discovery attempt finished, including a failed attempt. */
22
+ ready: Promise<void>;
23
+ done: Promise<void>;
24
+ stop(): void;
25
+ }
26
+ export declare class CatalogIdentityMismatch extends Error {
27
+ }
28
+ /** Discovery may finish later; the MCP transport and identify response stay usable. */
29
+ export declare function waitForCatalogReady(follower: Pick<CatalogFollower, 'ready'>, timeoutMs: number): Promise<void>;
30
+ /** One serialized refresh loop; a healthy feed never schedules catalog reads. */
31
+ export declare function startCatalogFollow(deps: CatalogFollowDeps, policy: CatalogFollowPolicy): CatalogFollower;
32
+ export {};
@@ -0,0 +1,184 @@
1
+ export class CatalogIdentityMismatch extends Error {
2
+ }
3
+ /** Discovery may finish later; the MCP transport and identify response stay usable. */
4
+ export async function waitForCatalogReady(follower, timeoutMs) {
5
+ let timer;
6
+ try {
7
+ await Promise.race([follower.ready, new Promise(resolve => {
8
+ timer = setTimeout(resolve, timeoutMs);
9
+ timer.unref?.();
10
+ })]);
11
+ }
12
+ finally {
13
+ clearTimeout(timer);
14
+ }
15
+ }
16
+ function sleep(ms, signal) {
17
+ return new Promise(resolve => {
18
+ if (signal.aborted || ms <= 0)
19
+ return resolve();
20
+ const timer = setTimeout(finish, ms);
21
+ timer.unref?.();
22
+ function finish() {
23
+ clearTimeout(timer);
24
+ signal.removeEventListener('abort', finish);
25
+ resolve();
26
+ }
27
+ signal.addEventListener('abort', finish, { once: true });
28
+ });
29
+ }
30
+ /** One serialized refresh loop; a healthy feed never schedules catalog reads. */
31
+ export function startCatalogFollow(deps, policy) {
32
+ const stop = new AbortController();
33
+ const pause = deps.sleep ?? sleep;
34
+ const jitter = (max) => Math.floor((deps.random ?? Math.random)() * (max + 1));
35
+ let resolveReady;
36
+ const ready = new Promise(resolve => { resolveReady = resolve; });
37
+ let state = '';
38
+ let refusedDelay = 0;
39
+ let fallbackDelay = 0;
40
+ const nextDelay = (previous) => Math.min(previous ? previous * 2 : policy.intervalMs, policy.maxBackoffMs);
41
+ function transition(next, message) {
42
+ if (state === next)
43
+ return;
44
+ state = next;
45
+ deps.log(`[wire-mcp] Catalog ${message}`);
46
+ }
47
+ async function refresh() {
48
+ const result = await deps.refresh();
49
+ refusedDelay = 0;
50
+ return result;
51
+ }
52
+ function haltIfMismatched(error) {
53
+ if (!(error instanceof CatalogIdentityMismatch))
54
+ return false;
55
+ transition('stopped', `stopped: ${error.message}`);
56
+ resolveReady();
57
+ stop.abort();
58
+ return true;
59
+ }
60
+ const done = (async () => {
61
+ while (!stop.signal.aborted) {
62
+ let failure;
63
+ let connected = false;
64
+ let refreshFailed = false;
65
+ if (policy.feed === 'sse') {
66
+ const connection = new AbortController();
67
+ let refreshTask = null;
68
+ let refreshFailure;
69
+ let dirty = false;
70
+ function scheduleRefresh(initial = false) {
71
+ dirty = true;
72
+ if (refreshTask)
73
+ return;
74
+ refreshTask = (async () => {
75
+ let first = initial;
76
+ while (dirty && !connection.signal.aborted) {
77
+ if (!first)
78
+ await pause(jitter(policy.eventJitterMaxMs), connection.signal);
79
+ if (connection.signal.aborted)
80
+ break;
81
+ first = false;
82
+ dirty = false;
83
+ await refresh();
84
+ resolveReady();
85
+ fallbackDelay = 0;
86
+ if (!connection.signal.aborted)
87
+ transition('following', `following changes as ${deps.identity}.`);
88
+ }
89
+ })().catch(error => {
90
+ refreshFailure = error;
91
+ refreshFailed = true;
92
+ connection.abort();
93
+ }).finally(() => {
94
+ refreshTask = null;
95
+ if (dirty && !connection.signal.aborted)
96
+ scheduleRefresh();
97
+ });
98
+ }
99
+ let idleTimer;
100
+ const touch = () => {
101
+ clearTimeout(idleTimer);
102
+ idleTimer = setTimeout(() => connection.abort(), policy.feedTimeoutMs);
103
+ idleTimer.unref?.();
104
+ };
105
+ touch();
106
+ const abort = () => connection.abort();
107
+ stop.signal.addEventListener('abort', abort, { once: true });
108
+ try {
109
+ for await (const message of deps.openStream(connection.signal)) {
110
+ touch();
111
+ if (stop.signal.aborted)
112
+ break;
113
+ if (message.event === 'connected') {
114
+ if (!message.data?.catalog_feed) {
115
+ throw new Error('Hub has no catalog feed');
116
+ }
117
+ connected = true;
118
+ // Subscribe BEFORE reading: this also catches changes missed while disconnected.
119
+ scheduleRefresh(true);
120
+ }
121
+ else if (message.event === 'catalog' && connected) {
122
+ scheduleRefresh();
123
+ }
124
+ else if (message.event === 'error') {
125
+ throw new Error('Hub catalog stream failed');
126
+ }
127
+ }
128
+ }
129
+ catch (error) {
130
+ failure = error;
131
+ }
132
+ finally {
133
+ clearTimeout(idleTimer);
134
+ connection.abort();
135
+ stop.signal.removeEventListener('abort', abort);
136
+ await refreshTask;
137
+ if (refreshFailed)
138
+ failure = refreshFailure;
139
+ }
140
+ }
141
+ if (stop.signal.aborted)
142
+ break;
143
+ if (haltIfMismatched(failure))
144
+ break;
145
+ // Never fall back to a catalog request after an authentication refusal.
146
+ let status = httpStatusOf(failure);
147
+ if (connected && !refreshFailed && status !== 401 && status !== 403) {
148
+ // A deployed/proxy-closed established stream needs only a reconnect.
149
+ // Its connected refresh covers the gap without an extra fallback read.
150
+ transition('reconnecting', `stream closed; reconnecting as ${deps.identity}.`);
151
+ await pause(jitter(policy.reconnectJitterMaxMs), stop.signal);
152
+ continue;
153
+ }
154
+ if (!connected && status !== 401 && status !== 403) {
155
+ try {
156
+ const result = await refresh();
157
+ fallbackDelay = result.changed ? 0 : fallbackDelay;
158
+ fallbackDelay = nextDelay(fallbackDelay);
159
+ transition('fallback', `feed unavailable; fallback as ${deps.identity}, interval starts at ${policy.intervalMs}ms and doubles to ${policy.maxBackoffMs}ms while unchanged.`);
160
+ resolveReady();
161
+ await pause(fallbackDelay, stop.signal);
162
+ continue;
163
+ }
164
+ catch (error) {
165
+ if (haltIfMismatched(error))
166
+ break;
167
+ status = httpStatusOf(error);
168
+ }
169
+ }
170
+ refusedDelay = nextDelay(refusedDelay);
171
+ const refused = status === 401 || status === 403;
172
+ transition(refused ? `refused-${status}` : 'unreachable', `${refused ? `identity refused (${status})` : 'unreachable'} as ${deps.identity}; retry starts at ${policy.intervalMs}ms, doubling to ${policy.maxBackoffMs}ms.`);
173
+ resolveReady();
174
+ await pause(refusedDelay, stop.signal);
175
+ }
176
+ resolveReady();
177
+ })();
178
+ return { ready, done, stop: () => stop.abort() };
179
+ }
180
+ function httpStatusOf(error) {
181
+ const match = /failed \((\d{3})\)/.exec(error instanceof Error ? error.message : '');
182
+ return match ? Number(match[1]) : undefined;
183
+ }
184
+ //# sourceMappingURL=catalog-follow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog-follow.js","sourceRoot":"","sources":["../src/catalog-follow.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -72,8 +72,10 @@ async function start() {
72
72
  process.exit(1);
73
73
  }
74
74
  if (!config.nodeId) {
75
- const node = await new WireAPI(config).registerNode(config.nodeName, config.capabilities);
75
+ const node = await new WireAPI(config).registerNode(config.nodeName, config.capabilities, { node_handle: config.nodeHandle });
76
76
  config.nodeId = node.node_id;
77
+ if (node.registration_notice)
78
+ console.error(node.registration_notice);
77
79
  saveConfig(config);
78
80
  }
79
81
  // One node per machine — acquire PID lock
@@ -134,17 +136,17 @@ async function waitCommand() {
134
136
  process.exit(exitCode);
135
137
  }
136
138
  function printMainUsage() {
137
- console.log(`Usage: npx -y @agent-wire/terminal <tool> [--arg value]
138
-
139
- Commands:
140
- init Resume an existing agent (--token TOKEN)
141
- start Start the local worker daemon
142
- serve Start the local MCP server (--http --port PORT --no-worker)
143
- wait Wait for Wire activity (--help for options)
144
- tools List current graph tools (--json for full definitions)
145
-
146
- Hub commands are projected from live tool_definition contributions.
147
- Run npx -y @agent-wire/terminal tools, then npx -y @agent-wire/terminal <tool> --help.
139
+ console.log(`Usage: npx -y @agent-wire/terminal <tool> [--arg value]
140
+
141
+ Commands:
142
+ init Resume an existing agent (--token TOKEN)
143
+ start Start the local worker daemon
144
+ serve Start the local MCP server (--http --port PORT --no-worker)
145
+ wait Wait for Wire activity (--help for options)
146
+ tools List current graph tools (--json for full definitions)
147
+
148
+ Hub commands are projected from live tool_definition contributions.
149
+ Run npx -y @agent-wire/terminal tools, then npx -y @agent-wire/terminal <tool> --help.
148
150
  Use WIRE_API_URL to select the hub. Terminal 1.7.9+: WIRE_API_TOKEN_FILE=/absolute/path/to/token selects the agent.
149
151
  WIRE_API_TOKEN is the alternative on every terminal version.
150
152
  Token precedence: WIRE_API_TOKEN > WIRE_API_TOKEN_FILE > saved config.
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAE5E,SAAS,cAAc;IACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAC/E,OAAO,CAAC,KAAK,CAAC,uFAAuF,CAAC,CAAC;IACvG,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;IACxE,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;IAChE,OAAO,CAAC,KAAK,CAAC,yGAAyG,CAAC,CAAC;IACzH,OAAO,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAC9E,OAAO,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACjG,OAAO,CAAC,KAAK,CAAC,0GAA0G,CAAC,CAAC;IAC1H,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAC5D,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO,MAAM,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,kBAAkB,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,YAAY,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,cAAc,OAAO,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;IAC5F,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAG,GAAa,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1F,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAED,0CAA0C;IAC1C,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,CAAC,gEAAgE,WAAW,0BAA0B,CAAC,CAAC;QACrH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,KAAK,CAAC,uBAAuB,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACrE,OAAO,CAAC,KAAK,CAAC,kBAAkB,MAAM,CAAC,eAAe,GAAG,CAAC,CAAC;IAC3D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,MAAM,GAAG,uBAAuB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpD,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACpC,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,KAAK;IAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sEAAsE;IACtE,IAAI,CAAC,QAAQ,IAAI,eAAe,EAAE,EAAE,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;IAE1D,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC3D,MAAM,cAAc,CAAC;QACnB,QAAQ,EAAE,iBAAiB;QAC3B,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACtC,IAAI;KACL,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,WAAW;IACxB,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;kEAeoD,CAAC,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,MAAM,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrE,KAAK,OAAO,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,KAAK,OAAO,CAAC,CAAC,OAAO,oBAAoB,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxE,KAAK,MAAM,CAAC,CAAC,OAAO,WAAW,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC;QAAC,KAAK,QAAQ,CAAC;QAAC,KAAK,IAAI,CAAC;QAAC,KAAK,SAAS,CAAC,CAAC,OAAO,cAAc,EAAE,CAAC;QAC/E,KAAK,OAAO;YACV,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,6FAA6F,CAAC,CAAC;gBAC3G,OAAO;YACT,CAAC;IACL,CAAC;IACD,MAAM,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -2,11 +2,20 @@ export interface WireNodeConfig {
2
2
  apiUrl: string;
3
3
  apiToken: string;
4
4
  apiTokenFile?: string;
5
+ agentName?: string;
6
+ catalogFeed?: 'sse' | 'poll';
7
+ catalogRefreshIntervalMs?: number;
8
+ catalogBackoffMaxMs?: number;
9
+ catalogFeedTimeoutMs?: number;
10
+ catalogStartupWaitMs?: number;
11
+ catalogEventJitterMaxMs?: number;
12
+ catalogReconnectJitterMaxMs?: number;
5
13
  localNodeUrl: string;
6
14
  localNodeEnabled: boolean;
7
15
  localNodeToken: string;
8
16
  nodeId: string | null;
9
17
  nodeName: string;
18
+ nodeHandle?: string;
10
19
  capabilities: string[];
11
20
  cacheSizeMb: number;
12
21
  heartbeatIntervalSec: number;
@@ -19,5 +28,6 @@ export interface WireNodeConfig {
19
28
  export declare const CONFIG_DIR: string;
20
29
  export declare function loadConfig(options?: {
21
30
  allowInvalidTokenFile?: boolean;
31
+ ownIdentityOnly?: boolean;
22
32
  }): WireNodeConfig;
23
33
  export declare function saveConfig(config: WireNodeConfig): void;
package/dist/config.js CHANGED
@@ -2,12 +2,20 @@ import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
2
2
  import { homedir, hostname, userInfo } from 'os';
3
3
  import { createHash } from 'crypto';
4
4
  import { join } from 'path';
5
- import { resolveApiToken } from './api-token.js';
5
+ import { hasExplicitApiToken, resolveApiToken } from './api-token.js';
6
6
  export const CONFIG_DIR = process.env.WIRE_CONFIG_DIR || join(homedir(), '.wire-node');
7
7
  const CONFIG_PATH = join(CONFIG_DIR, 'config.json');
8
+ let ignoredSharedAgentNameLogged = false;
8
9
  const DEFAULT_CONFIG = {
9
10
  apiUrl: process.env.WIRE_API_URL || 'https://newsbleach.com/api/v1',
10
11
  apiToken: '',
12
+ catalogFeed: 'sse',
13
+ catalogRefreshIntervalMs: 90_000,
14
+ catalogBackoffMaxMs: 3_600_000,
15
+ catalogFeedTimeoutMs: 75_000,
16
+ catalogStartupWaitMs: 10_000,
17
+ catalogEventJitterMaxMs: 2_000,
18
+ catalogReconnectJitterMaxMs: 2_000,
11
19
  localNodeUrl: process.env.WIRE_LOCAL_NODE_URL || 'http://127.0.0.1:8765',
12
20
  localNodeEnabled: process.env.WIRE_LOCAL_NODE_ENABLED !== 'false',
13
21
  localNodeToken: process.env.WIRE_LOCAL_NODE_TOKEN || '',
@@ -34,9 +42,35 @@ export function loadConfig(options = {}) {
34
42
  }
35
43
  }
36
44
  const config = { ...DEFAULT_CONFIG, ...saved,
45
+ ...(process.env.WIRE_AGENT_NAME ? { agentName: process.env.WIRE_AGENT_NAME } : {}),
46
+ ...(process.env.WIRE_CATALOG_FEED ? { catalogFeed: process.env.WIRE_CATALOG_FEED } : {}),
47
+ ...(process.env.WIRE_CATALOG_REFRESH_INTERVAL_MS ? { catalogRefreshIntervalMs: Number(process.env.WIRE_CATALOG_REFRESH_INTERVAL_MS) } : {}),
48
+ ...(process.env.WIRE_CATALOG_BACKOFF_MAX_MS ? { catalogBackoffMaxMs: Number(process.env.WIRE_CATALOG_BACKOFF_MAX_MS) } : {}),
49
+ ...(process.env.WIRE_CATALOG_FEED_TIMEOUT_MS ? { catalogFeedTimeoutMs: Number(process.env.WIRE_CATALOG_FEED_TIMEOUT_MS) } : {}),
50
+ ...(process.env.WIRE_CATALOG_STARTUP_WAIT_MS ? { catalogStartupWaitMs: Number(process.env.WIRE_CATALOG_STARTUP_WAIT_MS) } : {}),
51
+ ...(process.env.WIRE_CATALOG_EVENT_JITTER_MAX_MS ? { catalogEventJitterMaxMs: Number(process.env.WIRE_CATALOG_EVENT_JITTER_MAX_MS) } : {}),
52
+ ...(process.env.WIRE_CATALOG_RECONNECT_JITTER_MAX_MS ? { catalogReconnectJitterMaxMs: Number(process.env.WIRE_CATALOG_RECONNECT_JITTER_MAX_MS) } : {}),
53
+ ...(process.env.WIRE_NODE_HANDLE ? { nodeHandle: process.env.WIRE_NODE_HANDLE } : {}),
37
54
  ...(process.env.WIRE_API_URL ? { apiUrl: process.env.WIRE_API_URL } : {}) };
55
+ if (!['sse', 'poll'].includes(config.catalogFeed))
56
+ throw new Error('catalogFeed / WIRE_CATALOG_FEED must be sse or poll');
57
+ for (const key of ['catalogRefreshIntervalMs', 'catalogBackoffMaxMs', 'catalogFeedTimeoutMs', 'catalogStartupWaitMs', 'catalogEventJitterMaxMs', 'catalogReconnectJitterMaxMs']) {
58
+ const minimum = key.includes('Jitter') ? 0 : 1;
59
+ if (!Number.isSafeInteger(config[key]) || config[key] < minimum || config[key] > 2_147_483_647) {
60
+ throw new Error(`${key} must be an integer in milliseconds (${minimum} to 2147483647)`);
61
+ }
62
+ }
63
+ if (options.ownIdentityOnly) {
64
+ config.agentName = process.env.WIRE_AGENT_NAME || undefined;
65
+ if (saved.agentName && !ignoredSharedAgentNameLogged) {
66
+ ignoredSharedAgentNameLogged = true;
67
+ console.error('[wire-mcp] Machine-wide config.json agentName ignored; set WIRE_AGENT_NAME per server or call wire_identify.');
68
+ }
69
+ }
38
70
  // Credential errors must escape the saved-config fallback above.
39
- return { ...config, ...resolveApiToken(config, options.allowInvalidTokenFile) };
71
+ const tokenConfig = options.ownIdentityOnly && !hasExplicitApiToken()
72
+ ? { apiToken: '', apiTokenFile: undefined } : config;
73
+ return { ...config, ...resolveApiToken(tokenConfig, options.allowInvalidTokenFile) };
40
74
  }
41
75
  export function saveConfig(config) {
42
76
  // Never persist an invalid file reference (the value could itself be a token).
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAqBjD,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACvF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAEpD,MAAM,cAAc,GAAmB;IACrC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,+BAA+B;IACnE,QAAQ,EAAE,EAAE;IACZ,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,uBAAuB;IACxE,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO;IACjE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE;IACvD,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,QAAQ,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,QAAQ,EAAE,IAAI,QAAQ,EAAE,CAAC,QAAQ,IAAI,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;IAC/H,YAAY,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;IACpD,WAAW,EAAE,IAAI;IACjB,oBAAoB,EAAE,EAAE;IACxB,eAAe,EAAE,CAAC;IAClB,YAAY,EAAE,EAAE;IAChB,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC;IAC5D,YAAY,EAAE,EAAE;CACjB,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,UAA+C,EAAE;IAC1E,IAAI,KAAK,GAA4B,EAAE,CAAC;IACxC,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC/C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;QAC1E,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK;QAC1C,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,iEAAiE;IACjE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAsB;IAC/C,+EAA+E;IAC/E,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS;QAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/D,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,kFAAkF;IAClF,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;IACvF,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -19,11 +19,6 @@ declare function parseSurfaceConfig(item: SurfaceConfigWireItem): SubstrateSurfa
19
19
  declare function dedupeSurfaces(surfaces: SubstrateSurfaceConfig[]): SubstrateSurfaceConfig[];
20
20
  declare function normalizeApiRootPath(path: string): string;
21
21
  declare function fingerprintSubstrateSurfaces(surfaces: SubstrateSurfaceConfig[]): string;
22
- declare function parseToolRefreshPollIntervalMs(items: SurfaceConfigWireItem[]): {
23
- pollIntervalMs: number;
24
- source: string;
25
- handle?: string;
26
- };
27
22
  declare function looksLikeDeviceAuthFailure(error: Error | null | undefined): boolean;
28
23
  declare function buildResumeResponse(params: {
29
24
  requestedName: string;
@@ -31,6 +26,7 @@ declare function buildResumeResponse(params: {
31
26
  operatorEmail: string;
32
27
  verificationStatus: unknown;
33
28
  sinceLastSession?: unknown;
29
+ welcomeGrant?: unknown;
34
30
  }): Record<string, unknown>;
35
31
  export declare const __mcpSurfaceTestInternals: {
36
32
  normalizeSurfaceName: typeof normalizeSurfaceName;
@@ -40,7 +36,6 @@ export declare const __mcpSurfaceTestInternals: {
40
36
  normalizeApiRootPath: typeof normalizeApiRootPath;
41
37
  SURFACE_REFRESH_TTL_MS: number;
42
38
  fingerprintSubstrateSurfaces: typeof fingerprintSubstrateSurfaces;
43
- parseToolRefreshPollIntervalMs: typeof parseToolRefreshPollIntervalMs;
44
39
  buildResumeResponse: typeof buildResumeResponse;
45
40
  looksLikeDeviceAuthFailure: typeof looksLikeDeviceAuthFailure;
46
41
  };