@humanagencyp/hap-core 0.8.1 → 0.8.3

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/index.d.mts CHANGED
@@ -401,6 +401,42 @@ interface AgentProfile {
401
401
  name?: string;
402
402
  version: string;
403
403
  description: string;
404
+ /**
405
+ * One line on what this version changed and why it matters to the person
406
+ * granting authority — written for them, not for a changelog.
407
+ *
408
+ * A grant pins the profile version it was signed against, so authorities
409
+ * issued before a newer version keep their old terms indefinitely and
410
+ * nothing prompts an upgrade. A version number alone does not motivate one:
411
+ * "email@0.4 → 0.5" says nothing, while "binds recipients, not only the
412
+ * message body" says what the older grant is not protecting.
413
+ *
414
+ * Belongs on the profile because the profile is what changed; a UI cannot
415
+ * know why 0.5 exists. Absent → surfaces show the version alone.
416
+ */
417
+ whatsNew?: string;
418
+ /**
419
+ * Whether receipts under this profile may be looked up BY THEIR CONTENT — a
420
+ * verifier holding the content supplies its hash and learns which receipts
421
+ * bind it, without needing a receipt id.
422
+ *
423
+ * OFF unless declared, and that default is the point. The lookup is a
424
+ * confirmation oracle: given a guess at the content it says whether that
425
+ * content was authorized. Where the bound content has low entropy this is
426
+ * disclosure, not verification — guessing a message body is hopeless,
427
+ * guessing `production` takes a second. It is the same enumeration hazard
428
+ * recorded for per-field commitments, arriving from the other direction.
429
+ *
430
+ * Enable only when the bound content is unguessable enough that producing it
431
+ * is equivalent to already having it: prose, an artifact URL, a whole record
432
+ * payload. Never for a binding over a short value drawn from a small set.
433
+ *
434
+ * Why it must exist at all: most consequential actions cannot carry their
435
+ * receipt id. A released build was built before the receipt existed, a
436
+ * content-addressed artifact would change identity if the id were added, and
437
+ * a forwarded message has usually lost the footer that carried it.
438
+ */
439
+ receipt_lookup?: boolean;
404
440
  /**
405
441
  * v0.3 frame schema (deprecated, kept for backward compat).
406
442
  * Used when boundsSchema is not present.
package/dist/index.d.ts CHANGED
@@ -401,6 +401,42 @@ interface AgentProfile {
401
401
  name?: string;
402
402
  version: string;
403
403
  description: string;
404
+ /**
405
+ * One line on what this version changed and why it matters to the person
406
+ * granting authority — written for them, not for a changelog.
407
+ *
408
+ * A grant pins the profile version it was signed against, so authorities
409
+ * issued before a newer version keep their old terms indefinitely and
410
+ * nothing prompts an upgrade. A version number alone does not motivate one:
411
+ * "email@0.4 → 0.5" says nothing, while "binds recipients, not only the
412
+ * message body" says what the older grant is not protecting.
413
+ *
414
+ * Belongs on the profile because the profile is what changed; a UI cannot
415
+ * know why 0.5 exists. Absent → surfaces show the version alone.
416
+ */
417
+ whatsNew?: string;
418
+ /**
419
+ * Whether receipts under this profile may be looked up BY THEIR CONTENT — a
420
+ * verifier holding the content supplies its hash and learns which receipts
421
+ * bind it, without needing a receipt id.
422
+ *
423
+ * OFF unless declared, and that default is the point. The lookup is a
424
+ * confirmation oracle: given a guess at the content it says whether that
425
+ * content was authorized. Where the bound content has low entropy this is
426
+ * disclosure, not verification — guessing a message body is hopeless,
427
+ * guessing `production` takes a second. It is the same enumeration hazard
428
+ * recorded for per-field commitments, arriving from the other direction.
429
+ *
430
+ * Enable only when the bound content is unguessable enough that producing it
431
+ * is equivalent to already having it: prose, an artifact URL, a whole record
432
+ * payload. Never for a binding over a short value drawn from a small set.
433
+ *
434
+ * Why it must exist at all: most consequential actions cannot carry their
435
+ * receipt id. A released build was built before the receipt existed, a
436
+ * content-addressed artifact would change identity if the id were added, and
437
+ * a forwarded message has usually lost the footer that carried it.
438
+ */
439
+ receipt_lookup?: boolean;
404
440
  /**
405
441
  * v0.3 frame schema (deprecated, kept for backward compat).
406
442
  * Used when boundsSchema is not present.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humanagencyp/hap-core",
3
- "version": "0.8.1",
3
+ "version": "0.8.3",
4
4
  "description": "Core types, cryptographic primitives, and verification logic for the Human Agency Protocol",
5
5
  "license": "MIT",
6
6
  "repository": {
package/src/types.ts CHANGED
@@ -412,6 +412,44 @@ export interface AgentProfile {
412
412
  version: string;
413
413
  description: string;
414
414
 
415
+ /**
416
+ * One line on what this version changed and why it matters to the person
417
+ * granting authority — written for them, not for a changelog.
418
+ *
419
+ * A grant pins the profile version it was signed against, so authorities
420
+ * issued before a newer version keep their old terms indefinitely and
421
+ * nothing prompts an upgrade. A version number alone does not motivate one:
422
+ * "email@0.4 → 0.5" says nothing, while "binds recipients, not only the
423
+ * message body" says what the older grant is not protecting.
424
+ *
425
+ * Belongs on the profile because the profile is what changed; a UI cannot
426
+ * know why 0.5 exists. Absent → surfaces show the version alone.
427
+ */
428
+ whatsNew?: string;
429
+
430
+ /**
431
+ * Whether receipts under this profile may be looked up BY THEIR CONTENT — a
432
+ * verifier holding the content supplies its hash and learns which receipts
433
+ * bind it, without needing a receipt id.
434
+ *
435
+ * OFF unless declared, and that default is the point. The lookup is a
436
+ * confirmation oracle: given a guess at the content it says whether that
437
+ * content was authorized. Where the bound content has low entropy this is
438
+ * disclosure, not verification — guessing a message body is hopeless,
439
+ * guessing `production` takes a second. It is the same enumeration hazard
440
+ * recorded for per-field commitments, arriving from the other direction.
441
+ *
442
+ * Enable only when the bound content is unguessable enough that producing it
443
+ * is equivalent to already having it: prose, an artifact URL, a whole record
444
+ * payload. Never for a binding over a short value drawn from a small set.
445
+ *
446
+ * Why it must exist at all: most consequential actions cannot carry their
447
+ * receipt id. A released build was built before the receipt existed, a
448
+ * content-addressed artifact would change identity if the id were added, and
449
+ * a forwarded message has usually lost the footer that carried it.
450
+ */
451
+ receipt_lookup?: boolean;
452
+
415
453
  /**
416
454
  * v0.3 frame schema (deprecated, kept for backward compat).
417
455
  * Used when boundsSchema is not present.