@thelakeprotocol/visitor 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/attack.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { type Tamper } from './knock.js';
2
2
  export declare const ATTACKS: (Tamper | 'injection')[];
3
- export declare function houseUrls(node: string): Promise<string[]>;
3
+ /** Houses from the first node that answers (one URL, or several comma-separated). */
4
+ export declare function houseUrls(nodes: string): Promise<string[]>;
4
5
  /**
5
6
  * One attacker (one key) tries every trick in turn against the houses it can find.
6
7
  * Every attempt must be blocked; after a few, the Lake quarantines the key and houses drop it on sight.
package/dist/attack.js CHANGED
@@ -1,9 +1,18 @@
1
1
  import { generateIdentity } from '@thelakeprotocol/core';
2
2
  import { knock, makeVisitor, PRESETS } from './knock.js';
3
3
  export const ATTACKS = ['forge-card', 'unsigned', 'replay', 'impersonate', 'injection'];
4
- export async function houseUrls(node) {
5
- const found = (await (await fetch(`${node}/cards?role=house`)).json());
6
- return found.map((f) => f.card.supportedInterfaces[0].url);
4
+ /** Houses from the first node that answers (one URL, or several comma-separated). */
5
+ export async function houseUrls(nodes) {
6
+ for (const node of nodes.split(',').map((u) => u.trim().replace(/\/$/, '')).filter(Boolean)) {
7
+ try {
8
+ const found = (await (await fetch(`${node}/cards?role=house`, { signal: AbortSignal.timeout(5000) })).json());
9
+ return found.map((f) => f.card.supportedInterfaces[0].url);
10
+ }
11
+ catch {
12
+ // next node
13
+ }
14
+ }
15
+ return [];
7
16
  }
8
17
  /**
9
18
  * One attacker (one key) tries every trick in turn against the houses it can find.
@@ -1 +1 @@
1
- {"version":3,"file":"attack.js","sourceRoot":"","sources":["../src/attack.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attack.js","sourceRoot":"","sources":["../src/attack.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -2,10 +2,10 @@
2
2
  import { existsSync } from 'node:fs';
3
3
  import { homedir, hostname } from 'node:os';
4
4
  import { parseArgs } from 'node:util';
5
- import { lakeAgentApp, LakeLink, loadOrCreateIdentity, signMessage } from '@thelakeprotocol/core';
6
- import { dispatch, makeHuman, readmissionStudy } from './dispatch.js';
5
+ import { cardUrlFor, lakeAgentApp, LakeLinks, loadOrCreateIdentity, signMessage, verifyLakeCard } from '@thelakeprotocol/core';
6
+ import { dispatch, makeHuman, readmissionStudy, SANDBOX_STUDIES } from './dispatch.js';
7
7
  import { attack, houseUrls, swarm } from './attack.js';
8
- import { knock, makeVisitor, PRESETS } from './knock.js';
8
+ import { ask, knock, makeVisitor, PRESETS } from './knock.js';
9
9
  const HELP = `lake — talk to the Lake
10
10
 
11
11
  lake knock <house-url> [--offer research|gp|marketing|injection] [--as <domain>]
@@ -15,9 +15,17 @@ const HELP = `lake — talk to the Lake
15
15
  lake dispatch [--goal "Do over-60s on drug X get readmitted less?"] [--price 2] [--budget 5000] [--as uni.example]
16
16
  [--extra-fields postcode] [--epsilon 2] [--node http://lake-node:7000]
17
17
  [--ethics http://ethics:4500] [--auditor http://auditor:4400] [--payments http://payments:4600]
18
- [--wait 30] [--unpaid] [--port 4800] [--json]
18
+ [--wait 30] [--unpaid] [--concurrency 32] [--port 4800] [--json]
19
19
 
20
+ lake demo [--pace 2000] the on-stage script: dispatch (bloc, owner's tap), then an attacker
21
+ lake reset demo reset: every node's counters, history and quarantines (needs LAKE_RESET_TOKEN)
22
+ lake card <agent-url> fetch and verify any agent's card from its own .well-known path (no node needed)
23
+ lake ask <agent-url> <kind|json> [--as <domain>] one signed message to any agent; prints its verified reply
24
+ e.g. lake ask https://sandbox.lake.doneinfifty.com/s/guide/a2a hello
25
+ lake ask <guide>/a2a '{"kind":"tour","step":2}'
20
26
  lake attack [--count 10] [--node http://lake-node:7000] [<house-url> …]
27
+ lake sponsor [--every 600] [--as open-science.example] sandbox life: a paid, certified study every few minutes,
28
+ rotating questions, prices and asks, so new houses get knocked, bargain and get paid
21
29
  lake swarm [--traders 8] [--attackers 1] [--interval 2000] [--node http://lake-node:7000]`;
22
30
  const [cmd, ...rest] = process.argv.slice(2);
23
31
  const { positionals, values: a } = parseArgs({
@@ -40,6 +48,8 @@ const { positionals, values: a } = parseArgs({
40
48
  auditor: { type: 'string', default: process.env.LAKE_AUDITOR_URL ?? 'http://auditor:4400' },
41
49
  port: { type: 'string', default: '4800' },
42
50
  wait: { type: 'string', default: '0' },
51
+ concurrency: { type: 'string', default: '32' },
52
+ pace: { type: 'string', default: '0' },
43
53
  budget: { type: 'string', default: '5000' },
44
54
  payments: { type: 'string', default: process.env.LAKE_PAYMENTS_URL ?? 'http://payments:4600' },
45
55
  unpaid: { type: 'boolean', default: false },
@@ -48,12 +58,61 @@ const { positionals, values: a } = parseArgs({
48
58
  traders: { type: 'string', default: '8' },
49
59
  attackers: { type: 'string', default: '1' },
50
60
  interval: { type: 'string', default: '2000' },
61
+ every: { type: 'string', default: '600' },
51
62
  },
52
63
  });
53
64
  if (cmd === 'knock')
54
65
  await knockCmd();
55
66
  else if (cmd === 'dispatch')
56
67
  await dispatchCmd();
68
+ else if (cmd === 'demo') {
69
+ // The on-stage script (spec, "On-stage script"): pace it so people can follow on the map.
70
+ const node = a.node.split(',')[0].trim();
71
+ const s = await (await fetch(`${node}/state`)).json();
72
+ console.log(`THE LAKE ${s.counters.houses} houses, ${s.counters.agents} agents, ${s.guilds?.length ?? 0} guilds. Records moved: ${s.counters.recordsMoved}.\n`);
73
+ a.pace = a.pace === '0' ? '2000' : a.pace;
74
+ a['extra-fields'] ??= 'postcode';
75
+ a.wait = a.wait === '0' ? '20' : a.wait;
76
+ await dispatchCmd();
77
+ console.log('\nATTACK releasing an attacker. Watch the houses block it and the Lake quarantine it.');
78
+ const houses = await houseUrls(node);
79
+ const r = await attack({ houses, count: 6, log: (l) => console.log(` ${l}`) });
80
+ console.log(`DONE ${Object.entries(r.tally).map(([k, n]) => `${n} ${k}`).join(', ')}. No human involved.`);
81
+ }
82
+ else if (cmd === 'reset') {
83
+ const t0 = Date.now();
84
+ for (const node of a.node.split(',').map((u) => u.trim())) {
85
+ const res = await fetch(`${node}/reset`, { method: 'POST', headers: { 'x-lake-reset': process.env.LAKE_RESET_TOKEN ?? '' } }).catch((e) => ({ ok: false, status: e.message }));
86
+ console.log(`${node}: ${res.ok ? 'reset' : `not reset (${res.status})`}`);
87
+ }
88
+ console.log(`done in ${Date.now() - t0} ms`);
89
+ }
90
+ else if (cmd === 'card') {
91
+ // Registries are search indexes, not gatekeepers: every agent can be found at its own address.
92
+ const at = positionals[0];
93
+ if (!at)
94
+ throw new Error('lake card <agent url, e.g. https://house.example/a2a or https://house.example>');
95
+ const url = at.endsWith('/a2a') ? cardUrlFor(at) : `${at.replace(/\/$/, '')}/.well-known/agent-card.json`;
96
+ const card = await (await fetch(url, { headers: { 'A2A-Version': '1.0' } })).json();
97
+ const p = await verifyLakeCard(card);
98
+ console.log(a.json ? JSON.stringify(card, null, 2) : `✓ ${card.name} — signed card verified
99
+ role ${p.role} · owner ${p.ownerDomain} · WebID ${p.webId}
100
+ key ${p.publicJwk.kid} · tags ${p.tags.join(', ') || 'none'}
101
+ A2A ${card.supportedInterfaces[0]?.url}`);
102
+ }
103
+ else if (cmd === 'ask') {
104
+ const [to, what] = positionals;
105
+ if (!to || !what)
106
+ throw new Error('lake ask <agent A2A url> <kind, or a JSON message>');
107
+ const payload = what.trim().startsWith('{') ? JSON.parse(what) : { kind: what };
108
+ const domain = a.as ?? 'cli.example';
109
+ const me = await makeVisitor(await loadOrCreateIdentity(`${homedir()}/.lake/visitor-${domain}.json`), domain);
110
+ const { reply, from } = await ask(to, me, payload);
111
+ if (!a.json)
112
+ console.log(`✓ signed reply from ${from.ownerDomain} (key ${from.publicJwk.kid}), verified`);
113
+ const { nonce: _n, iat: _i, exp: _e, iss: _s, ...body } = reply;
114
+ console.log(JSON.stringify(body, null, 2));
115
+ }
57
116
  else if (cmd === 'attack') {
58
117
  const houses = positionals.length ? positionals : await houseUrls(a.node);
59
118
  const r = await attack({ houses, count: Number(a.count), log: (l) => console.log(l) });
@@ -63,6 +122,19 @@ else if (cmd === 'swarm') {
63
122
  console.log(`swarm: ${a.traders} traders, ${a.attackers} attacker(s), one move every ~${a.interval} ms. Ctrl-C to stop.`);
64
123
  await swarm({ node: a.node, traders: Number(a.traders), attackers: Number(a.attackers), intervalMs: Number(a.interval), log: (l) => console.log(l) });
65
124
  }
125
+ else if (cmd === 'sponsor') {
126
+ // Each run asks something else, at another price; every other one also asks for the postcode, so blocs form and counter.
127
+ a.as ??= 'open-science.example';
128
+ a.wait = a.wait === '0' ? '20' : a.wait;
129
+ for (let i = 0;; i++) {
130
+ const study = SANDBOX_STUDIES[i % SANDBOX_STUDIES.length];
131
+ a.price = String(2 + (i % 4));
132
+ a['extra-fields'] = i % 2 ? 'postcode' : undefined;
133
+ console.log(`\nSPONSOR run ${i + 1}: "${study.question}"`);
134
+ await dispatchCmd(study).catch((e) => console.log(`FAILED ${e.message}`));
135
+ await new Promise((r) => setTimeout(r, Number(a.every) * 1000));
136
+ }
137
+ }
66
138
  else {
67
139
  console.log(HELP);
68
140
  process.exit(cmd && cmd !== 'help' ? 2 : 0);
@@ -97,7 +169,7 @@ async function knockCmd() {
97
169
  for (const n of reply.notes)
98
170
  console.log(` note: ${n}`);
99
171
  }
100
- async function dispatchCmd() {
172
+ async function dispatchCmd(chosen) {
101
173
  const domain = a.as ?? 'uni.example';
102
174
  const port = Number(a.port);
103
175
  // Serve our card while the mission runs, so a node can verify it and show us on the map.
@@ -106,19 +178,22 @@ async function dispatchCmd() {
106
178
  const visitor = await makeVisitor(id, domain, `Research agent (${domain})`, url);
107
179
  const reply = async () => ({ lake: '0.1', card: visitor.card, envelope: (await signMessage({ kind: 'rejected', code: 'busy', why: 'a research agent on a mission' }, id, { iss: visitor.webId })) });
108
180
  const server = lakeAgentApp(visitor.card, reply).listen(port);
109
- const link = new LakeLink({ nodeUrl: a.node.replace(/\/$/, ''), card: visitor.card, identity: id, webId: visitor.webId, log: (m) => { if (!a.json)
181
+ const link = new LakeLinks({ nodeUrls: a.node.split(',').map((u) => u.trim()), card: visitor.card, identity: id, webId: visitor.webId, log: (m) => { if (!a.json)
110
182
  console.log(`NODE ${m}`); } });
111
183
  await link.register(6);
112
184
  const say = (step, detail) => { if (!a.json)
113
185
  console.log(`${step.toUpperCase().padEnd(9)} ${detail}`); };
114
- say('dispatch', `"${a.goal}" (as ${domain}, $${a.price ?? 2} per participant)`);
186
+ const study = chosen ?? readmissionStudy(a.goal, Number(a.epsilon));
187
+ say('dispatch', `"${study.question}" (as ${domain}, $${a.price ?? 2} per participant)`);
115
188
  try {
116
189
  const r = await dispatch({
117
- visitor, node: a.node, ethics: a.ethics, auditor: a.auditor, link, log: say,
118
- study: readmissionStudy(a.goal, Number(a.epsilon)),
190
+ visitor, node: a.node, ethics: a.ethics, auditor: a.auditor, link, log: say, houseCache: `${homedir()}/.lake/houses.json`,
191
+ study,
119
192
  priceUsd: Number(a.price ?? 2),
120
193
  extraFields: a['extra-fields']?.split(',').filter(Boolean),
121
194
  waitSeconds: Number(a.wait),
195
+ concurrency: Number(a.concurrency),
196
+ paceMs: Number(a.pace),
122
197
  money: a.unpaid ? undefined : {
123
198
  human: await makeHuman(await loadOrCreateIdentity(`${homedir()}/.lake/human-${domain}.json`), domain),
124
199
  budgetUsd: Number(a.budget),
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import { type AgentCard, type Identity, type LakeLink, type Study } from '@thelakeprotocol/core';
1
+ import { type AgentCard, type Identity, type LakeEvent, type Study } from '@thelakeprotocol/core';
2
2
  import { type Visitor } from './knock.js';
3
3
  export declare function readmissionStudy(question?: string, epsilon?: number): Study;
4
+ /** Questions the sandbox sponsor rotates through: a group, an exposure and an outcome, all certifiable. */
5
+ export declare const SANDBOX_STUDIES: Study[];
4
6
  /** The human at the research organisation who signs the spending mandate. Not the agent: a separate key. */
5
7
  export interface Human {
6
8
  id: Identity;
@@ -10,7 +12,10 @@ export interface Human {
10
12
  export declare function makeHuman(id: Identity, domain: string): Promise<Human>;
11
13
  export interface DispatchOptions {
12
14
  visitor: Visitor;
13
- node: string;
15
+ /** One or more Lake nodes (comma-separated or an array). Discovery tries each in turn. */
16
+ node: string | string[];
17
+ /** Remember discovered houses here, so a study can still find them with every node offline. */
18
+ houseCache?: string;
14
19
  ethics: string;
15
20
  auditor: string;
16
21
  study: Study;
@@ -20,13 +25,18 @@ export interface DispatchOptions {
20
25
  concurrency?: number;
21
26
  /** How long to wait for owners who were asked to tap Allow. 0: don't wait. */
22
27
  waitSeconds?: number;
28
+ /** Pause between steps, so people can watch the map (stage demos). */
29
+ paceMs?: number;
23
30
  /** Money: the human who signs the mandate, the cap, and who settles. Without it the mission runs unpaid. */
24
31
  money?: {
25
32
  human: Human;
26
33
  budgetUsd: number;
27
34
  payments: string;
28
35
  };
29
- link?: LakeLink | null;
36
+ link?: {
37
+ report(e: LakeEvent): void;
38
+ flush(): Promise<void>;
39
+ } | null;
30
40
  log?: (step: string, detail: string) => void;
31
41
  }
32
42
  export interface MissionResult {
package/dist/dispatch.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { buildCard, cardUrlFor, cellLabels, collectiveCounter, estimate, makeEvent, signAgreement, signCard, signIntentMandate, signPaymentMandate, studyFields, studyId, } from '@thelakeprotocol/core';
3
+ import { readFile, writeFile } from 'node:fs/promises';
3
4
  import { ask } from './knock.js';
4
5
  export function readmissionStudy(question = 'Do over-60s on drug X get readmitted less?', epsilon = 2) {
5
6
  return {
@@ -15,17 +16,45 @@ export function readmissionStudy(question = 'Do over-60s on drug X get readmitte
15
16
  minTier: 'issuer-signed',
16
17
  };
17
18
  }
19
+ /** Questions the sandbox sponsor rotates through: a group, an exposure and an outcome, all certifiable. */
20
+ export const SANDBOX_STUDIES = [
21
+ readmissionStudy(),
22
+ cohortStudy('Are people with heart failure on drug Y readmitted more?', { name: 'with heart failure', field: 'conditions', op: 'has_code', value: '84114007' }, { name: 'on drug Y', field: 'medications', op: 'has_code', value: 'drug-y' }),
23
+ cohortStudy('Do over-50s on drug Z end up back in hospital?', { name: 'over 50', field: 'age_band', op: 'age_at_least', value: 50 }, { name: 'on drug Z', field: 'medications', op: 'has_code', value: 'drug-z' }),
24
+ cohortStudy('Diabetes and drug X: more readmissions?', { name: 'with type 2 diabetes', field: 'conditions', op: 'has_code', value: '44054006' }, { name: 'on drug X', field: 'medications', op: 'has_code', value: 'drug-x' }),
25
+ cohortStudy('Hypertension and drug Y: more readmissions?', { name: 'with hypertension', field: 'conditions', op: 'has_code', value: '38341003' }, { name: 'on drug Y', field: 'medications', op: 'has_code', value: 'drug-y' }),
26
+ ];
27
+ function cohortStudy(question, group, exposure, epsilon = 2) {
28
+ return { ...readmissionStudy(question, epsilon), predicates: [group, exposure, { name: 'readmitted', field: 'readmissions', op: 'present' }] };
29
+ }
18
30
  export async function makeHuman(id, domain) {
19
31
  const webId = `https://${domain}/people/lead#me`;
20
32
  const card = await signCard(buildCard({ name: `Research lead (${domain})`, description: 'A person who signs spending mandates for agents.', url: `https://${domain}/people/lead`, skills: [], profile: { role: 'agent', webId, ownerDomain: domain, tags: ['human'] } }, id), id);
21
33
  return { id, card, webId };
22
34
  }
35
+ /** Asks, and if the house is busy or doesn't answer in time, asks again (up to 3 tries, jittered backoff). */
36
+ async function askPatiently(url, v, payload) {
37
+ for (let attempt = 1;; attempt++) {
38
+ try {
39
+ const r = await ask(url, v, payload);
40
+ if (r.reply.kind !== 'busy' || attempt === 3)
41
+ return r;
42
+ await new Promise((ok) => setTimeout(ok, Number(r.reply.retryAfterMs ?? 1500)));
43
+ }
44
+ catch (e) {
45
+ if (attempt === 3)
46
+ throw e;
47
+ await new Promise((ok) => setTimeout(ok, 1000 + Math.random() * 2000 * attempt));
48
+ }
49
+ }
50
+ }
23
51
  /** The research mission: mandate → ethics → audit → discover → knock → bargain → agree → compute in place → pay → answer. */
24
52
  export async function dispatch(o) {
25
53
  const t0 = Date.now();
26
54
  const log = o.log ?? (() => { });
27
55
  const report = (kind, data) => o.link?.report(makeEvent(kind, 'self', undefined, data));
28
56
  const id = studyId(o.study);
57
+ const beat = () => new Promise((r) => setTimeout(r, o.paceMs ?? 0));
29
58
  const fields = [...studyFields(o.study), ...(o.extraFields ?? [])];
30
59
  let intent = null;
31
60
  if (o.money) {
@@ -41,22 +70,23 @@ export async function dispatch(o) {
41
70
  if (ethics.reply.kind !== 'approved')
42
71
  throw new Error(`ethics refused: ${(ethics.reply.problems ?? []).join('; ')}`);
43
72
  const ethicsAtt = { credential: ethics.reply.credential, card: await cardOf(o.ethics) };
73
+ await beat();
44
74
  log('audit', `asking ${o.auditor} to certify the study`);
45
75
  const audit = await ask(o.auditor, o.visitor, { kind: 'audit-study', study: o.study });
46
76
  if (audit.reply.kind !== 'certified')
47
77
  throw new Error(`auditor refused: ${(audit.reply.problems ?? []).join('; ')}`);
48
78
  const auditAtt = { credential: audit.reply.credential, card: await cardOf(o.auditor) };
49
- log('discover', `searching ${o.node} for houses with the health-study skill`);
50
- const found = (await (await fetch(`${o.node}/cards?skill=health-study&role=house`)).json());
51
- const houses = found.map((f) => ({ id: f.id, name: f.card.name, url: f.card.supportedInterfaces[0].url }));
79
+ await beat();
80
+ const houses = await discover(o, log);
52
81
  const decisions = {};
53
82
  const joined = new Map();
54
83
  const asked = [];
55
84
  const counters = [];
85
+ const lost = [];
56
86
  const knockAll = async (targets, offer, tally) => {
57
87
  await pool(targets, o.concurrency ?? 32, async (h) => {
58
88
  try {
59
- const { reply } = await ask(h.url, o.visitor, { kind: 'offer', offer, study: o.study, attachments: { ethics: ethicsAtt, audit: auditAtt } });
89
+ const { reply } = await askPatiently(h.url, o.visitor, { kind: 'offer', offer, study: o.study, attachments: { ethics: ethicsAtt, audit: auditAtt } });
60
90
  const d = reply.kind === 'decision' ? String(reply.decision) : 'rejected';
61
91
  if (tally)
62
92
  decisions[d] = (decisions[d] ?? 0) + 1;
@@ -70,6 +100,8 @@ export async function dispatch(o) {
70
100
  catch {
71
101
  if (tally)
72
102
  decisions.unreachable = (decisions.unreachable ?? 0) + 1;
103
+ else
104
+ lost.push(h.name);
73
105
  }
74
106
  });
75
107
  };
@@ -83,6 +115,7 @@ export async function dispatch(o) {
83
115
  report('offer', { price: o.priceUsd, fields: fields.join(', '), purpose: 'research' });
84
116
  await knockAll(houses, offer, true);
85
117
  log('decide', Object.entries(decisions).map(([k, n]) => `${n} ${k}`).join(' · '));
118
+ await beat();
86
119
  // Houses that countered the same offer bargain as one bloc: the highest price, only fields all accept (SPEC §5.3).
87
120
  let bloc = null;
88
121
  const b = collectiveCounter(counters.map((c) => c.counter));
@@ -91,6 +124,7 @@ export async function dispatch(o) {
91
124
  const dropped = fields.filter((f) => !b.fields.includes(f));
92
125
  log('bargain', `${b.members} housekeepers countered together: $${b.priceUsd}, not $${o.priceUsd}${dropped.length ? `, and drop ${dropped.join(', ')}` : ''}`);
93
126
  report('counter', { members: b.members, price: b.priceUsd, was: o.priceUsd });
127
+ await beat();
94
128
  const everyone = [...new Map([...joined.values()].map((j) => [j.house.url, j.house])).values(), ...counters.map((c) => c.house)];
95
129
  const cost = b.priceUsd * everyone.length;
96
130
  const missing = studyFields(o.study).filter((f) => !b.fields.includes(f));
@@ -102,6 +136,8 @@ export async function dispatch(o) {
102
136
  log('bargain', `accepted: everyone who joined or countered gets the bloc's terms`);
103
137
  joined.clear();
104
138
  await knockAll(everyone, terms(b.priceUsd, b.fields), false);
139
+ if (lost.length)
140
+ log('bargain', `${lost.length} house(s) did not answer the bloc's terms (busy or unreachable)`);
105
141
  }
106
142
  }
107
143
  if (asked.length && (o.waitSeconds ?? 0) > 0) {
@@ -137,7 +173,7 @@ export async function dispatch(o) {
137
173
  await pool([...joined.values()], o.concurrency ?? 32, async (j) => {
138
174
  try {
139
175
  const countersignature = j.agreement ? await signAgreement(j.agreement.agreement, o.visitor.id) : undefined;
140
- const { reply } = await ask(j.house.url, o.visitor, { kind: 'compute', grant: j.grant, study: o.study, countersignature });
176
+ const { reply } = await askPatiently(j.house.url, o.visitor, { kind: 'compute', grant: j.grant, study: o.study, countersignature });
141
177
  if (reply.kind === 'fragment' && reply.study === id && Array.isArray(reply.fragment)) {
142
178
  fragments.push(reply.fragment);
143
179
  answered.push(j);
@@ -149,18 +185,39 @@ export async function dispatch(o) {
149
185
  excluded.push({ house: j.house.name, why: e.message });
150
186
  }
151
187
  });
188
+ await beat();
152
189
  // Only houses that answered get paid; excluded ones don't.
153
190
  let paid = null;
154
191
  if (o.money && intent && answered.length) {
155
192
  const webIdOf = (j) => String(j.agreement?.agreement.assigner ?? '');
156
193
  const payable = answered.filter((j) => j.agreement && j.priceUsd > 0);
157
194
  const payments = await Promise.all(payable.map((j) => signPaymentMandate(o.visitor.id, o.visitor.webId, { payee: webIdOf(j), amount: j.priceUsd, intentMandate: intent.credential, agreement: j.agreement.agreement.uid })));
158
- const { reply } = await ask(o.money.payments, o.visitor, { kind: 'settle', intent, payments });
159
- if (reply.kind !== 'settled') {
160
- paid = { total: 0, houses: 0, receiptsFiled: 0, refused: (reply.problems ?? []).join('; ') };
195
+ // Settle in batches; the payments agent keeps the running total against the human's budget.
196
+ const receipts = [];
197
+ let total = 0;
198
+ let remaining = o.money.budgetUsd;
199
+ let refused;
200
+ for (let i = 0; i < payments.length && !refused; i += 100) {
201
+ try {
202
+ const { reply } = await askPatiently(o.money.payments, o.visitor, { kind: 'settle', intent, payments: payments.slice(i, i + 100) });
203
+ if (reply.kind !== 'settled')
204
+ refused = (reply.problems ?? []).join('; ');
205
+ else {
206
+ receipts.push(...reply.receipts);
207
+ total += reply.total;
208
+ remaining = reply.remaining;
209
+ }
210
+ }
211
+ catch (e) {
212
+ refused = e.message.slice(0, 200);
213
+ }
214
+ }
215
+ if (refused && !receipts.length) {
216
+ paid = { total: 0, houses: 0, receiptsFiled: 0, refused };
161
217
  log('pay', `refused: ${paid.refused}`);
162
218
  }
163
219
  else {
220
+ const reply = { total, remaining, receipts };
164
221
  const paymentsCard = await cardOf(o.money.payments);
165
222
  let filed = 0;
166
223
  const notFiled = [];
@@ -168,24 +225,25 @@ export async function dispatch(o) {
168
225
  const r = reply.receipts.find((x) => x.payee === webIdOf(j));
169
226
  if (!r)
170
227
  return;
171
- const { reply: ack } = await ask(j.house.url, o.visitor, { kind: 'receipt', receipt: { credential: r.credential, card: paymentsCard } }).catch((e) => ({ reply: { kind: 'error', why: e.message } }));
228
+ const { reply: ack } = await askPatiently(j.house.url, o.visitor, { kind: 'receipt', receipt: { credential: r.credential, card: paymentsCard } }).catch((e) => ({ reply: { kind: 'error', why: e.message } }));
172
229
  if (ack.kind === 'filed')
173
230
  filed++;
174
231
  else
175
232
  notFiled.push(`${j.house.name}: ${ack.why ?? ack.kind}`);
176
233
  });
177
- paid = { total: reply.total, houses: payable.length, receiptsFiled: filed, ...(notFiled.length ? { notFiled } : {}) };
178
- log('pay', `Payments settled $${reply.total} with ${payable.length} participants; ${filed} receipts filed in their pods. $${reply.remaining} of the mandate left`);
234
+ paid = { total: reply.total, houses: reply.receipts.length, receiptsFiled: filed, ...(notFiled.length ? { notFiled } : {}), ...(refused ? { refused } : {}) };
235
+ log('pay', `Payments settled $${reply.total} with ${reply.receipts.length} participants; ${filed} receipts filed in their pods. $${reply.remaining} of the mandate left${refused ? `. Then refused: ${refused}` : ''}`);
179
236
  }
180
237
  }
181
238
  const { n, cells } = estimate(o.study, fragments);
182
- // Bits: 0 over 60, 1 on drug X, 2 readmitted.
239
+ // Bits: 0 the group (over 60), 1 the exposure (on drug X), 2 the outcome (readmitted).
240
+ const [group, exposure, outcome] = o.study.predicates.map((p) => p.name);
183
241
  const rate = (readm, not) => ({ rate: readm + not > 0 ? readm / (readm + not) : 0, n: Math.round(readm + not) });
184
242
  const onX = rate(cells[0b111], cells[0b011]);
185
243
  const notOnX = rate(cells[0b101], cells[0b001]);
186
244
  const reliable = n >= 200;
187
245
  const pct = (x) => `${Math.round(x * 100)}%`;
188
- const summary = `over-60s on drug X: ${pct(onX.rate)} readmitted (≈${onX.n}) vs ${pct(notOnX.rate)} not on it (≈${notOnX.n})`;
246
+ const summary = `${group}, ${exposure}: ${pct(onX.rate)} ${outcome} (≈${onX.n}) vs ${pct(notOnX.rate)} not ${exposure} (≈${notOnX.n})`;
189
247
  log('answer', `${summary}${reliable ? '' : `. Only ${n} answers: randomised answers need a few hundred houses before this means anything`}`);
190
248
  // Houses batch their reports for ~150 ms; let theirs land first so the log reads in order.
191
249
  await new Promise((r) => setTimeout(r, 400));
@@ -199,6 +257,32 @@ export async function dispatch(o) {
199
257
  grants: [...joined.values()].map((j) => ({ house: j.house.name, url: j.house.url, grant: j.grant })),
200
258
  };
201
259
  }
260
+ /** Ask each node in turn; fall back to the houses remembered last time. Nodes are search indexes, not gatekeepers. */
261
+ async function discover(o, log) {
262
+ const nodes = (Array.isArray(o.node) ? o.node : o.node.split(',')).map((u) => u.trim().replace(/\/$/, '')).filter(Boolean);
263
+ for (const node of nodes) {
264
+ try {
265
+ log('discover', `searching ${node} for houses with the health-study skill`);
266
+ const found = (await (await fetch(`${node}/cards?skill=health-study&role=house`, { signal: AbortSignal.timeout(5000) })).json());
267
+ // A relayed house lists one address per node; use the one on the node that answered.
268
+ const houses = found.map((f) => ({ id: f.id, name: f.card.name, url: (f.card.supportedInterfaces.find((i) => i.url.startsWith(node)) ?? f.card.supportedInterfaces[0]).url }));
269
+ if (o.houseCache)
270
+ await writeFile(o.houseCache, JSON.stringify(houses)).catch(() => { });
271
+ return houses;
272
+ }
273
+ catch {
274
+ log('discover', `${node} is unreachable`);
275
+ }
276
+ }
277
+ if (o.houseCache) {
278
+ const cached = JSON.parse(await readFile(o.houseCache, 'utf8').catch(() => '[]'));
279
+ if (cached.length) {
280
+ log('discover', `every node is down: using ${cached.length} houses remembered from last time (their cards live at their own .well-known)`);
281
+ return cached;
282
+ }
283
+ }
284
+ throw new Error('no node reachable and no houses remembered');
285
+ }
202
286
  const cardCache = new Map();
203
287
  function cardOf(agentUrl) {
204
288
  const u = agentUrl.endsWith('/a2a') ? cardUrlFor(agentUrl) : `${agentUrl.replace(/\/$/, '')}/.well-known/agent-card.json`;
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thelakeprotocol/visitor",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "The `lake` CLI and the research agent.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "dependencies": {
16
16
  "@a2a-js/sdk": "1.3.0",
17
- "@thelakeprotocol/core": "^0.1.0"
17
+ "@thelakeprotocol/core": "^0.2.0"
18
18
  },
19
19
  "repository": {
20
20
  "type": "git",