@agenticprimitives/a2a 0.0.0-alpha.3 → 0.0.0-alpha.30

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 (130) hide show
  1. package/CLAUDE.md +60 -21
  2. package/README.md +2 -0
  3. package/bin/a2a-conform.mjs +17 -0
  4. package/dist/agent.d.ts +183 -3
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +361 -62
  7. package/dist/agent.js.map +1 -1
  8. package/dist/auth.d.ts +72 -9
  9. package/dist/auth.d.ts.map +1 -1
  10. package/dist/auth.js +62 -19
  11. package/dist/auth.js.map +1 -1
  12. package/dist/authority-extension.d.ts +58 -0
  13. package/dist/authority-extension.d.ts.map +1 -0
  14. package/dist/authority-extension.js +70 -0
  15. package/dist/authority-extension.js.map +1 -0
  16. package/dist/card-audience.d.ts +87 -0
  17. package/dist/card-audience.d.ts.map +1 -0
  18. package/dist/card-audience.js +135 -0
  19. package/dist/card-audience.js.map +1 -0
  20. package/dist/client.d.ts +23 -8
  21. package/dist/client.d.ts.map +1 -1
  22. package/dist/client.js +74 -13
  23. package/dist/client.js.map +1 -1
  24. package/dist/cloudflare/index.d.ts.map +1 -1
  25. package/dist/cloudflare/index.js +10 -2
  26. package/dist/cloudflare/index.js.map +1 -1
  27. package/dist/conform/index.d.ts +36 -0
  28. package/dist/conform/index.d.ts.map +1 -0
  29. package/dist/conform/index.js +232 -0
  30. package/dist/conform/index.js.map +1 -0
  31. package/dist/discovery.d.ts +4 -0
  32. package/dist/discovery.d.ts.map +1 -1
  33. package/dist/discovery.js +6 -2
  34. package/dist/discovery.js.map +1 -1
  35. package/dist/engagement.d.ts +37 -0
  36. package/dist/engagement.d.ts.map +1 -0
  37. package/dist/engagement.js +83 -0
  38. package/dist/engagement.js.map +1 -0
  39. package/dist/grant.d.ts +4 -2
  40. package/dist/grant.d.ts.map +1 -1
  41. package/dist/grant.js +21 -13
  42. package/dist/grant.js.map +1 -1
  43. package/dist/handoff.d.ts +42 -0
  44. package/dist/handoff.d.ts.map +1 -0
  45. package/dist/handoff.js +28 -0
  46. package/dist/handoff.js.map +1 -0
  47. package/dist/index.d.ts +26 -7
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +24 -3
  50. package/dist/index.js.map +1 -1
  51. package/dist/payment-gate.d.ts +88 -0
  52. package/dist/payment-gate.d.ts.map +1 -0
  53. package/dist/payment-gate.js +47 -0
  54. package/dist/payment-gate.js.map +1 -0
  55. package/dist/run-provenance-extension.d.ts +22 -0
  56. package/dist/run-provenance-extension.d.ts.map +1 -0
  57. package/dist/run-provenance-extension.js +23 -0
  58. package/dist/run-provenance-extension.js.map +1 -0
  59. package/dist/runtime.d.ts +13 -1
  60. package/dist/runtime.d.ts.map +1 -1
  61. package/dist/runtime.js +35 -10
  62. package/dist/runtime.js.map +1 -1
  63. package/dist/session-wire.d.ts +90 -0
  64. package/dist/session-wire.d.ts.map +1 -0
  65. package/dist/session-wire.js +226 -0
  66. package/dist/session-wire.js.map +1 -0
  67. package/dist/skill-handler.d.ts +26 -1
  68. package/dist/skill-handler.d.ts.map +1 -1
  69. package/dist/skill-handler.js.map +1 -1
  70. package/dist/standard/app-delegation.d.ts +60 -0
  71. package/dist/standard/app-delegation.d.ts.map +1 -0
  72. package/dist/standard/app-delegation.js +40 -0
  73. package/dist/standard/app-delegation.js.map +1 -0
  74. package/dist/standard/caller.d.ts +107 -0
  75. package/dist/standard/caller.d.ts.map +1 -0
  76. package/dist/standard/caller.js +176 -0
  77. package/dist/standard/caller.js.map +1 -0
  78. package/dist/standard/client.d.ts +53 -0
  79. package/dist/standard/client.d.ts.map +1 -0
  80. package/dist/standard/client.js +88 -0
  81. package/dist/standard/client.js.map +1 -0
  82. package/dist/standard/delegated.d.ts +121 -0
  83. package/dist/standard/delegated.d.ts.map +1 -0
  84. package/dist/standard/delegated.js +170 -0
  85. package/dist/standard/delegated.js.map +1 -0
  86. package/dist/standard/errors.d.ts +31 -0
  87. package/dist/standard/errors.d.ts.map +1 -0
  88. package/dist/standard/errors.js +75 -0
  89. package/dist/standard/errors.js.map +1 -0
  90. package/dist/standard/from-agent.d.ts +41 -0
  91. package/dist/standard/from-agent.d.ts.map +1 -0
  92. package/dist/standard/from-agent.js +133 -0
  93. package/dist/standard/from-agent.js.map +1 -0
  94. package/dist/standard/index.d.ts +10 -0
  95. package/dist/standard/index.d.ts.map +1 -0
  96. package/dist/standard/index.js +14 -0
  97. package/dist/standard/index.js.map +1 -0
  98. package/dist/standard/mount.d.ts +94 -0
  99. package/dist/standard/mount.d.ts.map +1 -0
  100. package/dist/standard/mount.js +186 -0
  101. package/dist/standard/mount.js.map +1 -0
  102. package/dist/standard/server.d.ts +130 -0
  103. package/dist/standard/server.d.ts.map +1 -0
  104. package/dist/standard/server.js +497 -0
  105. package/dist/standard/server.js.map +1 -0
  106. package/dist/standard/types.d.ts +186 -0
  107. package/dist/standard/types.d.ts.map +1 -0
  108. package/dist/standard/types.js +14 -0
  109. package/dist/standard/types.js.map +1 -0
  110. package/dist/subject-ask.d.ts +96 -0
  111. package/dist/subject-ask.d.ts.map +1 -0
  112. package/dist/subject-ask.js +45 -0
  113. package/dist/subject-ask.js.map +1 -0
  114. package/dist/subject-hop.d.ts +117 -0
  115. package/dist/subject-hop.d.ts.map +1 -0
  116. package/dist/subject-hop.js +187 -0
  117. package/dist/subject-hop.js.map +1 -0
  118. package/dist/task-store.d.ts +9 -3
  119. package/dist/task-store.d.ts.map +1 -1
  120. package/dist/task-store.js +12 -6
  121. package/dist/task-store.js.map +1 -1
  122. package/dist/wire-verify.d.ts +35 -0
  123. package/dist/wire-verify.d.ts.map +1 -0
  124. package/dist/wire-verify.js +51 -0
  125. package/dist/wire-verify.js.map +1 -0
  126. package/package.json +35 -12
  127. package/dist/jsonrpc.d.ts +0 -25
  128. package/dist/jsonrpc.d.ts.map +0 -1
  129. package/dist/jsonrpc.js +0 -52
  130. package/dist/jsonrpc.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/standard/mount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ import { AP_ENGAGEMENT_EXTENSION_URI, ENGAGEMENT_CARD_EXTENSION, engagementOf, engagementResponseMessage } from '../engagement.js';
2
+ import { AP_DELEGATED_TASK_EXTENSION, DELEGATED_TASK_CARD_EXTENSION, isPartyToDelegatedTask, readDelegatedTask } from './delegated.js';
3
+ /** The delegation runtime mints 32-byte hex task ids; a standard server's own conversational tasks are
4
+ * uuids. That is how a read knows which side holds a task — the shape is minted, not guessed. */
5
+ export const isRuntimeTaskId = (id) => typeof id === 'string' && /^0x[0-9a-fA-F]{64}$/.test(id);
6
+ /** The text of a message's parts, joined; `data` parts that are strings count as text. */
7
+ export const partsText = (parts) => parts.map((p) => (typeof p.text === 'string' ? p.text : typeof p.data === 'string' ? p.data : '')).filter(Boolean).join('\n').trim();
8
+ /** The first structured `data` part, or null. */
9
+ export const partsData = (parts) => { const d = parts.find((p) => p.data && typeof p.data === 'object' && !Array.isArray(p.data)); return d ? d.data : null; };
10
+ /** Spec 390 W2 — the W3C Trace Context a request arrived with, as headers to forward on the next hop so the
11
+ * run's record keeps it. Ids only: nothing admits on these. */
12
+ export function traceHeadersOf(h) {
13
+ const out = {};
14
+ const tp = h.get('traceparent');
15
+ const ts = h.get('tracestate');
16
+ if (tp)
17
+ out.traceparent = tp;
18
+ if (ts)
19
+ out.tracestate = ts;
20
+ return out;
21
+ }
22
+ /**
23
+ * The 1.0 fields a live card needs on top of what a runtime already builds: an interface with a protocol
24
+ * version, input/output modes, skills with names, the extensions this surface admits and the bearer scheme.
25
+ * Additive — every field the card carried stays; a released card (spec 347 §8) is served byte-for-byte and
26
+ * never passes through here.
27
+ */
28
+ export function withStandardCardFields(live, opts) {
29
+ const skills = (Array.isArray(live.skills) ? live.skills : []);
30
+ const caps = (live.capabilities && typeof live.capabilities === 'object' ? live.capabilities : {});
31
+ const extensions = opts.extensions ?? [{ ...DELEGATED_TASK_CARD_EXTENSION }, { ...ENGAGEMENT_CARD_EXTENSION }];
32
+ const ours = new Set(extensions.map((e) => e.uri));
33
+ const bearer = opts.bearer ?? { name: 'homeSession', bearerFormat: 'home-session', description: 'A Home session presented as a bearer names the asking person; it grants nothing (spec 372 §0).' };
34
+ return {
35
+ ...live,
36
+ protocolVersion: '1.0',
37
+ supportedInterfaces: [{ url: opts.messageUrl, protocolBinding: 'JSONRPC', protocolVersion: '1.0' }],
38
+ // Honest flags: the standard server streams (SSE) and delivers push — the flags describe the surface a
39
+ // 1.0 client reaches by these methods.
40
+ capabilities: {
41
+ ...caps, streaming: true, pushNotifications: true, extendedAgentCard: false,
42
+ // The card SAYS how to authorize a task, so a peer learns it before calling rather than by failing.
43
+ extensions: [
44
+ ...(caps.extensions ?? []).filter((e) => !ours.has(e.uri) && e.uri !== AP_DELEGATED_TASK_EXTENSION && e.uri !== AP_ENGAGEMENT_EXTENSION_URI),
45
+ ...extensions,
46
+ ],
47
+ },
48
+ defaultInputModes: ['text/plain', 'application/json'],
49
+ defaultOutputModes: ['text/plain', 'application/json'],
50
+ skills: skills.map((s) => ({ id: s.id, name: s.name ?? s.id, description: s.description ?? s.name ?? s.id, tags: s.tags ?? [] })),
51
+ securitySchemes: { ...(live.securitySchemes ?? {}), [bearer.name]: { httpAuthSecurityScheme: { scheme: 'bearer', bearerFormat: bearer.bearerFormat, description: bearer.description } } },
52
+ securityRequirements: [{ schemes: { [bearer.name]: { list: [] } } }],
53
+ };
54
+ }
55
+ /**
56
+ * ONE TASK VIEW over two stores (spec 372 S4): a 32-byte hex id can only be the runtime's, so a read asks
57
+ * the object that owns it; anything else is a conversation this server made. A caller cannot tell, and
58
+ * must not have to. Writes go to the local store only — a delegated task is the runtime's to write.
59
+ */
60
+ export function runtimeBackedTaskStore(input) {
61
+ const { local, agent, rpc } = input;
62
+ return {
63
+ async get(id) {
64
+ if (!isRuntimeTaskId(id))
65
+ return local.get(id);
66
+ const r = await rpc(agent, { jsonrpc: '2.0', id: 1, method: 'GetTask', params: { id } }, null).catch(() => null);
67
+ return r?.result ?? null;
68
+ },
69
+ put: (t) => local.put(t),
70
+ async all() {
71
+ const own = await local.all();
72
+ const r = await rpc(agent, { jsonrpc: '2.0', id: 1, method: 'ListTasks', params: {} }, null).catch(() => null);
73
+ const theirs = (r?.result?.tasks ?? []);
74
+ return [...theirs, ...own];
75
+ },
76
+ };
77
+ }
78
+ const a2aError = (message, code) => Object.assign(new Error(message), { code, name: 'A2aError' });
79
+ /**
80
+ * What runs in front of `SendMessage` and `CancelTask` when the agent has a delegation runtime and/or answers
81
+ * engagement probes. A message carrying the DELEGATED-TASK extension is forwarded to the runtime, which keeps
82
+ * its own task id (two ids for one task would make `GetTask` a coin toss). An engagement PROBE is answered
83
+ * with a MESSAGE and no task (spec 336 §5) — the provider's own document — and only for a known caller who is
84
+ * the requester it names, addressed to this agent. A malformed engagement document is refused, never ignored.
85
+ */
86
+ export function delegatedDispatch(input) {
87
+ const { agent, rpc, answerProbe } = input;
88
+ if (!rpc && !answerProbe)
89
+ return {};
90
+ return {
91
+ beforeSend: async ({ message, configuration }, principal) => {
92
+ const eng = engagementOf(message);
93
+ if (eng && 'errors' in eng)
94
+ throw a2aError(`the engagement document is malformed: ${eng.errors.join('; ')}`, -32602);
95
+ if (eng && 'probe' in eng) {
96
+ if (!answerProbe)
97
+ throw a2aError('this agent does not answer engagement probes here', -32601);
98
+ if (!principal)
99
+ throw a2aError('a probe names its requester, and the caller must be known', -32001);
100
+ if (String(eng.probe.requester).toLowerCase() !== principal.agent.toLowerCase())
101
+ throw a2aError('the probe names a requester other than its caller', -32602);
102
+ if (String(eng.probe.candidate).toLowerCase() !== agent.toLowerCase())
103
+ throw a2aError('the probe is addressed to another agent', -32602);
104
+ const response = await answerProbe({ agent, probe: eng.probe, caller: principal });
105
+ return { message: engagementResponseMessage(response) };
106
+ }
107
+ if (eng && 'response' in eng)
108
+ throw a2aError('an engagement response is read by the requester that probed, not sent to it as a new message', -32602);
109
+ if (!rpc)
110
+ return null;
111
+ const ext = readDelegatedTask(message);
112
+ if (ext === null)
113
+ return null;
114
+ const r = await rpc(agent, { jsonrpc: '2.0', id: 1, method: 'SendMessage', params: { message, ...(configuration ? { configuration } : {}) } }, principal);
115
+ if (r.error)
116
+ throw a2aError(r.error.message, r.error.code);
117
+ return r.result ?? null;
118
+ },
119
+ onCancel: async (task, principal) => {
120
+ if (!isRuntimeTaskId(task.id) || !rpc)
121
+ return null;
122
+ const r = await rpc(agent, { jsonrpc: '2.0', id: 1, method: 'CancelTask', params: { id: task.id } }, principal);
123
+ if (r.error)
124
+ throw a2aError(r.error.message, r.error.code);
125
+ return r.result ?? null;
126
+ },
127
+ };
128
+ }
129
+ /** A delegated task is visible to its parties; a conversation, to whoever had it (its `asker`). A task
130
+ * nobody claimed is NOBODY'S (R917-P-6, spec 408 §2.6): the old "single-tenant shape" made every
131
+ * asker-less task world-readable, and a runtime with two tenants is not single-tenant. Compared
132
+ * lowercased on both sides — the caller assertion lowercases the agent (`caller.ts`), a task's
133
+ * metadata may not. */
134
+ export function canSeeDelegatedOrOwnTask(task, principal) {
135
+ const delegated = task.metadata?.[AP_DELEGATED_TASK_EXTENSION] !== undefined;
136
+ if (delegated)
137
+ return isPartyToDelegatedTask(task, principal?.agent);
138
+ const asker = task.metadata?.asker;
139
+ if (typeof asker !== 'string' || !asker || !principal?.agent)
140
+ return false;
141
+ return asker.toLowerCase() === principal.agent.toLowerCase();
142
+ }
143
+ /**
144
+ * TWO SCHEMES, ONE MECHANISM EACH (ADR-0013). `Bearer` is a PERSON's session; `A2A-Session` is an AGENT's
145
+ * session wire, verified on chain per request (spec 372 S3c). The scheme token selects which runs — neither
146
+ * is ever tried because the other failed, and each fails closed on its own terms. `first` is the product's
147
+ * own door (an in-process marker, say): it answers a principal, `null` to refuse, or `undefined` to say the
148
+ * request is not its to judge.
149
+ */
150
+ export function principalBySchemes(input) {
151
+ return async (request) => {
152
+ const own = input.first?.(request);
153
+ if (own !== undefined)
154
+ return own;
155
+ const auth = request.headers.get('authorization') ?? '';
156
+ if (/^A2A-Session\s/i.test(auth))
157
+ return input.wire ? input.wire(request) : null;
158
+ const token = /^Bearer\s+(.+)$/i.exec(auth)?.[1]?.trim();
159
+ if (!token)
160
+ return null;
161
+ return input.bearer(token).catch(() => null);
162
+ };
163
+ }
164
+ export function settlementForReplyKind(kind) {
165
+ switch (kind) {
166
+ case 'answer':
167
+ case 'done': return 'completed';
168
+ case 'prompt': return 'input-required';
169
+ case 'authority_required': return 'auth-required';
170
+ case 'refused':
171
+ case 'denied': return 'rejected';
172
+ case 'error': return 'failed';
173
+ default: return 'completed';
174
+ }
175
+ }
176
+ /** Move the task to a settlement with the given parts. */
177
+ export function settleTask(ctx, settlement, parts) {
178
+ switch (settlement) {
179
+ case 'completed': return ctx.complete(parts);
180
+ case 'input-required': return ctx.inputRequired(parts);
181
+ case 'auth-required': return ctx.authRequired(parts);
182
+ case 'rejected': return ctx.reject(parts);
183
+ case 'failed': return ctx.fail(parts);
184
+ }
185
+ }
186
+ //# sourceMappingURL=mount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mount.js","sourceRoot":"","sources":["../../src/standard/mount.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import { type AgentCardV1, type ArtifactV1, type MessageV1, type PartV1, type SendMessageConfigurationV1, type TaskPushNotificationConfigV1, type TaskV1 } from './types.js';
2
+ export interface StandardTaskStore {
3
+ get(id: string): Promise<TaskV1 | null>;
4
+ put(task: TaskV1): Promise<void>;
5
+ /** Every task, newest status first. Filtering is the server's. */
6
+ all(): Promise<TaskV1[]>;
7
+ }
8
+ export interface PushConfigStore {
9
+ put(cfg: TaskPushNotificationConfigV1 & {
10
+ id: string;
11
+ taskId: string;
12
+ }): Promise<void>;
13
+ get(taskId: string, id: string): Promise<(TaskPushNotificationConfigV1 & {
14
+ id: string;
15
+ taskId: string;
16
+ }) | null>;
17
+ list(taskId: string): Promise<Array<TaskPushNotificationConfigV1 & {
18
+ id: string;
19
+ taskId: string;
20
+ }>>;
21
+ delete(taskId: string, id: string): Promise<boolean>;
22
+ }
23
+ export interface Principal {
24
+ agent: string;
25
+ [k: string]: unknown;
26
+ }
27
+ /** What an executor is handed: the message, the task as created, the admitted principal, and the ways it
28
+ * may move the task. Every call records on the task, fans out to subscribers and delivers to push configs. */
29
+ export interface ExecutionContext {
30
+ message: MessageV1;
31
+ task: TaskV1;
32
+ principal: Principal | null;
33
+ /** Spec 390 W2 — the request's headers, read-only, so an executor can carry W3C Trace Context
34
+ * (`traceparent` / `tracestate`) into the run it starts. Correlation only: nothing here admits. */
35
+ headers: Headers;
36
+ /** True while a client is streaming this run (`SendStreamingMessage`). */
37
+ streaming: boolean;
38
+ working(message?: PartV1[] | MessageV1): Promise<void>;
39
+ artifact(artifact: Omit<ArtifactV1, 'artifactId'> & {
40
+ artifactId?: string;
41
+ }, opts?: {
42
+ append?: boolean;
43
+ lastChunk?: boolean;
44
+ }): Promise<ArtifactV1>;
45
+ inputRequired(message?: PartV1[] | MessageV1): Promise<void>;
46
+ authRequired(message?: PartV1[] | MessageV1): Promise<void>;
47
+ complete(message?: PartV1[] | MessageV1): Promise<void>;
48
+ fail(message?: PartV1[] | MessageV1): Promise<void>;
49
+ reject(message?: PartV1[] | MessageV1): Promise<void>;
50
+ /** Reply with a MESSAGE and no task at all — only before any other event. */
51
+ reply(parts: PartV1[] | MessageV1): Promise<void>;
52
+ }
53
+ export interface StandardExecutor {
54
+ execute(ctx: ExecutionContext): Promise<void>;
55
+ /** Asked to stop a non-terminal task; the server marks it canceled either way. */
56
+ cancel?(task: TaskV1): Promise<void>;
57
+ }
58
+ export interface StandardServerConfig {
59
+ card: AgentCardV1;
60
+ executor: StandardExecutor;
61
+ tasks?: StandardTaskStore;
62
+ push?: PushConfigStore;
63
+ /** Admission: who is asking. Configured ⇒ a request resolving to nobody is 401 before any method runs.
64
+ * Absent ⇒ anonymous: with `visibility: 'single-tenant'` every task is that caller's; with `canSeeTask`
65
+ * the rule judges a `null` principal (a party rule answers false — an in-Worker anonymous caller sees
66
+ * only what it is party to). */
67
+ principal?: (request: Request) => Promise<Principal | null>;
68
+ /** `Major.Minor` versions served; default ['1.0']. A request naming another is -32009. */
69
+ versions?: string[];
70
+ /**
71
+ * Answer a `SendMessage` WITHOUT creating a task of this server's own (spec 372 S4). Returns the result
72
+ * to reply with, or `null` to let the ordinary path run. This is how a message that carries an extension
73
+ * routing it to another runtime keeps THAT runtime's task id: two ids for one task would make `GetTask`
74
+ * a coin toss.
75
+ */
76
+ beforeSend?: (params: {
77
+ message: MessageV1;
78
+ configuration?: SendMessageConfigurationV1;
79
+ }, principal: Principal | null) => Promise<{
80
+ task?: TaskV1;
81
+ message?: MessageV1;
82
+ } | null>;
83
+ /** Cancel a task this server did not create. Returns the updated task, or `null` to let the ordinary
84
+ * path run. */
85
+ onCancel?: (task: TaskV1, principal: Principal | null) => Promise<TaskV1 | null>;
86
+ /**
87
+ * May this principal see or act on this task (spec 372 S4)? A deployment that carries other people's tasks
88
+ * MUST bind this: a delegated task has parties, and a `GetTask` from anyone else is answered TaskNotFound,
89
+ * never "forbidden" — telling a stranger that a task exists is itself a disclosure.
90
+ *
91
+ * R917-P-5 (spec 408 §2.5): there is no silent default any more. A server binds this OR declares
92
+ * `visibility: 'single-tenant'` (the in-memory shape the TCK's SUT runs, where every task is the one
93
+ * caller's); constructing one with neither throws. The old "absent ⇒ every task visible" was a fail-open
94
+ * knob nobody had written down.
95
+ */
96
+ canSeeTask?: (task: TaskV1, principal: Principal | null, op: 'get' | 'cancel' | 'continue' | 'list' | 'push') => Promise<boolean> | boolean;
97
+ /** Spec 408 §2.5 — the explicit single-tenant declaration: every task is visible to every caller because there
98
+ * is only one. Mutually exclusive with `canSeeTask`; a server with more than one principal must not say it. */
99
+ visibility?: 'single-tenant';
100
+ /**
101
+ * Spec 412 — THE PUBLIC LANE: a `SendMessage` a stranger may put to this agent with NO credential at all, answered
102
+ * from what the owner marked public and nothing else. `admits(message)` says which messages qualify (a data part
103
+ * naming a public skill, say); `answer` builds the reply. The reply is a MESSAGE, never a task — a stranger holds no
104
+ * task here, so there is nothing to get, cancel or subscribe to. Every other request resolving to nobody stays 401.
105
+ * A door for records, never authority: what `answer` returns is a disclosure the owner already made.
106
+ */
107
+ public?: {
108
+ admits: (message: MessageV1) => boolean;
109
+ answer: (message: MessageV1, headers: Headers) => Promise<MessageV1>;
110
+ };
111
+ /** Served by `GetExtendedAgentCard` when `card.capabilities.extendedAgentCard` is true. */
112
+ extendedCard?: AgentCardV1;
113
+ /** Extension methods (an A2A extension may define methods beyond the core set — the delegated-task extension's
114
+ * `GetTaskArtifact`, say). Dispatched by exact name after the core methods; the handler gets the parsed params
115
+ * and the door's principal and returns the JSON-RPC result, or throws an `A2aError`. */
116
+ methods?: Record<string, (params: Record<string, unknown>, principal: Principal | null) => Promise<unknown>>;
117
+ /** Push delivery transport (default: global fetch). */
118
+ fetch?: typeof fetch;
119
+ now?: () => number;
120
+ /** How long a subscription to an IDLE non-terminal task stays open (default 60 s). */
121
+ idleSubscriptionMs?: number;
122
+ }
123
+ export interface StandardServer {
124
+ handle(request: Request): Promise<Response>;
125
+ card(): AgentCardV1;
126
+ }
127
+ export declare function createMemoryTaskStore(): StandardTaskStore;
128
+ export declare function createMemoryPushStore(): PushConfigStore;
129
+ export declare function createStandardA2aServer(config: StandardServerConfig): StandardServer;
130
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/standard/server.ts"],"names":[],"mappings":"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"}