@vess-id/ai-identity 0.16.0-alpha.2 → 0.16.0-alpha.21

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 (109) hide show
  1. package/dist/agent/agent-did-manager.d.ts +48 -1
  2. package/dist/agent/agent-did-manager.d.ts.map +1 -1
  3. package/dist/client.d.ts +2 -2
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/config/index.d.ts +54 -0
  6. package/dist/config/index.d.ts.map +1 -1
  7. package/dist/did/agent.d.ts +7 -1
  8. package/dist/did/agent.d.ts.map +1 -1
  9. package/dist/identity/user-identity-manager.d.ts +55 -1
  10. package/dist/identity/user-identity-manager.d.ts.map +1 -1
  11. package/dist/index.d.mts +1336 -22738
  12. package/dist/index.d.ts +25 -14
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +30496 -3235
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.mjs +30482 -3233
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/registry/action-registry-json.d.ts +54 -22447
  19. package/dist/registry/action-registry-json.d.ts.map +1 -1
  20. package/dist/registry/action-registry.d.ts +34 -0
  21. package/dist/registry/action-registry.d.ts.map +1 -1
  22. package/dist/registry/action-risk.d.ts +64 -18
  23. package/dist/registry/action-risk.d.ts.map +1 -1
  24. package/dist/registry/action-summary.d.ts +23 -0
  25. package/dist/registry/action-summary.d.ts.map +1 -1
  26. package/dist/registry/index.d.ts +3 -3
  27. package/dist/registry/index.d.ts.map +1 -1
  28. package/dist/registry/providers.d.ts +22 -1
  29. package/dist/registry/providers.d.ts.map +1 -1
  30. package/dist/registry/resource-types.d.ts +17 -4
  31. package/dist/registry/resource-types.d.ts.map +1 -1
  32. package/dist/resolver/approval-time-resolution.d.ts +72 -0
  33. package/dist/resolver/approval-time-resolution.d.ts.map +1 -0
  34. package/dist/resolver/canonical-resource-id.d.ts +13 -0
  35. package/dist/resolver/canonical-resource-id.d.ts.map +1 -1
  36. package/dist/resolver/hierarchical-match.d.ts +60 -0
  37. package/dist/resolver/hierarchical-match.d.ts.map +1 -0
  38. package/dist/resolver/salient-digest.d.ts +48 -0
  39. package/dist/resolver/salient-digest.d.ts.map +1 -0
  40. package/dist/resolver/target-resolver.d.ts +25 -0
  41. package/dist/resolver/target-resolver.d.ts.map +1 -1
  42. package/dist/tool/tool-manager.d.ts.map +1 -1
  43. package/dist/types/connector-plugin.d.ts +72 -2
  44. package/dist/types/connector-plugin.d.ts.map +1 -1
  45. package/dist/types/grant.d.ts +27 -4
  46. package/dist/types/grant.d.ts.map +1 -1
  47. package/dist/types/intent.d.ts +2 -2
  48. package/dist/types/intent.d.ts.map +1 -1
  49. package/dist/types/permission-mode.d.ts +1 -1
  50. package/dist/types/permission-mode.d.ts.map +1 -1
  51. package/dist/types/permission-vc.d.ts +94 -0
  52. package/dist/types/permission-vc.d.ts.map +1 -1
  53. package/dist/types/target-binding.d.ts +29 -1
  54. package/dist/types/target-binding.d.ts.map +1 -1
  55. package/dist/types/vc.d.ts +11 -1
  56. package/dist/types/vc.d.ts.map +1 -1
  57. package/dist/utils/sdjwt-client.d.ts +242 -5
  58. package/dist/utils/sdjwt-client.d.ts.map +1 -1
  59. package/dist/utils/sdjwt-disclosure.d.ts.map +1 -1
  60. package/dist/vc/api-vc-manager.d.ts +5 -0
  61. package/dist/vc/api-vc-manager.d.ts.map +1 -1
  62. package/dist/vc/vc-manager.d.ts.map +1 -1
  63. package/dist/vp/vp-manager.d.ts +35 -0
  64. package/dist/vp/vp-manager.d.ts.map +1 -1
  65. package/package.json +14 -3
  66. package/dist/constraint/__tests__/fixtures/constraint.fixtures.d.ts +0 -56
  67. package/dist/constraint/__tests__/fixtures/constraint.fixtures.d.ts.map +0 -1
  68. package/dist/internal-signature/__tests__/canonical.spec.d.ts +0 -2
  69. package/dist/internal-signature/__tests__/canonical.spec.d.ts.map +0 -1
  70. package/dist/internal-signature/__tests__/signer-roundtrip.spec.d.ts +0 -2
  71. package/dist/internal-signature/__tests__/signer-roundtrip.spec.d.ts.map +0 -1
  72. package/dist/internal-signature/__tests__/signer.spec.d.ts +0 -2
  73. package/dist/internal-signature/__tests__/signer.spec.d.ts.map +0 -1
  74. package/dist/monitoring/metrics-manager.d.ts +0 -74
  75. package/dist/monitoring/metrics-manager.d.ts.map +0 -1
  76. package/dist/policy/__tests__/cedar-engine.spec.d.ts +0 -17
  77. package/dist/policy/__tests__/cedar-engine.spec.d.ts.map +0 -1
  78. package/dist/policy/__tests__/cedar-entities.spec.d.ts +0 -14
  79. package/dist/policy/__tests__/cedar-entities.spec.d.ts.map +0 -1
  80. package/dist/policy/__tests__/decision-enum.spec.d.ts +0 -16
  81. package/dist/policy/__tests__/decision-enum.spec.d.ts.map +0 -1
  82. package/dist/registry/__tests__/action-input-validator.spec.d.ts +0 -10
  83. package/dist/registry/__tests__/action-input-validator.spec.d.ts.map +0 -1
  84. package/dist/registry/__tests__/action-registry-freebusy.spec.d.ts +0 -13
  85. package/dist/registry/__tests__/action-registry-freebusy.spec.d.ts.map +0 -1
  86. package/dist/registry/__tests__/action-registry-inbox.spec.d.ts +0 -9
  87. package/dist/registry/__tests__/action-registry-inbox.spec.d.ts.map +0 -1
  88. package/dist/registry/__tests__/action-registry-scheduling.spec.d.ts +0 -13
  89. package/dist/registry/__tests__/action-registry-scheduling.spec.d.ts.map +0 -1
  90. package/dist/registry/__tests__/action-registry-validation.spec.d.ts +0 -13
  91. package/dist/registry/__tests__/action-registry-validation.spec.d.ts.map +0 -1
  92. package/dist/registry/__tests__/action-risk-registry-driven.spec.d.ts +0 -15
  93. package/dist/registry/__tests__/action-risk-registry-driven.spec.d.ts.map +0 -1
  94. package/dist/registry/__tests__/action-risk.spec.d.ts +0 -17
  95. package/dist/registry/__tests__/action-risk.spec.d.ts.map +0 -1
  96. package/dist/registry/__tests__/guidance-examples.spec.d.ts +0 -2
  97. package/dist/registry/__tests__/guidance-examples.spec.d.ts.map +0 -1
  98. package/dist/registry/__tests__/high-risk-resource-binding-invariant.spec.d.ts +0 -30
  99. package/dist/registry/__tests__/high-risk-resource-binding-invariant.spec.d.ts.map +0 -1
  100. package/dist/registry/__tests__/reauth-constants.spec.d.ts +0 -2
  101. package/dist/registry/__tests__/reauth-constants.spec.d.ts.map +0 -1
  102. package/dist/types/__tests__/cedar-policy.spec.d.ts +0 -8
  103. package/dist/types/__tests__/cedar-policy.spec.d.ts.map +0 -1
  104. package/dist/types/__tests__/permission-vc-v3.spec.d.ts +0 -9
  105. package/dist/types/__tests__/permission-vc-v3.spec.d.ts.map +0 -1
  106. package/dist/types/__tests__/phase1-vc-factory.spec.d.ts +0 -9
  107. package/dist/types/__tests__/phase1-vc-factory.spec.d.ts.map +0 -1
  108. package/dist/types/__tests__/policy-ref.spec.d.ts +0 -9
  109. package/dist/types/__tests__/policy-ref.spec.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"action-registry-json.d.ts","sourceRoot":"","sources":["../../src/registry/action-registry-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAu/G3B,CAAA"}
1
+ {"version":3,"file":"action-registry-json.d.ts","sourceRoot":"","sources":["../../src/registry/action-registry-json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAY,MAAM,mBAAmB,CAAA;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D;;;;;;;;;;;;;;GAcG;AACH,KAAK,mBAAmB,GAAG,UAAU,GAAG;IACtC,YAAY,EAAE,WAAW,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IACrD,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3C,eAAe,EAAE,cAAc,GAAG;QAAE,WAAW,EAAE,WAAW,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAA;KAAE,CAAA;CAC9F,CAAA;AAED;;;;;;;GAOG;AACH,KAAK,uBAAuB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,cAAc,CAAC,GAAG;IAChF,OAAO,EAAE,mBAAmB,EAAE,CAAA;IAC9B,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAA;CAC1D,CAAA;AA+CD,eAAO,MAAM,eAAe,EAAE,uBAk4d7B,CAAA"}
@@ -11,12 +11,38 @@ export interface ActionMeta {
11
11
  resource_type: ResourceType;
12
12
  required_relations: Relation[];
13
13
  required_scopes: string[];
14
+ /**
15
+ * OAuth provider 別の required_scopes。同じ action を複数の provider 接続で
16
+ * 実行できる場合(calendar.* が Google / Microsoft 双方で動く)に、実行
17
+ * provider のスコープ集合を引くためのマップ。キーは OAuth provider 名
18
+ * ('google' | 'microsoft' など。action 接頭辞の 'calendar' ではない)。
19
+ * 該当キーが無い provider は `required_scopes` にフォールバックする。
20
+ *
21
+ * 値は必ず 1 要素にすること。消費側の判定が grant-suggestion は `.some()`、
22
+ * oauth.service / tool-auth は `.every()` と割れているため、2 要素以上書くと
23
+ * 「grant には提案されるが call_tool は insufficient_scope」という
24
+ * registry checklist が警告する承認不整合になる。
25
+ */
26
+ required_scopes_by_provider?: Record<string, string[]>;
14
27
  capability?: string;
15
28
  input_schema?: JsonSchema;
16
29
  constraints?: Record<string, unknown>;
17
30
  effects?: string[];
18
31
  risk: RiskLevel;
19
32
  target_bindings?: TargetBindings;
33
+ /**
34
+ * Approval-critical ("salient") parameter names (P1 / #1205). The fields whose
35
+ * values ARE the substance of the human's OOB approval — recipients, subject,
36
+ * body, target owner/repo/id, file path, channel, command, etc. — as opposed to
37
+ * incidental params (pagination, format flags, idempotency keys). The issuer
38
+ * hashes exactly these at claimVC and bakes the digest into the signed VC; the
39
+ * PEP re-hashes the executed params and refuses adoption on mismatch. Every
40
+ * approval-gated (high/critical-risk) action MUST declare a non-empty set —
41
+ * enforced by `__tests__/salient-completeness.spec.ts`. Consumed via
42
+ * `salientFieldsFor()` in `resolver/salient-digest.ts` (the single source of
43
+ * truth, so a future Cedar policy override can layer on top).
44
+ */
45
+ approval_salient_fields?: string[];
20
46
  version: string;
21
47
  }
22
48
  export interface CapabilityMeta {
@@ -62,6 +88,14 @@ export declare function indexActions(reg: ActionRegistry): Map<string, ActionMet
62
88
  export declare function indexCapabilities(reg: ActionRegistry): Map<string, CapabilityMeta>;
63
89
  /** 指定アクションの required_scopes を取得(無ければ空配列) */
64
90
  export declare function getRequiredScopes(regIndex: Map<string, ActionMeta>, action: string): string[];
91
+ /**
92
+ * 実行 provider に対応する required_scopes を取得する。
93
+ * `required_scopes_by_provider` に該当キーが無ければ `required_scopes` を返すため、
94
+ * provider を渡さない既存呼び出しと同じ結果になる。
95
+ *
96
+ * @param provider OAuth provider 名('google' | 'microsoft' など)
97
+ */
98
+ export declare function getRequiredScopesForProvider(regIndex: Map<string, ActionMeta>, action: string, provider?: string): string[];
65
99
  /** 指定アクションの required_relations(OR解釈)を取得(無ければ空配列) */
66
100
  export declare function getRequiredRelations(regIndex: Map<string, ActionMeta>, action: string): Relation[];
67
101
  //# sourceMappingURL=action-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../src/registry/action-registry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,CAAA;AACzB,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEzE,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,2CAA2C;AAC3C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,YAAY,CAAA;IAC3B,kBAAkB,EAAE,QAAQ,EAAE,CAAA;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,eAAe,CAAC,EAAE,cAAc,CAAA;IAChC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;CAChC;AAID,OAAO,GAAqB,MAAM,KAAK,CAAA;AA+EvC;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,GAAG,CAc/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACzD,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CA+DA;AAiBD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAW1F;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAOzE;AAID,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAIzE;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAIlF;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7F;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,MAAM,EAAE,MAAM,GACb,QAAQ,EAAE,CAEZ"}
1
+ {"version":3,"file":"action-registry.d.ts","sourceRoot":"","sources":["../../src/registry/action-registry.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,YAAY,EAAE,SAAS,EAAE,CAAA;AACzB,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAA;AAEzE,4DAA4D;AAC5D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAA;AAEjC,2CAA2C;AAC3C,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,YAAY,CAAA;IAC3B,kBAAkB,EAAE,QAAQ,EAAE,CAAA;IAC9B,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB;;;;;;;;;;;OAWG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IACtD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,UAAU,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,eAAe,CAAC,EAAE,cAAc,CAAA;IAChC;;;;;;;;;;;OAWG;IACH,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAA;IAClC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,UAAU,EAAE,CAAA;IACrB,YAAY,CAAC,EAAE,cAAc,EAAE,CAAA;CAChC;AAID,OAAO,GAAqB,MAAM,KAAK,CAAA;AAgHvC;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,GAAG,CAc/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,OAAO,GAAG;IACzD,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAkEA;AAiBD;;;GAGG;AACH,wBAAsB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAW1F;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAOzE;AAID,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAIzE;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAIlF;AAED,4CAA4C;AAC5C,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7F;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAYV;AAED,oDAAoD;AACpD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,EACjC,MAAM,EAAE,MAAM,GACb,QAAQ,EAAE,CAEZ"}
@@ -3,26 +3,38 @@
3
3
  *
4
4
  * Spec refs:
5
5
  * - docs/specs/2026-05-27-action-risk-registry-driven.md §3
6
- * - docs/specs/2026-05-24-cedar-unification-design.md §7.2 (original Phase 1
7
- * suffix heuristic, now retained only as a fallback)
6
+ * - docs/specs/2026-05-24-cedar-unification-design.md §7.2 (the original
7
+ * Phase 1 suffix heuristic, removed — see below)
8
8
  *
9
9
  * Resolution order:
10
10
  * 1. If the action exists in ACTION_REGISTRY and declares a `risk`, return
11
11
  * that value — ACTION_REGISTRY is the single source of truth (matching
12
12
  * CLAUDE.md). This is what Cedar `context.action.risk_level` binds to,
13
13
  * so a developer's hand-curated `risk: 'high'` is now authoritative.
14
- * 2. Otherwise (unknown / not-yet-registered action) fall back to the
15
- * deterministic suffix heuristic below:
16
- * - write/send/delete-class suffixes → 'high'
17
- * - read/list/get-class suffixes → 'low'
18
- * - everything else → 'medium' (fail-safe)
14
+ * 2. Otherwise the action is one we have never registered and therefore
15
+ * cannot judge: return UNCLASSIFIED_ACTION_RISK ('high', fail-closed).
16
+ * **The name is not evidence.** We deliberately do NOT infer risk from
17
+ * the shape of the action string.
19
18
  *
20
- * The suffix heuristic classifies by the **last dotted segment** of the
21
- * action name (e.g., `gmail.message.send` → `send` → 'high').
19
+ * The suffix heuristic is gone. It used to read the last dotted segment and
20
+ * call read/list/get-class names 'low', which meant an action nobody
21
+ * registered was auto-permitted by the Cedar default tier's unconditional
22
+ * low/medium clause with no approval prompt — purely because it was *named*
23
+ * like a read. That is anti-correlated with safety: an unreviewed action got
24
+ * less scrutiny than a reviewed one. It was reachable in practice, not just
25
+ * in theory: `gmail.message.read`/`search`/`send`/`delete`/`trash` are
26
+ * registered but `gmail.message.list` is NOT, and a `list` is exactly what an
27
+ * LLM emits over MCP. #1285 had already made unclassifiable names fail closed;
28
+ * read-shaped names were the remaining inconsistency, and now every registry
29
+ * miss lands on the same fail-closed answer.
30
+ *
31
+ * This is not lost capability: the way to declare an action low-risk is to
32
+ * register it, which is reviewable, greppable, and exactly what all 172
33
+ * current actions already do.
22
34
  *
23
35
  * Lookup is case-insensitive: input is lowercased before the registry Map
24
36
  * lookup (registry keys are all lowercase), so `gmail.message.TRASH` still
25
- * hits the registry `high` instead of mis-falling-back to the suffix value.
37
+ * hits the registry `high`.
26
38
  */
27
39
  /**
28
40
  * Risk tiers an action can declare. Aligned with the registry JSON-schema
@@ -37,27 +49,61 @@
37
49
  * `'critical'` at least as strictly as `'high'` — never compare
38
50
  * `=== 'high'` alone.
39
51
  *
40
- * The suffix heuristic never yields 'critical' (only a registry entry can
41
- * declare it); no registry action uses it yet as of 2026-07-05.
52
+ * Only a registry entry can declare 'critical'; the unregistered fallback
53
+ * never yields it.
42
54
  */
43
55
  export type ActionRisk = 'low' | 'medium' | 'high' | 'critical';
56
+ /**
57
+ * Risk assigned to an action we cannot classify — any action absent from
58
+ * ACTION_REGISTRY, plus malformed / empty input.
59
+ *
60
+ * This is `'high'`, not `'medium'`, and the distinction is load-bearing.
61
+ * `'medium'` reads like a cautious middle ground but is on the permissive
62
+ * side of every gate downstream:
63
+ *
64
+ * - The Cedar default policy permits `["low","medium"]` unconditionally,
65
+ * without consulting `context.approval.granted`
66
+ * (`api/src/grant/services/system-policy.service.ts:105`), so a medium
67
+ * action is approved with no prompt at all.
68
+ * - Gate-2 only pins an invocation to its delegated resource when the risk
69
+ * is high or critical (`api/src/tool/services/tool-executor.service.ts`),
70
+ * so a medium action also escapes resource narrowing.
71
+ *
72
+ * An action nobody registered therefore got *less* scrutiny than one that was.
73
+ * The rest of the codebase already treats unknown as dangerous — agentd
74
+ * (`agentd/src/core/execution-engine.ts`), the approval UI's own table, the
75
+ * remote-mcp tool gate, and the approval-request validator all reject or
76
+ * escalate. This constant brings the SDK resolver in line. (#1285)
77
+ *
78
+ * The same reasoning is why the read/list-suffix branch was removed: an
79
+ * unregistered `gmail.message.list` resolved to 'low' and hit that very same
80
+ * unconditional permit clause, so it was auto-approved with no prompt while
81
+ * an identically unregistered `unknown.connector.sync` correctly required one.
82
+ * The only thing separating them was how the name read. Every registry miss
83
+ * now lands here.
84
+ */
85
+ export declare const UNCLASSIFIED_ACTION_RISK: ActionRisk;
44
86
  /**
45
87
  * Resolve the risk level for a dotted action name.
46
88
  *
47
89
  * Registry-driven: a registered action returns its declared `risk`
48
- * (authoritative); unknown actions fall back to the suffix heuristic.
90
+ * (authoritative). Anything else is an action we have never registered and
91
+ * therefore cannot judge, so it fails closed at UNCLASSIFIED_ACTION_RISK —
92
+ * regardless of how the name reads.
49
93
  *
50
94
  * Examples:
51
95
  * resolveActionRisk('os.secret.read') → 'high' (registry)
96
+ * resolveActionRisk('slack.channel.read') → 'low' (registry)
52
97
  * resolveActionRisk('gmail.message.trash') → 'high' (registry)
53
98
  * resolveActionRisk('jira.issue.transition') → 'high' (registry)
54
- * resolveActionRisk('unknown.connector.send') → 'high' (suffix fallback)
55
- * resolveActionRisk('unknown.connector.read') → 'low' (suffix fallback)
56
- * resolveActionRisk('unknown.connector.sync') → 'medium'(suffix fallback)
99
+ * resolveActionRisk('unknown.connector.send') → 'high' (unregistered)
100
+ * resolveActionRisk('gmail.message.list') → 'high' (unregistered —
101
+ * a read-shaped name is
102
+ * not a low-risk claim)
103
+ * resolveActionRisk('unknown.connector.sync') → 'high' (unregistered, #1285)
57
104
  *
58
105
  * Defensive defaults:
59
- * - empty / falsy input → 'medium' (fail-safe; never throws)
60
- * - unknown suffix → 'medium'
106
+ * - empty / falsy input → 'high' (fail-closed; never throws)
61
107
  */
62
108
  export declare function resolveActionRisk(action: string | undefined | null): ActionRisk;
63
109
  //# sourceMappingURL=action-risk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-risk.d.ts","sourceRoot":"","sources":["../../src/registry/action-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;AAiE/D;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,CAM/E"}
1
+ {"version":3,"file":"action-risk.d.ts","sourceRoot":"","sources":["../../src/registry/action-risk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,wBAAwB,EAAE,UAAmB,CAAA;AAmB1D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,CAW/E"}
@@ -1,7 +1,29 @@
1
1
  export interface ActionParamDisplay {
2
2
  label: string;
3
3
  value: string;
4
+ /** Original raw value before enrichment (UUID等). undefined if not enriched. */
5
+ rawValue?: string;
4
6
  }
7
+ /**
8
+ * displayFields 1 項目の表示元。
9
+ *
10
+ * - `key` — params[key] を読む単純なケース (string / number など)
11
+ * - `extract` — alias / nested / null など複合 shape を吸収する場合 (jira.* など)
12
+ *
13
+ * extract を指定したケースは key を併用してもよい (fallback として使われる)。
14
+ * 戻り値が undefined / null (Unassign 表現の null は除く) のときは表示しない。
15
+ */
16
+ interface ActionDisplayField {
17
+ label: string;
18
+ key?: string;
19
+ extract?: (params: Record<string, any>) => unknown;
20
+ }
21
+ interface ActionDisplayConfig {
22
+ summaryTemplate: (params: Record<string, any>) => string;
23
+ displayFields: ActionDisplayField[];
24
+ }
25
+ export declare const ACTION_DISPLAY_CONFIGS: Record<string, ActionDisplayConfig>;
26
+ export declare const SUMMARY_TEMPLATE_PENDING_PRODUCT_WORDING: Record<string, string>;
5
27
  /**
6
28
  * actionParams の JSON 文字列として許容する最大バイト数 (10,000 文字)。
7
29
  * この定数自体はサイズ検証を行わない。検証 (超過時に BadRequestException) は
@@ -11,4 +33,5 @@ export interface ActionParamDisplay {
11
33
  export declare const ACTION_PARAMS_MAX_SIZE = 10000;
12
34
  export declare function generateActionSummary(action: string, params: Record<string, any> | undefined | null, maxLength?: number): string;
13
35
  export declare function generateActionParamsDisplay(action: string, params: Record<string, any> | undefined | null): ActionParamDisplay[];
36
+ export {};
14
37
  //# sourceMappingURL=action-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"action-summary.d.ts","sourceRoot":"","sources":["../../src/registry/action-summary.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAigBD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAA;AAE5C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,EAC9C,SAAS,SAAK,GACb,MAAM,CAeR;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAC7C,kBAAkB,EAAE,CAyBtB"}
1
+ {"version":3,"file":"action-summary.d.ts","sourceRoot":"","sources":["../../src/registry/action-summary.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;GAQG;AACH,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,CAAA;CACnD;AAED,UAAU,mBAAmB;IAC3B,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,MAAM,CAAA;IACxD,aAAa,EAAE,kBAAkB,EAAE,CAAA;CACpC;AA4HD,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAg5FtE,CAAA;AAcD,eAAO,MAAM,wCAAwC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6C3E,CAAA;AAmOD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAAS,CAAA;AAE5C,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,EAC9C,SAAS,SAAK,GACb,MAAM,CAiBR;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,GAC7C,kBAAkB,EAAE,CA8BtB"}
@@ -1,12 +1,12 @@
1
1
  export type { ReBACChecker, ABACPolicyEngine, AbacInput, AbacDecision, CredentialStore, CredentialRef, VpVerifier, VerifiedVcClaims, ResourceRef, ResourceScope, DecisionTrace, PlanDelegationInput, PlanDelegationResult, CheckPermissionInput, CheckPermissionResult, } from './access-orchestrator';
2
2
  export { resolveActionsFromSelection, planDelegationForVC, checkPermissionWithVP, AllowAllAbac, SimpleRebac, DummyCreds, DummyVpVerifier, } from './access-orchestrator';
3
- export { Relation, ResourceType, JsonSchema, ActionMeta, CapabilityMeta, ActionRegistry, createAjv, validateRegistryObject, loadActionRegistryFromFile, loadActionRegistryFromObject, indexActions, indexCapabilities, getRequiredScopes, getRequiredRelations, } from './action-registry';
3
+ export { type Relation, type ResourceType, type JsonSchema, type ActionMeta, type CapabilityMeta, type ActionRegistry, createAjv, validateRegistryObject, loadActionRegistryFromFile, loadActionRegistryFromObject, indexActions, indexCapabilities, getRequiredScopes, getRequiredScopesForProvider, getRequiredRelations, } from './action-registry';
4
4
  export * from "./action-registry-json";
5
5
  export * from "./resource-type-labels";
6
6
  export { validateActionInput } from './action-input-validator';
7
7
  export type { ValidateActionInputResult } from './action-input-validator';
8
- export { CanonicalProvider, AnyProvider, CANONICAL_PROVIDERS, PROVIDER_ALIASES, resolveProvider, isCanonicalProvider, isValidProvider, } from './providers';
9
- export { RESOURCE_TYPES, UnifiedResourceType, LEGACY_RESOURCE_TYPE_MAP, resolveResourceType, } from './resource-types';
8
+ export { type CanonicalProvider, type AnyProvider, CANONICAL_PROVIDERS, PROVIDER_ALIASES, resolveProvider, isCanonicalProvider, isValidProvider, } from './providers';
9
+ export { RESOURCE_TYPES, type UnifiedResourceType, LEGACY_RESOURCE_TYPE_MAP, resolveResourceType, } from './resource-types';
10
10
  export { canonicalizeAction, getActionAliases, getAllActionForms, isActionEquivalent, } from './action-aliases';
11
11
  export { VALID_MCP_ACTIONS, VALID_MCP_TOOLS, getAllValidMcpActionNames, getValidMcpActionNames, normalizeMcpActionName, } from './action-normalizer';
12
12
  export { REAUTH_REQUIRED_ACTION, APPROVAL_REQUIRED_ACTION, GATEWAY_ERROR_CODE, } from './reauth-constants';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,SAAS,EACT,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,cAAc,wBAAwB,CAAA;AAKtC,cAAc,wBAAwB,CAAA;AAMtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAGzE,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,eAAe,EACf,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,UAAU,EACV,eAAe,GAChB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,SAAS,EACT,sBAAsB,EACtB,0BAA0B,EAC1B,4BAA4B,EAC5B,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,cAAc,wBAAwB,CAAA;AAKtC,cAAc,wBAAwB,CAAA;AAMtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAA;AAGzE,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,eAAe,GAChB,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -4,7 +4,7 @@
4
4
  * All packages (API, remote-mcp, SDK) should import provider constants from here.
5
5
  */
6
6
  /** Canonical provider identifiers */
7
- export type CanonicalProvider = 'slack' | 'github' | 'gmail' | 'calendar' | 'jira' | 'hubspot' | 'os';
7
+ export type CanonicalProvider = 'slack' | 'github' | 'gmail' | 'calendar' | 'drive' | 'jira' | 'hubspot' | 'os';
8
8
  /** All valid provider identifiers */
9
9
  export type AnyProvider = CanonicalProvider;
10
10
  /** Ordered list of canonical providers */
@@ -29,4 +29,25 @@ export declare function isCanonicalProvider(value: string): value is CanonicalPr
29
29
  * Check if a string is a valid provider (canonical).
30
30
  */
31
31
  export declare function isValidProvider(value: string): value is AnyProvider;
32
+ /** OAuth プロバイダのインスタンス多重度。tool 名前空間(CANONICAL_PROVIDERS)ではなく
33
+ * oauth_tokens.provider と同じ語彙でキーを張る。設計 §9.1。 */
34
+ export type InstanceMode = 'single' | 'multi';
35
+ /** multi プロバイダが 2 本目を追加する方法。
36
+ * 'input' = authorize 前にホストを入力(Backlog: 認可 URL 自体がホスト依存)
37
+ * 'discover' = authorize 後にトークン応答から導出(Jira cloudId / Slack team_id) */
38
+ export type InstanceAddMode = 'input' | 'discover';
39
+ export type ProviderInstanceDeclaration = {
40
+ instance_mode: 'single';
41
+ } | {
42
+ instance_mode: 'multi';
43
+ add_mode: InstanceAddMode;
44
+ tenant_ref_pattern: string;
45
+ };
46
+ /** OAuth プロバイダのキー。SDK は api の OAuthProvider enum を import できない
47
+ * (依存の向きが api → SDK の一方向)ので、ここでリテラル union を持つ。
48
+ * api 側との一致は api の spec が実行時に固定する。
49
+ * 🔴 'backlog' は Backlog PR ④ で追加済み — enum + DB enum migration(1788100000000)と同一コミット(§9.1.1)。
50
+ * 🔴 'inbox'(INTERNAL_GRANT_PROVIDER)は OAuth プロバイダではないので入れない(§6.3)。 */
51
+ export type OAuthProviderKey = 'slack' | 'github' | 'google' | 'microsoft' | 'jira' | 'linear' | 'hubspot' | 'backlog';
52
+ export declare const PROVIDER_INSTANCE_MODES: Readonly<Record<OAuthProviderKey, ProviderInstanceDeclaration>>;
32
53
  //# sourceMappingURL=providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/registry/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;AAErG,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAA;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EAQlD,CAAA;AAEV,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAe,CAAA;AAExF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,oBAAoB,UAAQ,GAC3B,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEnE"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/registry/providers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qCAAqC;AACrC,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;AAE/G,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,iBAAiB,CAAA;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,mBAAmB,EAAE,SAAS,iBAAiB,EASlD,CAAA;AAEV,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAe,CAAA;AAExF;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,oBAAoB,UAAQ,GAC3B,MAAM,CAMR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAE7E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAEnE;AAMD;iDACiD;AACjD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAA;AAE7C;;wEAEwE;AACxE,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,UAAU,CAAA;AAElD,MAAM,MAAM,2BAA2B,GACnC;IAAE,aAAa,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,CAAA;AAErF;;;;wEAIwE;AACxE,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,MAAM,GACN,QAAQ,GACR,SAAS,GACT,SAAS,CAAA;AAIb,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAoBnG,CAAA"}
@@ -2,7 +2,8 @@
2
2
  * Unified ResourceType definitions — single source of truth.
3
3
  *
4
4
  * Format: `provider:resource` (e.g., 'slack:channel', 'github:repo')
5
- * For nested resources: `provider:service:resource` (e.g., 'google:drive:file')
5
+ * Two segments only (`provider:resource`); a third segment is NOT used (the former
6
+ * 'google:drive:file' placeholder was retired, design 2026-09-19 §6.3).
6
7
  */
7
8
  /** All known resource types in canonical `provider:resource` format */
8
9
  export declare const RESOURCE_TYPES: {
@@ -12,8 +13,6 @@ export declare const RESOURCE_TYPES: {
12
13
  readonly GITHUB_REPO: "github:repo";
13
14
  readonly GITHUB_ORG: "github:org";
14
15
  readonly GITHUB_ISSUE: "github:issue";
15
- readonly GOOGLE_DRIVE_FILE: "google:drive:file";
16
- readonly GOOGLE_DRIVE_FOLDER: "google:drive:folder";
17
16
  readonly GMAIL_THREAD: "gmail:thread";
18
17
  readonly GMAIL_LABEL: "gmail:label";
19
18
  readonly JIRA_PROJECT: "jira:project";
@@ -27,8 +26,22 @@ export declare const RESOURCE_TYPES: {
27
26
  readonly HUBSPOT_ENGAGEMENT: "hubspot:engagement";
28
27
  readonly HUBSPOT_WORKFLOW: "hubspot:workflow";
29
28
  readonly HUBSPOT_ACCOUNT: "hubspot:account";
29
+ readonly BACKLOG_SPACE: "backlog:space";
30
+ readonly BACKLOG_USER: "backlog:user";
31
+ readonly BACKLOG_PROJECT: "backlog:project";
32
+ readonly BACKLOG_ISSUE: "backlog:issue";
33
+ readonly BACKLOG_WIKI: "backlog:wiki";
34
+ readonly BACKLOG_DOCUMENT: "backlog:document";
35
+ readonly BACKLOG_REPOSITORY: "backlog:repository";
36
+ readonly BACKLOG_PULLREQUEST: "backlog:pullrequest";
37
+ readonly BACKLOG_TEAM: "backlog:team";
38
+ readonly BACKLOG_WATCHING: "backlog:watching";
39
+ readonly BACKLOG_NOTIFICATION: "backlog:notification";
30
40
  readonly OS_SECRET: "os:secret";
31
41
  readonly OS_PROCESS: "os:process";
42
+ readonly DRIVE_FILE: "drive:file";
43
+ readonly DRIVE_SHAREDDRIVE: "drive:shareddrive";
44
+ readonly DRIVE_ACCOUNT: "drive:account";
32
45
  readonly ANY: "*";
33
46
  };
34
47
  export type UnifiedResourceType = typeof RESOURCE_TYPES[keyof typeof RESOURCE_TYPES];
@@ -40,7 +53,7 @@ export declare const LEGACY_RESOURCE_TYPE_MAP: Readonly<Record<string, string>>;
40
53
  /**
41
54
  * Resolve a resource type string to its canonical form.
42
55
  *
43
- * Handles CamelCase (SlackChannel), legacy prefixes (gh:repo, drive:file),
56
+ * Handles CamelCase (SlackChannel), legacy prefixes (gh:repo),
44
57
  * and already-canonical formats (slack:channel).
45
58
  */
46
59
  export declare function resolveResourceType(resourceType: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-types.d.ts","sourceRoot":"","sources":["../../src/registry/resource-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uEAAuE;AACvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;CAwCjB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqCrE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"resource-types.d.ts","sourceRoot":"","sources":["../../src/registry/resource-types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,uEAAuE;AACvE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDjB,CAAA;AAEV,MAAM,MAAM,mBAAmB,GAAG,OAAO,cAAc,CAAC,MAAM,OAAO,cAAc,CAAC,CAAA;AAEpF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgDrE,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAEhE"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * Approval-time parameter resolution declarations (P1 / #1205, Step 4.6, HOLE 2).
3
+ *
4
+ * Some approval-salient parameters name a resource whose EXECUTION-EFFECTIVE
5
+ * value is a different string than what the approver typed — the server
6
+ * resolves it live at execution time. The canonical example is a Slack
7
+ * `channel`: the approver sees `#general` but the API acts on the native
8
+ * conversation id `C09…`, resolved via a LIVE Slack lookup whose name→id
9
+ * mapping is NOT stable (channels can be renamed/recreated).
10
+ *
11
+ * Hashing the NAME (what the human saw) fails to bind the value the API
12
+ * actually acts on, and re-resolving at execution time re-opens a TOCTOU
13
+ * window (the id behind `#general` can change after approval). The fix
14
+ * (plan Step 4.6, option c) is to resolve the execution-effective value ONCE
15
+ * at APPROVAL time and FREEZE it into the persisted actionParams, so the
16
+ * issuance digest, the PEP digest, and the connector all agree on the SAME
17
+ * resolved id — and execution-time normalization sees an already-id value and
18
+ * no-ops.
19
+ *
20
+ * This module is the SINGLE SOURCE OF TRUTH for WHICH (action, field) pairs are
21
+ * resolver-backed and by WHAT resolver kind. The actual resolution (a live API
22
+ * call needing an OAuth token) lives in the API layer
23
+ * (`ApprovalTimeParamResolverService`), which reads these declarations. Keeping
24
+ * the declaration here — beside `salientFieldsFor` — lets any participant reason
25
+ * about which salient fields are frozen-at-approval without importing API code.
26
+ */
27
+ /**
28
+ * Reserved, NON-salient key under which the frozen name→id mapping is recorded
29
+ * inside the persisted actionParams. It is intentionally NOT a declared salient
30
+ * field for any action, so {@link salientFieldsFor}-driven digests ignore it
31
+ * (canonicalization rule 1 selects only declared salient keys) and it never
32
+ * perturbs the frozen digest. It exists so the approval UI can still display the
33
+ * human-readable name while the bound/executed `channel` value is the id, and so
34
+ * the name→id decision is recorded for audit.
35
+ *
36
+ * Shape: `{ [field: string]: { name: string; id: string } }`.
37
+ */
38
+ export declare const RESOLVED_PARAMS_KEY: "__resolvedParams";
39
+ /**
40
+ * Return a SHALLOW copy of `params` with the reserved {@link RESOLVED_PARAMS_KEY}
41
+ * removed, for response-shaping when the raw actionParams are serialized OUT to a
42
+ * client (approval-detail / claim responses). Defense-in-depth (#1205 Step 4.6):
43
+ * every current display consumer already filters the key, but a future client
44
+ * that iterates `data.actionParams` directly should never see the internal
45
+ * name→id mapping.
46
+ *
47
+ * IMPORTANT — this is PURELY response-shaping. It must NEVER be applied to the
48
+ * PERSISTED value (the DB keeps the mapping for display-name rendering), and it
49
+ * has NO effect on the digest or the executed value, both of which read the
50
+ * stored entity — not the response DTO. The frozen `channel` id (and every other
51
+ * real param) is preserved verbatim; only the reserved metadata key is dropped.
52
+ *
53
+ * Passes through `null` / `undefined` unchanged so callers can use it inline on
54
+ * an optional column.
55
+ */
56
+ export declare function stripResolvedParams<T extends Record<string, unknown> | null | undefined>(params: T): T;
57
+ /** The kind of live resolution a resolver-backed field requires. */
58
+ export type ApprovalResolverKind = 'slack-channel';
59
+ /** A single resolver-backed field declaration for an action. */
60
+ export interface ResolverBackedField {
61
+ /** The actionParams key whose value is resolved+frozen at approval time. */
62
+ field: string;
63
+ /** Which resolver performs the name→id resolution. */
64
+ kind: ApprovalResolverKind;
65
+ }
66
+ /**
67
+ * Resolver-backed salient fields declared for `action`, or `undefined` when the
68
+ * action has none (the common case — most actions carry no live-resolved
69
+ * fields, so approval-time resolution is skipped entirely).
70
+ */
71
+ export declare function resolverBackedFieldsFor(action: string): ResolverBackedField[] | undefined;
72
+ //# sourceMappingURL=approval-time-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval-time-resolution.d.ts","sourceRoot":"","sources":["../../src/resolver/approval-time-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,mBAAmB,EAAG,kBAA2B,CAAA;AAE9D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACtF,MAAM,EAAE,CAAC,GACR,CAAC,CAKH;AAED,oEAAoE;AACpE,MAAM,MAAM,oBAAoB,GAAG,eAAe,CAAA;AAElD,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,IAAI,EAAE,oBAAoB,CAAA;CAC3B;AAgDD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,GAAG,SAAS,CAGzF"}
@@ -34,4 +34,17 @@
34
34
  * meaning and is ignored for qualification.
35
35
  */
36
36
  export declare function canonicalResourceId(action: string, params: Record<string, unknown> | undefined, ctx?: Record<string, string>): string | undefined;
37
+ /**
38
+ * §8.2.1 — `requestTenantRef` の生産者。`canonicalResourceId` と同じ入力
39
+ * (action + parameters)・同じ registry index・同じ {@link TargetResolver} で
40
+ * `tenant_ref` 束縛を解決する。束縛の無い action(このコミット時点では全 action)は
41
+ * undefined を返す。
42
+ *
43
+ * api の tool-executor はこれを `resolvedResourceId` の隣で呼び、
44
+ * `CheckGrantPermissionDto.requestTenantRef` に渡す。
45
+ *
46
+ * undefined は「テナント未指定」= 既定コネクションに委ねる、の意味であって
47
+ * 「拒否」ではない(fallback 'connection_default')。
48
+ */
49
+ export declare function resolveTenantRef(standardizedAction: string, params?: Record<string, unknown>): string | undefined;
37
50
  //# sourceMappingURL=canonical-resource-id.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canonical-resource-id.d.ts","sourceRoot":"","sources":["../../src/resolver/canonical-resource-id.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CA8CpB"}
1
+ {"version":3,"file":"canonical-resource-id.d.ts","sourceRoot":"","sources":["../../src/resolver/canonical-resource-id.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CAwDpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,kBAAkB,EAAE,MAAM,EAC1B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,GAAG,SAAS,CA2BpB"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * 「承認済みの親 id は、このリクエストの子 id を覆うか?」を決める **唯一の**
3
+ * provider 別テーブル。
4
+ *
5
+ * ## なぜ SDK に出したか
6
+ *
7
+ * この判定は **2 つの独立した強制点**に存在する:
8
+ *
9
+ * 1. api の Gate-2 —— `packages/api/src/tool/services/resource-resolver.ts` の
10
+ * `ResourceResolverRegistry`(`supportsHierarchicalMatch()` で opt-in)。
11
+ * 2. agentd の OOB 再実行チェック —— `packages/agentd/src/core/execution-engine.ts`
12
+ * の `approvedResourceMatches`。
13
+ *
14
+ * 片方だけが階層マッチを知っていると、**Gate-2 は ALLOW、agentd は REJECT** に
15
+ * なり、承認が永久に解決しない。これが #1009(Jira)で実際に起きた障害で、
16
+ * `resourceIdHierarchicallyMatches` はその修正だった —— ただし Jira 専用
17
+ * (`r.provider === 'jira'` 直書き)。api 側はその後 Backlog / Calendar を
18
+ * 階層マッチに加えたので、Backlog で **同じ形の障害が再発**していた:
19
+ * project(`PROJ`)で承認 → issue(`PROJ-12`)で再実行 → Gate-2 ALLOW /
20
+ * agentd REJECT。
21
+ *
22
+ * このモジュールは `execution-engine.ts` の TODO(provider-generic)が指示した
23
+ * 通り「interface を SDK に出して両方に食わせる」ものであり、`provider ===` の
24
+ * 分岐を増やす代替である。
25
+ *
26
+ * ## 🔴 extractor は provider ごとに **別物のまま**(統合してはいけない)
27
+ *
28
+ * | provider | pattern | 差分 |
29
+ * |---|---|---|
30
+ * | jira | `^([A-Z][A-Z0-9_]+)-\d+$` | 先頭は英字、2 文字以上 |
31
+ * | backlog | `^([A-Z0-9_]+)-\d+$` | 数字始まり可、1 文字可 |
32
+ *
33
+ * この関数は「子 id から **親を導いて grant を広げる**」方向に働く。つまり
34
+ * pattern が緩いほど、承認された範囲より **広く** 許可が当たる。2 つを 1 つに
35
+ * まとめるのは(どちらに寄せても)セキュリティ上の変更であって、リファクタでは
36
+ * ない。共有するのは **形(interface)だけ**で、pattern は provider が持つ。
37
+ *
38
+ * ## 既定は「階層なし」
39
+ *
40
+ * 表に載っていない provider(slack, github, os, …)は `null` を返し、呼び出し側は
41
+ * 素の文字列一致に落ちる —— fail-closed。新しい階層 provider を増やすときは、
42
+ * この 1 箇所に 1 行足すだけでよい。
43
+ */
44
+ export type HierarchicalParentExtractor = (childResourceId: string) => string | null;
45
+ /**
46
+ * provider が親→子の階層マッチを持つならその extractor を、持たないなら `null`。
47
+ *
48
+ * @param provider `'jira'` / `'backlog'` など。未知・未定義は `null`(= 階層なし)。
49
+ */
50
+ export declare function getHierarchicalParentExtractor(provider: string | undefined | null): HierarchicalParentExtractor | null;
51
+ /**
52
+ * 承認済み id `approvedId` が、リクエストの id `candidateId` を覆うか。
53
+ *
54
+ * - 完全一致は常に true。
55
+ * - それ以外は、provider が階層を持つときに限り、`candidateId` から親を導いて
56
+ * `approvedId` と比較する(**親 → 子の一方向のみ**)。
57
+ * - 階層を持たない provider は完全一致だけ = 既存挙動のまま。
58
+ */
59
+ export declare function hierarchicalResourceIdMatches(provider: string | undefined | null, approvedId: string, candidateId: string): boolean;
60
+ //# sourceMappingURL=hierarchical-match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hierarchical-match.d.ts","sourceRoot":"","sources":["../../src/resolver/hierarchical-match.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,MAAM,2BAA2B,GAAG,CAAC,eAAe,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAA;AA2BpF;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAClC,2BAA2B,GAAG,IAAI,CAMpC;AAED;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EACnC,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,OAAO,CAMT"}