@1sat/permission-module 0.0.50 → 0.0.51

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 (54) hide show
  1. package/dist/apply.d.ts +1 -1
  2. package/dist/apply.d.ts.map +1 -1
  3. package/dist/apply.js +3 -3
  4. package/dist/apply.js.map +1 -1
  5. package/dist/apply.test.js +29 -29
  6. package/dist/apply.test.js.map +1 -1
  7. package/dist/basketAccess.d.ts +38 -0
  8. package/dist/basketAccess.d.ts.map +1 -0
  9. package/dist/basketAccess.js +237 -0
  10. package/dist/basketAccess.js.map +1 -0
  11. package/dist/buildPromptIntent.d.ts +15 -0
  12. package/dist/buildPromptIntent.d.ts.map +1 -0
  13. package/dist/buildPromptIntent.js +575 -0
  14. package/dist/buildPromptIntent.js.map +1 -0
  15. package/dist/createOneSatPermissionModule.d.ts +10 -5
  16. package/dist/createOneSatPermissionModule.d.ts.map +1 -1
  17. package/dist/createOneSatPermissionModule.js +28 -6
  18. package/dist/createOneSatPermissionModule.js.map +1 -1
  19. package/dist/enrichIntent.d.ts +121 -5
  20. package/dist/enrichIntent.d.ts.map +1 -1
  21. package/dist/enrichIntent.js +576 -137
  22. package/dist/enrichIntent.js.map +1 -1
  23. package/dist/handlers.d.ts +12 -32
  24. package/dist/handlers.d.ts.map +1 -1
  25. package/dist/handlers.js +120 -155
  26. package/dist/handlers.js.map +1 -1
  27. package/dist/index.d.ts +5 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +4 -1
  30. package/dist/index.js.map +1 -1
  31. package/dist/listOutputsScope.test.d.ts +2 -0
  32. package/dist/listOutputsScope.test.d.ts.map +1 -0
  33. package/dist/listOutputsScope.test.js +116 -0
  34. package/dist/listOutputsScope.test.js.map +1 -0
  35. package/dist/promptModel.d.ts +115 -0
  36. package/dist/promptModel.d.ts.map +1 -0
  37. package/dist/promptModel.js +7 -0
  38. package/dist/promptModel.js.map +1 -0
  39. package/dist/types.d.ts +36 -10
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js.map +1 -1
  42. package/dist/verifyIntent.d.ts +4 -4
  43. package/dist/verifyIntent.d.ts.map +1 -1
  44. package/dist/verifyIntent.js +120 -40
  45. package/dist/verifyIntent.js.map +1 -1
  46. package/dist/viewScope.d.ts +51 -0
  47. package/dist/viewScope.d.ts.map +1 -0
  48. package/dist/viewScope.js +113 -0
  49. package/dist/viewScope.js.map +1 -0
  50. package/dist/viewScope.test.d.ts +2 -0
  51. package/dist/viewScope.test.d.ts.map +1 -0
  52. package/dist/viewScope.test.js +60 -0
  53. package/dist/viewScope.test.js.map +1 -0
  54. package/package.json +42 -42
@@ -0,0 +1,575 @@
1
+ import { BSV21_BASKET, LOCK_BASKET, OPNS_BASKET } from '@1sat/types';
2
+ import { BSV21 } from '@1sat/templates';
3
+ import { Script } from '@bsv/sdk';
4
+ /**
5
+ * Turn enrich output into the serializable prompt IR the UI renders.
6
+ * All classification and presentation facts are settled here.
7
+ */
8
+ export function buildTransactionPrompt(enriched, contentUrls, originator, tokenMeta = {}) {
9
+ const panels = [];
10
+ const rows = [];
11
+ const consumed = new Set();
12
+ for (const edge of enriched.ordinalEdges) {
13
+ panels.push(panelFromOrdinalEdge(edge, contentUrls));
14
+ }
15
+ // Token transfers: Send/Move/Burn panels + local conservation.
16
+ const tokenResult = panelsFromTokenLegs(enriched.legs, enriched.outputs, contentUrls, consumed, tokenMeta);
17
+ for (const p of tokenResult.panels) {
18
+ panels.push(p);
19
+ }
20
+ for (const leg of enriched.legs) {
21
+ const key = legKey(leg);
22
+ if (consumed.has(key))
23
+ continue;
24
+ if (leg.isIndexerFee) {
25
+ consumed.add(key);
26
+ continue;
27
+ }
28
+ if (leg.inOrdinalEdge && !leg.sealPending)
29
+ continue;
30
+ if (leg.inOrdinalEdge && leg.sealPending) {
31
+ const onEdge = enriched.ordinalEdges.some((e) => e.create?.index === leg.index && e.create?.sealPending);
32
+ if (onEdge)
33
+ continue;
34
+ rows.push({
35
+ key: 'Signature',
36
+ value: leg.sealKind === 'sigma'
37
+ ? 'You will sign a Sigma commitment on this output'
38
+ : leg.sealKind === 'pushdrop'
39
+ ? 'You will sign PushDrop data on this output'
40
+ : 'You will sign data on this output',
41
+ });
42
+ continue;
43
+ }
44
+ if (leg.inOrdinalEdge)
45
+ continue;
46
+ const value = panelFromValueLeg(leg);
47
+ if (value) {
48
+ panels.push(value);
49
+ continue;
50
+ }
51
+ // Token change / residual token legs already covered by panels.
52
+ if (isTokenLeg(leg))
53
+ continue;
54
+ rows.push({
55
+ key: leg.side === 'input' ? 'Spend' : 'Output',
56
+ value: leg.label,
57
+ ...(leg.outpoint ? { copyValue: leg.outpoint } : {}),
58
+ ...(leg.recipient ? { copyValue: leg.recipient } : {}),
59
+ });
60
+ }
61
+ // Bad token math: Burn panel already carries the reason — no trust badge
62
+ // (would duplicate) and no overlay verify (shape is already invalid).
63
+ const trust = tokenResult.badMath ? undefined : enriched.trust;
64
+ const prompt = {
65
+ title: 'Transaction Request',
66
+ subtitle: `${shortenOriginator(originator)} wants your approval`,
67
+ panels,
68
+ rows,
69
+ ...(trust && { trust }),
70
+ ...(enriched.indexerFeeSats != null && {
71
+ indexerFee: {
72
+ sats: enriched.indexerFeeSats,
73
+ // Label is fixed in the UI as "1Sat Overlay Fee".
74
+ },
75
+ }),
76
+ // funding: filled when admin pre-fund lands
77
+ };
78
+ if (trust) {
79
+ prompt.verify = {
80
+ kind: enriched.kind,
81
+ inputs: enriched.inputs.map((i) => ({
82
+ basket: i.basket,
83
+ id: i.id,
84
+ outpoint: i.outpoint,
85
+ satoshis: i.satoshis,
86
+ tags: i.tags,
87
+ ...(i.customInstructions
88
+ ? { customInstructions: i.customInstructions }
89
+ : {}),
90
+ })),
91
+ outputs: enriched.outputs.map((o) => ({
92
+ index: o.index,
93
+ satoshis: o.satoshis,
94
+ basket: o.basket,
95
+ tags: o.tags,
96
+ recipient: o.recipient,
97
+ listingPriceSats: o.listingPriceSats,
98
+ })),
99
+ contentUrls,
100
+ };
101
+ }
102
+ return prompt;
103
+ }
104
+ function formatSatsFull(n) {
105
+ return `${n.toLocaleString('en-US')} sats`;
106
+ }
107
+ function shortenMid(s, max) {
108
+ if (s.length <= max)
109
+ return s;
110
+ const keep = Math.max(4, Math.floor((max - 1) / 2));
111
+ return `${s.slice(0, keep)}…${s.slice(-keep)}`;
112
+ }
113
+ function shortenOriginator(origin) {
114
+ try {
115
+ const u = new URL(origin.includes('://') ? origin : `https://${origin}`);
116
+ return u.host || origin;
117
+ }
118
+ catch {
119
+ return origin.length > 32 ? shortenMid(origin, 28) : origin;
120
+ }
121
+ }
122
+ function copyable(key, full) {
123
+ return { key, value: shortenMid(full, 28), copyValue: full };
124
+ }
125
+ function contentTypeFromTags(tags) {
126
+ if (!tags?.length)
127
+ return undefined;
128
+ const types = tags
129
+ .filter((t) => t.startsWith('type:'))
130
+ .map((t) => t.slice(5));
131
+ if (!types.length)
132
+ return undefined;
133
+ const specific = types.find((t) => t.includes('/'));
134
+ return specific ?? types[types.length - 1];
135
+ }
136
+ function previewKindFromContentType(ct) {
137
+ if (!ct)
138
+ return 'none';
139
+ const c = ct.toLowerCase();
140
+ if (c === 'image/svg+xml' || c === 'svg' || c.endsWith('+svg'))
141
+ return 'svg';
142
+ if (c.startsWith('image/'))
143
+ return 'image';
144
+ if (c.includes('json'))
145
+ return 'json';
146
+ if (c.includes('html') || c === 'application/xhtml+xml')
147
+ return 'html';
148
+ if (c.startsWith('text/'))
149
+ return 'text';
150
+ return 'none';
151
+ }
152
+ function legKey(leg) {
153
+ return `${leg.side}:${leg.index}`;
154
+ }
155
+ function isTokenLeg(leg) {
156
+ return (leg.template === 'bsv21' ||
157
+ leg.basket === BSV21_BASKET ||
158
+ !!leg.tokenId ||
159
+ !!leg.tags?.some((t) => t.startsWith('bsv21:')));
160
+ }
161
+ function tagFrom(tags, key) {
162
+ return tags?.find((t) => t.startsWith(`${key}:`))?.slice(key.length + 1);
163
+ }
164
+ /**
165
+ * Format BSV21 base-unit amount with decimals.
166
+ * amt is always the inscription integer string — never output satoshis.
167
+ */
168
+ function formatTokenAmt(amt, dec) {
169
+ const neg = amt.startsWith('-');
170
+ const digits = (neg ? amt.slice(1) : amt).replace(/\D/g, '') || '0';
171
+ // Reject absurd values that look like we accidentally fed satoshi dust.
172
+ // (Callers must pass inscription amt only.)
173
+ if (dec == null || dec <= 0)
174
+ return neg ? `-${digits}` : digits;
175
+ const padded = digits.padStart(dec + 1, '0');
176
+ const whole = padded.slice(0, -dec) || '0';
177
+ const frac = padded.slice(-dec).replace(/0+$/, '');
178
+ const body = frac ? `${whole}.${frac}` : whole;
179
+ return neg ? `-${body}` : body;
180
+ }
181
+ /** Prefer live script decode over tags — external sends often have no tags. */
182
+ function tokenAmtFromOutput(out, leg) {
183
+ if (leg.tokenAmt)
184
+ return leg.tokenAmt;
185
+ const tagged = tagFrom(leg.tags, 'amt');
186
+ if (tagged)
187
+ return tagged;
188
+ if (out?.tokenAmt)
189
+ return out.tokenAmt;
190
+ if (out?.lockingScript) {
191
+ try {
192
+ const d = BSV21.decode(Script.fromHex(out.lockingScript));
193
+ if (d?.tokenData.amt)
194
+ return String(d.tokenData.amt);
195
+ }
196
+ catch {
197
+ // ignore
198
+ }
199
+ }
200
+ return undefined;
201
+ }
202
+ function parseAmt(a) {
203
+ if (!a)
204
+ return 0n;
205
+ try {
206
+ return BigInt(a.replace(/\D/g, '') || '0');
207
+ }
208
+ catch {
209
+ return 0n;
210
+ }
211
+ }
212
+ function isMintOp(op) {
213
+ if (!op)
214
+ return false;
215
+ const o = op.toLowerCase();
216
+ return (o === 'mint' ||
217
+ o === 'deploy+mint' ||
218
+ o === 'deploy+auth' ||
219
+ o === 'auth');
220
+ }
221
+ /**
222
+ * Build token Send / Burn panels.
223
+ *
224
+ * Conservation for approval UX:
225
+ * - Send / Move for re-issued amts when math is OK
226
+ * - Burn remainder when inputs > outputs (`inputs > outputs`)
227
+ * - Bad math (outputs > inputs): **Burn only** (all inputs), no Send/Move;
228
+ * caller sets mismatch and skips overlay verify
229
+ * Mint/deploy ops skip burn accounting.
230
+ */
231
+ function panelsFromTokenLegs(legs, outputs, contentUrls, consumed, tokenMeta) {
232
+ const panels = [];
233
+ let badMath = false;
234
+ const outByIndex = new Map(outputs.map((o) => [o.index, o]));
235
+ const outs = legs.filter((l) => {
236
+ if (l.side !== 'output' || l.isIndexerFee)
237
+ return false;
238
+ if (isTokenLeg(l))
239
+ return true;
240
+ const eo = outByIndex.get(l.index);
241
+ if (eo?.template === 'bsv21' || eo?.tokenAmt)
242
+ return true;
243
+ if (eo?.lockingScript) {
244
+ try {
245
+ return BSV21.decode(Script.fromHex(eo.lockingScript)) != null;
246
+ }
247
+ catch {
248
+ return false;
249
+ }
250
+ }
251
+ return false;
252
+ });
253
+ const ins = legs.filter((l) => l.side === 'input' && isTokenLeg(l));
254
+ const resolveTokenId = (leg, eo) => leg.tokenId ??
255
+ eo?.tokenId ??
256
+ tagFrom(leg.tags, 'bsv21') ??
257
+ ins.map((i) => i.tokenId ?? tagFrom(i.tags, 'bsv21')).find(Boolean);
258
+ const tokenIds = new Set();
259
+ for (const leg of [...ins, ...outs]) {
260
+ const id = resolveTokenId(leg, outByIndex.get(leg.index));
261
+ if (id && id !== 'deploy')
262
+ tokenIds.add(id);
263
+ }
264
+ for (const tokenId of tokenIds) {
265
+ const metaRow = tokenMeta[tokenId];
266
+ const tIns = ins.filter((i) => (i.tokenId ?? tagFrom(i.tags, 'bsv21')) === tokenId);
267
+ const tOuts = outs.filter((o) => {
268
+ const eo = outByIndex.get(o.index);
269
+ return resolveTokenId(o, eo) === tokenId;
270
+ });
271
+ const symFromIn = tIns.map((i) => i.tokenSym).find(Boolean);
272
+ const decFromIn = (() => {
273
+ const raw = tIns.map((i) => tagFrom(i.tags, 'dec')).find(Boolean);
274
+ if (raw == null)
275
+ return undefined;
276
+ const n = Number.parseInt(raw, 10);
277
+ return Number.isFinite(n) ? n : undefined;
278
+ })();
279
+ const iconFromIn = tIns.map((i) => tagFrom(i.tags, 'icon')).find(Boolean);
280
+ const sym = metaRow?.sym ??
281
+ symFromIn ??
282
+ tOuts
283
+ .map((o) => o.tokenSym ?? outByIndex.get(o.index)?.tokenSym)
284
+ .find(Boolean) ??
285
+ tagFrom(tIns[0]?.tags, 'sym') ??
286
+ 'tokens';
287
+ const dec = metaRow?.dec != null && Number.isFinite(metaRow.dec)
288
+ ? metaRow.dec
289
+ : decFromIn;
290
+ const iconUrl = metaRow?.iconUrl ??
291
+ (iconFromIn
292
+ ? (contentUrls[iconFromIn] ??
293
+ contentUrls[iconFromIn.replace('_', '.')] ??
294
+ undefined)
295
+ : undefined);
296
+ let inTotal = 0n;
297
+ for (const i of tIns) {
298
+ inTotal += parseAmt(i.tokenAmt ?? tagFrom(i.tags, 'amt'));
299
+ }
300
+ // First pass: totals only.
301
+ let sendTotal = 0n;
302
+ let changeTotal = 0n;
303
+ let mintLike = false;
304
+ const hasExternal = tOuts.some((o) => {
305
+ const eo = outByIndex.get(o.index);
306
+ return Boolean(o.recipient ?? eo?.recipient) && !(o.basket ?? eo?.basket);
307
+ });
308
+ const issuances = [];
309
+ for (const leg of tOuts) {
310
+ const eo = outByIndex.get(leg.index);
311
+ const basket = leg.basket ?? eo?.basket;
312
+ const recipient = leg.recipient ?? eo?.recipient;
313
+ const external = Boolean(recipient) && !basket;
314
+ const selfKeep = basket === BSV21_BASKET;
315
+ const op = leg.tokenOp ?? eo?.tokenOp;
316
+ if (isMintOp(op))
317
+ mintLike = true;
318
+ const amt = tokenAmtFromOutput(eo, leg);
319
+ if (!amt) {
320
+ consumed.add(legKey(leg));
321
+ continue;
322
+ }
323
+ const amtN = parseAmt(amt);
324
+ if (op?.toLowerCase() === 'burn') {
325
+ consumed.add(legKey(leg));
326
+ continue;
327
+ }
328
+ if (selfKeep && hasExternal) {
329
+ changeTotal += amtN;
330
+ consumed.add(legKey(leg));
331
+ continue;
332
+ }
333
+ if (!external && !selfKeep) {
334
+ consumed.add(legKey(leg));
335
+ continue;
336
+ }
337
+ if (external)
338
+ sendTotal += amtN;
339
+ else
340
+ changeTotal += amtN;
341
+ issuances.push({ leg, eo, amt, amtN, external, recipient });
342
+ consumed.add(legKey(leg));
343
+ }
344
+ const outTotal = sendTotal + changeTotal;
345
+ const tokenBadMath = !mintLike && inTotal > 0n && outTotal > inTotal;
346
+ if (tokenBadMath)
347
+ badMath = true;
348
+ if (tokenBadMath) {
349
+ // Burn only — over-issue Move/Send is irrelevant for approval.
350
+ panels.push({
351
+ variant: 'token',
352
+ tone: 'danger',
353
+ previewKind: iconUrl ? 'image' : 'none',
354
+ ...(iconUrl ? { imageUrl: iconUrl } : {}),
355
+ title: 'Burn',
356
+ subtitle: `${formatTokenAmt(inTotal.toString(), dec ?? 0)} ${sym}`,
357
+ meta: [
358
+ { key: 'Note', value: 'outputs > inputs' },
359
+ copyable('Token', tokenId),
360
+ ],
361
+ });
362
+ }
363
+ else {
364
+ for (const iss of issuances) {
365
+ const displayAmt = formatTokenAmt(iss.amt, dec ?? 0);
366
+ const meta = [];
367
+ if (iss.recipient && iss.external) {
368
+ meta.push(copyable('To', iss.recipient));
369
+ }
370
+ meta.push(copyable('Token', tokenId));
371
+ panels.push({
372
+ variant: 'token',
373
+ previewKind: iconUrl ? 'image' : 'none',
374
+ ...(iconUrl ? { imageUrl: iconUrl } : {}),
375
+ title: iss.external ? 'Send' : 'Move',
376
+ subtitle: `${displayAmt} ${sym}`,
377
+ meta,
378
+ });
379
+ }
380
+ if (!mintLike && inTotal > outTotal) {
381
+ const burned = inTotal - outTotal;
382
+ panels.push({
383
+ variant: 'token',
384
+ tone: 'danger',
385
+ previewKind: iconUrl ? 'image' : 'none',
386
+ ...(iconUrl ? { imageUrl: iconUrl } : {}),
387
+ title: 'Burn',
388
+ subtitle: `${formatTokenAmt(burned.toString(), dec ?? 0)} ${sym}`,
389
+ meta: [
390
+ { key: 'Note', value: 'inputs > outputs' },
391
+ copyable('Token', tokenId),
392
+ ],
393
+ });
394
+ }
395
+ }
396
+ }
397
+ for (const inp of ins) {
398
+ consumed.add(legKey(inp));
399
+ }
400
+ return { panels, badMath };
401
+ }
402
+ function panelFromValueLeg(leg) {
403
+ const sats = leg.satoshis;
404
+ if (!(sats > 0))
405
+ return undefined;
406
+ // Overlay fee is shown once under indexerFee — never as Pay.
407
+ if (leg.isIndexerFee)
408
+ return undefined;
409
+ if (leg.tags?.includes('fee:overlay'))
410
+ return undefined;
411
+ if (leg.tags?.some((t) => t.startsWith('indexer-fee')))
412
+ return undefined;
413
+ if (leg.side === 'output' && leg.template === 'lock') {
414
+ const meta = [];
415
+ if (leg.lockUntilHeight != null) {
416
+ meta.push({
417
+ key: 'Until',
418
+ value: `height ${leg.lockUntilHeight.toLocaleString('en-US')}`,
419
+ });
420
+ }
421
+ return {
422
+ variant: 'value',
423
+ previewKind: 'none',
424
+ valueIcon: 'lock',
425
+ amountSats: sats,
426
+ title: 'Lock',
427
+ subtitle: formatSatsFull(sats),
428
+ meta,
429
+ };
430
+ }
431
+ if (leg.side === 'input' &&
432
+ (leg.basket === LOCK_BASKET || leg.basket?.includes('lock'))) {
433
+ return {
434
+ variant: 'value',
435
+ previewKind: 'none',
436
+ valueIcon: 'unlock',
437
+ amountSats: sats,
438
+ title: 'Unlock',
439
+ subtitle: formatSatsFull(sats),
440
+ };
441
+ }
442
+ if (leg.side === 'output' &&
443
+ leg.template === 'p2pkh' &&
444
+ leg.recipient &&
445
+ !leg.basket &&
446
+ sats > 1) {
447
+ return {
448
+ variant: 'value',
449
+ previewKind: 'none',
450
+ valueIcon: 'pay',
451
+ amountSats: sats,
452
+ title: 'Pay',
453
+ subtitle: formatSatsFull(sats),
454
+ meta: [copyable('To', leg.recipient)],
455
+ };
456
+ }
457
+ return undefined;
458
+ }
459
+ function panelFromOrdinalEdge(edge, contentUrls) {
460
+ const assetName = edge.spend?.name ?? edge.create?.name;
461
+ const profileName = edge.create?.opnsProfileName;
462
+ const origin = edge.create?.origin ?? edge.spend?.origin;
463
+ const contentType = edge.create?.contentType ??
464
+ contentTypeFromTags(edge.create?.tags) ??
465
+ contentTypeFromTags(edge.spend?.tags);
466
+ let actionTitle = 'Update';
467
+ const meta = [];
468
+ switch (edge.operation) {
469
+ case 'transfer':
470
+ actionTitle = edge.create?.recipient ? 'Send' : 'Move';
471
+ if (edge.create?.recipient) {
472
+ meta.push(copyable('To', edge.create.recipient));
473
+ }
474
+ break;
475
+ case 'list': {
476
+ actionTitle = 'List';
477
+ const price = edge.create?.listingPriceSats;
478
+ if (price != null) {
479
+ meta.push({
480
+ key: 'Price',
481
+ value: `${price.toLocaleString('en-US')} sats`,
482
+ });
483
+ }
484
+ if (edge.create?.listingSeller) {
485
+ meta.push(copyable('Payout', edge.create.listingSeller));
486
+ }
487
+ break;
488
+ }
489
+ case 'cancel-listing':
490
+ actionTitle = 'Cancel listing';
491
+ break;
492
+ case 'purchase': {
493
+ actionTitle = 'Buy';
494
+ const price = edge.create?.listingPriceSats;
495
+ if (price != null) {
496
+ meta.push({
497
+ key: 'Price',
498
+ value: `${price.toLocaleString('en-US')} sats`,
499
+ });
500
+ }
501
+ break;
502
+ }
503
+ case 'inscribe':
504
+ actionTitle = 'Inscribe';
505
+ if (edge.create?.sealPending ||
506
+ edge.create?.sealKind === 'sigma' ||
507
+ edge.create?.template === 'sigma') {
508
+ meta.push({
509
+ key: 'Sign',
510
+ value: edge.create.sealKind === 'sigma' ||
511
+ edge.create.template === 'sigma'
512
+ ? 'BAP identity (Sigma)'
513
+ : 'Script data',
514
+ });
515
+ }
516
+ break;
517
+ case 'register':
518
+ actionTitle = 'Publish';
519
+ if (edge.create?.sealPending || edge.create?.sealKind === 'pushdrop') {
520
+ meta.push({ key: 'Sign', value: 'PushDrop identity bind' });
521
+ }
522
+ break;
523
+ case 'unregister':
524
+ actionTitle = 'Unpublish';
525
+ break;
526
+ case 'burn':
527
+ actionTitle = 'Burn';
528
+ break;
529
+ }
530
+ if (origin) {
531
+ meta.unshift(copyable('Origin', origin));
532
+ }
533
+ const isOpns = edge.operation === 'register' ||
534
+ edge.operation === 'unregister' ||
535
+ Boolean(profileName) ||
536
+ edge.spend?.basket === OPNS_BASKET ||
537
+ Boolean(edge.spend?.basket?.includes('opns'));
538
+ const avatarOrigin = edge.create?.opnsAvatarOrigin?.trim();
539
+ const avatarUrl = avatarOrigin && contentUrls[avatarOrigin]
540
+ ? contentUrls[avatarOrigin]
541
+ : undefined;
542
+ const originUrl = origin ? contentUrls[origin] : undefined;
543
+ if (isOpns) {
544
+ return {
545
+ variant: 'ordinal',
546
+ previewKind: 'opns',
547
+ ...(avatarUrl ? { imageUrl: avatarUrl } : {}),
548
+ title: actionTitle,
549
+ ...(assetName ? { subtitle: assetName } : {}),
550
+ ...(profileName ? { opnsHero: profileName } : {}),
551
+ meta,
552
+ };
553
+ }
554
+ const contentTypeResolved = edge.create?.contentType ?? contentType;
555
+ const previewKind = previewKindFromContentType(contentTypeResolved);
556
+ const inlineText = edge.create?.inscriptionText;
557
+ const inlineImage = edge.create?.inscriptionDataUrl;
558
+ const mediaUrl = inlineImage ?? originUrl;
559
+ return {
560
+ variant: 'ordinal',
561
+ previewKind: mediaUrl && previewKind === 'none' ? 'image' : previewKind,
562
+ ...(inlineText ? { previewText: inlineText } : {}),
563
+ ...(previewKind === 'image' || (previewKind === 'none' && mediaUrl)
564
+ ? mediaUrl
565
+ ? { imageUrl: mediaUrl }
566
+ : {}
567
+ : mediaUrl
568
+ ? { contentUrl: mediaUrl }
569
+ : {}),
570
+ title: actionTitle,
571
+ ...(assetName ? { subtitle: assetName } : {}),
572
+ meta,
573
+ };
574
+ }
575
+ //# sourceMappingURL=buildPromptIntent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildPromptIntent.js","sourceRoot":"","sources":["../src/buildPromptIntent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { type PermissionSchemeId } from '@1sat/types';
1
2
  import { type CreateOneSatPermissionModuleArgs } from './types';
2
3
  /**
3
4
  * Mirror of the `PermissionsModule` interface from `@bsv/wallet-toolbox`.
@@ -24,15 +25,19 @@ export interface OneSatPermissionModule extends PermissionsModule {
24
25
  dispose(): void;
25
26
  }
26
27
  /**
27
- * Build a permission module that gates 1Sat-asset signing via hashOutputs
28
- * commitments captured at createAction time.
28
+ * Build a permission module for one BRC-99 scheme id.
29
29
  *
30
- * Register the returned object in `WalletPermissionsManager` config:
30
+ * Register under that scheme in `WalletPermissionsManager`:
31
31
  *
32
- * const oneSat = createOneSatPermissionModule({ wallet, promptHandler });
32
+ * const modules = createAssetPermissionModules({ wallet, promptHandler });
33
33
  * new WalletPermissionsManager(wallet, adminOriginator, {
34
- * permissionModules: { '1sat': oneSat },
34
+ * permissionModules: modules,
35
35
  * });
36
36
  */
37
37
  export declare function createOneSatPermissionModule(args: CreateOneSatPermissionModuleArgs): OneSatPermissionModule;
38
+ /**
39
+ * Build one module instance per known asset scheme (`1sat`, `opns`, `bsv21`, `lock`).
40
+ * Hosts spread the result into `permissionModules`.
41
+ */
42
+ export declare function createAssetPermissionModules(args: Omit<CreateOneSatPermissionModuleArgs, 'schemeId' | 'baskets'>): Record<PermissionSchemeId, OneSatPermissionModule>;
38
43
  //# sourceMappingURL=createOneSatPermissionModule.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,KAAK,gCAAgC,EAErC,MAAM,SAAS,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7B,UAAU,CACT,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAA;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,gCAAgC,GACpC,sBAAsB,CA8ExB"}
1
+ {"version":3,"file":"createOneSatPermissionModule.d.ts","sourceRoot":"","sources":["../src/createOneSatPermissionModule.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,kBAAkB,EAIvB,MAAM,aAAa,CAAA;AAkBpB,OAAO,EACN,KAAK,gCAAgC,EAErC,MAAM,SAAS,CAAA;AAEhB;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IACjC,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAA;KAClB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC7B,UAAU,CACT,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAChE,wCAAwC;IACxC,OAAO,IAAI,IAAI,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,gCAAgC,GACpC,sBAAsB,CA+FxB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC3C,IAAI,EAAE,IAAI,CAAC,gCAAgC,EAAE,UAAU,GAAG,SAAS,CAAC,GAClE,MAAM,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAMpD"}