@xemahq/kernel-contracts 0.50.0 → 0.57.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/biome/lib/biome-manifest.d.ts +9 -0
  2. package/dist/biome/lib/biome-manifest.d.ts.map +1 -1
  3. package/dist/biome/lib/biome-manifest.js +2 -0
  4. package/dist/biome/lib/biome-manifest.js.map +1 -1
  5. package/dist/capability/index.d.ts +3 -1
  6. package/dist/capability/index.d.ts.map +1 -1
  7. package/dist/capability/index.js +3 -1
  8. package/dist/capability/index.js.map +1 -1
  9. package/dist/capability/lib/authority-effect.d.ts +8 -0
  10. package/dist/capability/lib/authority-effect.d.ts.map +1 -0
  11. package/dist/capability/lib/authority-effect.js +17 -0
  12. package/dist/capability/lib/authority-effect.js.map +1 -0
  13. package/dist/capability/lib/capability-contribution.d.ts +4 -0
  14. package/dist/capability/lib/capability-contribution.d.ts.map +1 -1
  15. package/dist/capability/lib/capability-contribution.js +4 -0
  16. package/dist/capability/lib/capability-contribution.js.map +1 -1
  17. package/dist/capability/lib/capability-domain.d.ts +8 -0
  18. package/dist/capability/lib/capability-domain.d.ts.map +1 -0
  19. package/dist/capability/lib/capability-domain.js +24 -0
  20. package/dist/capability/lib/capability-domain.js.map +1 -0
  21. package/dist/capability/lib/capability-reach.d.ts +13 -0
  22. package/dist/capability/lib/capability-reach.d.ts.map +1 -0
  23. package/dist/capability/lib/capability-reach.js +34 -0
  24. package/dist/capability/lib/capability-reach.js.map +1 -0
  25. package/dist/capability/lib/meta-tool.d.ts +51 -14
  26. package/dist/capability/lib/meta-tool.d.ts.map +1 -1
  27. package/dist/capability/lib/meta-tool.js +66 -12
  28. package/dist/capability/lib/meta-tool.js.map +1 -1
  29. package/dist/capability-projection/index.d.ts +4 -0
  30. package/dist/capability-projection/index.d.ts.map +1 -0
  31. package/dist/capability-projection/index.js +20 -0
  32. package/dist/capability-projection/index.js.map +1 -0
  33. package/dist/capability-projection/lib/capability-invocation-binding.d.ts +72 -0
  34. package/dist/capability-projection/lib/capability-invocation-binding.d.ts.map +1 -0
  35. package/dist/capability-projection/lib/capability-invocation-binding.js +101 -0
  36. package/dist/capability-projection/lib/capability-invocation-binding.js.map +1 -0
  37. package/dist/capability-projection/lib/capability-sync-manifest.d.ts +8 -0
  38. package/dist/capability-projection/lib/capability-sync-manifest.d.ts.map +1 -0
  39. package/dist/capability-projection/lib/capability-sync-manifest.js +8 -0
  40. package/dist/capability-projection/lib/capability-sync-manifest.js.map +1 -0
  41. package/dist/capability-projection/lib/projected-capability.d.ts +15 -0
  42. package/dist/capability-projection/lib/projected-capability.d.ts.map +1 -0
  43. package/dist/capability-projection/lib/projected-capability.js +17 -0
  44. package/dist/capability-projection/lib/projected-capability.js.map +1 -0
  45. package/dist/connector/lib/connector-adapter-contribution.d.ts +2 -0
  46. package/dist/connector/lib/connector-adapter-contribution.d.ts.map +1 -1
  47. package/dist/connector/lib/onboarding-manifest.d.ts +2 -0
  48. package/dist/connector/lib/onboarding-manifest.d.ts.map +1 -1
  49. package/dist/connector/lib/onboarding-manifest.js +1 -0
  50. package/dist/connector/lib/onboarding-manifest.js.map +1 -1
  51. package/dist/connector/lib/provider-descriptor.d.ts +2 -0
  52. package/dist/connector/lib/provider-descriptor.d.ts.map +1 -1
  53. package/dist/contribution/lib/contribution-kind.d.ts +1 -6
  54. package/dist/contribution/lib/contribution-kind.d.ts.map +1 -1
  55. package/dist/contribution/lib/contribution-kind.js +1 -6
  56. package/dist/contribution/lib/contribution-kind.js.map +1 -1
  57. package/dist/distribution/index.d.ts +1 -0
  58. package/dist/distribution/index.d.ts.map +1 -1
  59. package/dist/distribution/index.js +1 -0
  60. package/dist/distribution/index.js.map +1 -1
  61. package/dist/distribution/lib/distribution-lock.d.ts +6 -0
  62. package/dist/distribution/lib/distribution-lock.d.ts.map +1 -1
  63. package/dist/distribution/lib/distribution-lock.js +9 -1
  64. package/dist/distribution/lib/distribution-lock.js.map +1 -1
  65. package/dist/distribution/lib/first-party-capability-domains.d.ts +15 -0
  66. package/dist/distribution/lib/first-party-capability-domains.d.ts.map +1 -0
  67. package/dist/distribution/lib/first-party-capability-domains.js +52 -0
  68. package/dist/distribution/lib/first-party-capability-domains.js.map +1 -0
  69. package/dist/object/lib/xema-object-ref.d.ts +0 -5
  70. package/dist/object/lib/xema-object-ref.d.ts.map +1 -1
  71. package/dist/object/lib/xema-object-ref.js +12 -62
  72. package/dist/object/lib/xema-object-ref.js.map +1 -1
  73. package/dist/output-surface-inspect/index.d.ts +1 -0
  74. package/dist/output-surface-inspect/index.d.ts.map +1 -1
  75. package/dist/output-surface-inspect/index.js +1 -0
  76. package/dist/output-surface-inspect/index.js.map +1 -1
  77. package/dist/output-surface-inspect/lib/buffers.d.ts +52 -0
  78. package/dist/output-surface-inspect/lib/buffers.d.ts.map +1 -0
  79. package/dist/output-surface-inspect/lib/buffers.js +132 -0
  80. package/dist/output-surface-inspect/lib/buffers.js.map +1 -0
  81. package/dist/output-surface-inspect/lib/output-surface-inspect.d.ts +6 -1
  82. package/dist/output-surface-inspect/lib/output-surface-inspect.d.ts.map +1 -1
  83. package/dist/output-surface-inspect/lib/output-surface-inspect.js +12 -1
  84. package/dist/output-surface-inspect/lib/output-surface-inspect.js.map +1 -1
  85. package/dist/output-surface-inspect/lib/step-schema.d.ts +2 -1
  86. package/dist/output-surface-inspect/lib/step-schema.d.ts.map +1 -1
  87. package/dist/output-surface-inspect/lib/step-schema.js +9 -2
  88. package/dist/output-surface-inspect/lib/step-schema.js.map +1 -1
  89. package/dist/output-surface-inspect/runtime/index.d.ts +1 -0
  90. package/dist/output-surface-inspect/runtime/index.d.ts.map +1 -1
  91. package/dist/output-surface-inspect/runtime/index.js +1 -0
  92. package/dist/output-surface-inspect/runtime/index.js.map +1 -1
  93. package/dist/search/index.d.ts +1 -0
  94. package/dist/search/index.d.ts.map +1 -1
  95. package/dist/search/index.js +1 -0
  96. package/dist/search/index.js.map +1 -1
  97. package/dist/search/lib/route-template.d.ts +31 -0
  98. package/dist/search/lib/route-template.d.ts.map +1 -0
  99. package/dist/search/lib/route-template.js +142 -0
  100. package/dist/search/lib/route-template.js.map +1 -0
  101. package/dist/search/lib/search-contribution.d.ts +4 -2
  102. package/dist/search/lib/search-contribution.d.ts.map +1 -1
  103. package/dist/search/lib/search-contribution.js +46 -4
  104. package/dist/search/lib/search-contribution.js.map +1 -1
  105. package/dist/search-source/lib/indexable-document.d.ts +22 -0
  106. package/dist/search-source/lib/indexable-document.d.ts.map +1 -1
  107. package/dist/search-source/lib/indexable-document.js +10 -1
  108. package/dist/search-source/lib/indexable-document.js.map +1 -1
  109. package/dist/search-source/lib/search-index-event.d.ts +10 -0
  110. package/dist/search-source/lib/search-index-event.d.ts.map +1 -1
  111. package/dist/search-source/lib/search-ref.d.ts.map +1 -1
  112. package/dist/search-source/lib/search-ref.js +11 -2
  113. package/dist/search-source/lib/search-ref.js.map +1 -1
  114. package/dist/search-source/lib/search-replay.d.ts +10 -0
  115. package/dist/search-source/lib/search-replay.d.ts.map +1 -1
  116. package/dist/service-registry/lib/service-descriptor.d.ts +1 -0
  117. package/dist/service-registry/lib/service-descriptor.d.ts.map +1 -1
  118. package/dist/space/lib/space-ref-parser.d.ts +6 -4
  119. package/dist/space/lib/space-ref-parser.d.ts.map +1 -1
  120. package/dist/space/lib/space-ref-parser.js +90 -126
  121. package/dist/space/lib/space-ref-parser.js.map +1 -1
  122. package/dist/space/lib/space-traversal.d.ts.map +1 -1
  123. package/dist/space/lib/space-traversal.js +9 -13
  124. package/dist/space/lib/space-traversal.js.map +1 -1
  125. package/dist/space/lib/space.d.ts +7 -0
  126. package/dist/space/lib/space.d.ts.map +1 -1
  127. package/dist/space/lib/space.js +48 -29
  128. package/dist/space/lib/space.js.map +1 -1
  129. package/dist/subject/lib/subject.d.ts +1 -0
  130. package/dist/subject/lib/subject.d.ts.map +1 -1
  131. package/dist/subject/lib/subject.js +1 -0
  132. package/dist/subject/lib/subject.js.map +1 -1
  133. package/dist/surface/index.d.ts +4 -0
  134. package/dist/surface/index.d.ts.map +1 -0
  135. package/dist/surface/index.js +20 -0
  136. package/dist/surface/index.js.map +1 -0
  137. package/dist/surface/lib/surface-contribution.d.ts +24 -0
  138. package/dist/surface/lib/surface-contribution.d.ts.map +1 -0
  139. package/dist/surface/lib/surface-contribution.js +23 -0
  140. package/dist/surface/lib/surface-contribution.js.map +1 -0
  141. package/dist/surface/lib/surface-kind.d.ts +23 -0
  142. package/dist/surface/lib/surface-kind.d.ts.map +1 -0
  143. package/dist/surface/lib/surface-kind.js +27 -0
  144. package/dist/surface/lib/surface-kind.js.map +1 -0
  145. package/dist/surface/lib/vista-surface.d.ts +11 -0
  146. package/dist/surface/lib/vista-surface.d.ts.map +1 -0
  147. package/dist/surface/lib/vista-surface.js +13 -0
  148. package/dist/surface/lib/vista-surface.js.map +1 -0
  149. package/dist/widget/lib/chat-widget-envelope.d.ts.map +1 -1
  150. package/dist/widget/lib/chat-widget-envelope.js.map +1 -1
  151. package/dist/workflow/lib/enums.d.ts.map +1 -1
  152. package/dist/workflow/lib/enums.js.map +1 -1
  153. package/package.json +1 -1
  154. package/src/biome/lib/biome-manifest.ts +41 -1
  155. package/src/capability/index.ts +3 -1
  156. package/src/capability/lib/authority-effect.ts +88 -0
  157. package/src/capability/lib/capability-contribution.ts +44 -0
  158. package/src/capability/lib/capability-domain.ts +51 -0
  159. package/src/capability/lib/capability-grant.ts +1 -1
  160. package/src/capability/lib/capability-reach.ts +119 -0
  161. package/src/capability/lib/meta-tool.ts +172 -39
  162. package/src/capability-projection/index.ts +3 -0
  163. package/src/capability-projection/lib/capability-invocation-binding.ts +223 -0
  164. package/src/capability-projection/lib/capability-sync-manifest.ts +52 -0
  165. package/src/capability-projection/lib/projected-capability.ts +63 -0
  166. package/src/connector/lib/onboarding-manifest.ts +16 -0
  167. package/src/contribution/lib/contribution-kind.ts +165 -61
  168. package/src/distribution/index.ts +1 -0
  169. package/src/distribution/lib/distribution-lock.ts +36 -0
  170. package/src/distribution/lib/first-party-capability-domains.ts +166 -0
  171. package/src/object/lib/xema-object-ref.ts +27 -82
  172. package/src/output-surface-inspect/index.ts +2 -0
  173. package/src/output-surface-inspect/lib/buffers.ts +252 -0
  174. package/src/output-surface-inspect/lib/output-surface-inspect.ts +65 -6
  175. package/src/output-surface-inspect/lib/step-schema.ts +36 -3
  176. package/src/output-surface-inspect/runtime/index.ts +1 -0
  177. package/src/search/index.ts +1 -0
  178. package/src/search/lib/route-template.ts +381 -0
  179. package/src/search/lib/search-contribution.ts +138 -31
  180. package/src/search-source/lib/indexable-document.ts +44 -0
  181. package/src/search-source/lib/search-ref.ts +22 -9
  182. package/src/service-registry/lib/service-descriptor.ts +16 -0
  183. package/src/space/lib/skill-mirror-path.ts +1 -1
  184. package/src/space/lib/space-ref-parser.ts +190 -165
  185. package/src/space/lib/space-traversal.ts +34 -17
  186. package/src/space/lib/space.ts +110 -35
  187. package/src/subject/lib/subject.ts +16 -0
  188. package/src/surface/index.ts +3 -0
  189. package/src/surface/lib/surface-contribution.ts +101 -0
  190. package/src/surface/lib/surface-kind.ts +65 -0
  191. package/src/surface/lib/vista-surface.ts +44 -0
  192. package/src/widget/lib/chat-widget-envelope.ts +6 -2
  193. package/src/workflow/lib/enums.ts +6 -7
  194. package/src/capability/lib/first-party-capability-domains.ts +0 -77
@@ -21,6 +21,7 @@ exports.SubjectKindSchema = zod_1.z.nativeEnum(SubjectKind);
21
21
  exports.ActingForRefSchema = zod_1.z.object({
22
22
  kind: exports.SubjectKindSchema,
23
23
  id: zod_1.z.string().min(1),
24
+ clientId: zod_1.z.string().min(1).optional(),
24
25
  });
25
26
  exports.SubjectRefSchema = zod_1.z.object({
26
27
  kind: exports.SubjectKindSchema,
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../../src/subject/lib/subject.ts"],"names":[],"mappings":";;;AAmFA,gDAIC;AAOD,0CAgBC;AA9GD,6BAAwB;AAmBxB,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,0BAAW,CAAA;IACX,uCAAwB,CAAA;IACxB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,mDAAoC,CAAA;IACpC,4BAAa,CAAA;AACf,CAAC,EAXW,WAAW,2BAAX,WAAW,QAWtB;AAEY,QAAA,iBAAiB,GAAG,OAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAiB9C,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,yBAAiB;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CACtB,CAA4B,CAAC;AAkBjB,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,yBAAiB;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,0BAAkB,CAAC,QAAQ,EAAE;CACzC,CAA0B,CAAC;AAQ5B,SAAgB,kBAAkB,CAChC,OAAwC;IAExC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;AACzC,CAAC;AAOD,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,yDAAyD,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,yBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,OAAO,IAAI,+BAA+B,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../../src/subject/lib/subject.ts"],"names":[],"mappings":";;;AAmGA,gDAIC;AAOD,0CAgBC;AA9HD,6BAAwB;AAmBxB,IAAY,WAWX;AAXD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,8BAAe,CAAA;IACf,0BAAW,CAAA;IACX,uCAAwB,CAAA;IACxB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,gCAAiB,CAAA;IACjB,mDAAoC,CAAA;IACpC,4BAAa,CAAA;AACf,CAAC,EAXW,WAAW,2BAAX,WAAW,QAWtB;AAEY,QAAA,iBAAiB,GAAG,OAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAgC9C,QAAA,kBAAkB,GAAG,OAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,yBAAiB;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;CACvC,CAA4B,CAAC;AAkBjB,QAAA,gBAAgB,GAAG,OAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,yBAAiB;IACvB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACrB,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5C,SAAS,EAAE,0BAAkB,CAAC,QAAQ,EAAE;CACzC,CAA0B,CAAC;AAQ5B,SAAgB,kBAAkB,CAChC,OAAwC;IAExC,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;AACzC,CAAC;AAOD,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,UAAU,IAAI,CAAC,IAAI,UAAU,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,yDAAyD,CACrF,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,yBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,wBAAwB,GAAG,OAAO,IAAI,+BAA+B,CACtE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './lib/surface-kind';
2
+ export * from './lib/vista-surface';
3
+ export * from './lib/surface-contribution';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib/surface-kind"), exports);
18
+ __exportStar(require("./lib/vista-surface"), exports);
19
+ __exportStar(require("./lib/surface-contribution"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/surface/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,sDAAoC;AACpC,6DAA2C"}
@@ -0,0 +1,24 @@
1
+ import { z } from 'zod';
2
+ export interface SurfaceContributionManifest {
3
+ readonly kind: string;
4
+ readonly version: number;
5
+ readonly displayName: string;
6
+ readonly summary: string;
7
+ readonly payloadSchema: Record<string, unknown>;
8
+ }
9
+ export declare const SurfaceContributionManifestSchema: z.ZodType<SurfaceContributionManifest>;
10
+ export declare enum SurfaceKindSource {
11
+ FirstParty = "first-party",
12
+ Biome = "biome"
13
+ }
14
+ export declare const SurfaceKindSourceSchema: z.ZodEnum<typeof SurfaceKindSource>;
15
+ export interface SurfaceKindCatalogueEntry {
16
+ readonly kind: string;
17
+ readonly version: number;
18
+ readonly displayName: string;
19
+ readonly summary: string;
20
+ readonly payloadSchema: Record<string, unknown>;
21
+ readonly source: SurfaceKindSource;
22
+ readonly biomeId?: string;
23
+ }
24
+ //# sourceMappingURL=surface-contribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-contribution.d.ts","sourceRoot":"","sources":["../../../src/surface/lib/surface-contribution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA+BxB,MAAM,WAAW,2BAA2B;IAM1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjD;AAUD,eAAO,MAAM,iCAAiC,EAAE,CAAC,CAAC,OAAO,CAAC,2BAA2B,CAcvC,CAAC;AAG/C,oBAAY,iBAAiB;IAC3B,UAAU,gBAAgB;IAC1B,KAAK,UAAU;CAChB;AAED,eAAO,MAAM,uBAAuB,qCAAkC,CAAC;AAavE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAEnC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SurfaceKindSourceSchema = exports.SurfaceKindSource = exports.SurfaceContributionManifestSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const SURFACE_KIND_SLUG_REGEX = /^[a-z][a-z0-9-]*$/;
6
+ exports.SurfaceContributionManifestSchema = zod_1.z.object({
7
+ kind: zod_1.z
8
+ .string()
9
+ .min(1)
10
+ .max(100)
11
+ .regex(SURFACE_KIND_SLUG_REGEX, 'Surface kind slug must be lowercase letters, digits, and hyphens (start with a letter).'),
12
+ version: zod_1.z.number().int().positive(),
13
+ displayName: zod_1.z.string().min(1).max(200),
14
+ summary: zod_1.z.string().min(1).max(1000),
15
+ payloadSchema: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()),
16
+ });
17
+ var SurfaceKindSource;
18
+ (function (SurfaceKindSource) {
19
+ SurfaceKindSource["FirstParty"] = "first-party";
20
+ SurfaceKindSource["Biome"] = "biome";
21
+ })(SurfaceKindSource || (exports.SurfaceKindSource = SurfaceKindSource = {}));
22
+ exports.SurfaceKindSourceSchema = zod_1.z.nativeEnum(SurfaceKindSource);
23
+ //# sourceMappingURL=surface-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-contribution.js","sourceRoot":"","sources":["../../../src/surface/lib/surface-contribution.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAgDxB,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAQvC,QAAA,iCAAiC,GAC5C,OAAC,CAAC,MAAM,CAAC;IACP,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,KAAK,CACJ,uBAAuB,EACvB,yFAAyF,CAC1F;IACH,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACvC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACpC,aAAa,EAAE,OAAC,CAAC,MAAM,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC;CACjD,CAA2C,CAAC;AAG/C,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,+CAA0B,CAAA;IAC1B,oCAAe,CAAA;AACjB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAEY,QAAA,uBAAuB,GAAG,OAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+ export declare enum SurfaceKind {
3
+ Url = "url",
4
+ Web = "web",
5
+ Html = "html",
6
+ Markdown = "markdown",
7
+ Code = "code",
8
+ Diff = "diff",
9
+ Json = "json",
10
+ Table = "table",
11
+ Chart = "chart",
12
+ Pdf = "pdf",
13
+ Image = "image",
14
+ Media = "media",
15
+ Object = "object",
16
+ BiomeRoute = "biome-route",
17
+ Form = "form",
18
+ App = "app",
19
+ Files = "files",
20
+ Graph = "graph"
21
+ }
22
+ export declare const SurfaceKindSchema: z.ZodEnum<typeof SurfaceKind>;
23
+ //# sourceMappingURL=surface-kind.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-kind.d.ts","sourceRoot":"","sources":["../../../src/surface/lib/surface-kind.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,oBAAY,WAAW;IAErB,GAAG,QAAQ;IAEX,GAAG,QAAQ;IAEX,IAAI,SAAS;IAEb,QAAQ,aAAa;IAErB,IAAI,SAAS;IAEb,IAAI,SAAS;IAEb,IAAI,SAAS;IAEb,KAAK,UAAU;IAEf,KAAK,UAAU;IAEf,GAAG,QAAQ;IAEX,KAAK,UAAU;IAEf,KAAK,UAAU;IAEf,MAAM,WAAW;IAEjB,UAAU,gBAAgB;IAE1B,IAAI,SAAS;IAEb,GAAG,QAAQ;IAEX,KAAK,UAAU;IAEf,KAAK,UAAU;CAChB;AAGD,eAAO,MAAM,iBAAiB,+BAA4B,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SurfaceKindSchema = exports.SurfaceKind = void 0;
4
+ const zod_1 = require("zod");
5
+ var SurfaceKind;
6
+ (function (SurfaceKind) {
7
+ SurfaceKind["Url"] = "url";
8
+ SurfaceKind["Web"] = "web";
9
+ SurfaceKind["Html"] = "html";
10
+ SurfaceKind["Markdown"] = "markdown";
11
+ SurfaceKind["Code"] = "code";
12
+ SurfaceKind["Diff"] = "diff";
13
+ SurfaceKind["Json"] = "json";
14
+ SurfaceKind["Table"] = "table";
15
+ SurfaceKind["Chart"] = "chart";
16
+ SurfaceKind["Pdf"] = "pdf";
17
+ SurfaceKind["Image"] = "image";
18
+ SurfaceKind["Media"] = "media";
19
+ SurfaceKind["Object"] = "object";
20
+ SurfaceKind["BiomeRoute"] = "biome-route";
21
+ SurfaceKind["Form"] = "form";
22
+ SurfaceKind["App"] = "app";
23
+ SurfaceKind["Files"] = "files";
24
+ SurfaceKind["Graph"] = "graph";
25
+ })(SurfaceKind || (exports.SurfaceKind = SurfaceKind = {}));
26
+ exports.SurfaceKindSchema = zod_1.z.nativeEnum(SurfaceKind);
27
+ //# sourceMappingURL=surface-kind.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"surface-kind.js","sourceRoot":"","sources":["../../../src/surface/lib/surface-kind.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAwBxB,IAAY,WAqCX;AArCD,WAAY,WAAW;IAErB,0BAAW,CAAA;IAEX,0BAAW,CAAA;IAEX,4BAAa,CAAA;IAEb,oCAAqB,CAAA;IAErB,4BAAa,CAAA;IAEb,4BAAa,CAAA;IAEb,4BAAa,CAAA;IAEb,8BAAe,CAAA;IAEf,8BAAe,CAAA;IAEf,0BAAW,CAAA;IAEX,8BAAe,CAAA;IAEf,8BAAe,CAAA;IAEf,gCAAiB,CAAA;IAEjB,yCAA0B,CAAA;IAE1B,4BAAa,CAAA;IAEb,0BAAW,CAAA;IAEX,8BAAe,CAAA;IAEf,8BAAe,CAAA;AACjB,CAAC,EArCW,WAAW,2BAAX,WAAW,QAqCtB;AAGY,QAAA,iBAAiB,GAAG,OAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ export interface VistaSurface {
3
+ readonly tabId: string;
4
+ readonly kind: string;
5
+ readonly version: number;
6
+ readonly title: string;
7
+ readonly payload: unknown;
8
+ readonly pinned?: boolean;
9
+ }
10
+ export declare const VistaSurfaceSchema: z.ZodType<VistaSurface>;
11
+ //# sourceMappingURL=vista-surface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-surface.d.ts","sourceRoot":"","sources":["../../../src/surface/lib/vista-surface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoBxB,MAAM,WAAW,YAAY;IAE3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,kBAAkB,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAO1B,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VistaSurfaceSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.VistaSurfaceSchema = zod_1.z.object({
6
+ tabId: zod_1.z.string().min(1),
7
+ kind: zod_1.z.string().min(1),
8
+ version: zod_1.z.number().int().positive(),
9
+ title: zod_1.z.string().min(1),
10
+ payload: zod_1.z.unknown(),
11
+ pinned: zod_1.z.boolean().optional(),
12
+ });
13
+ //# sourceMappingURL=vista-surface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vista-surface.js","sourceRoot":"","sources":["../../../src/surface/lib/vista-surface.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAoCX,QAAA,kBAAkB,GAA4B,OAAC,CAAC,MAAM,CAAC;IAClE,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACxB,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAA4B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-widget-envelope.d.ts","sourceRoot":"","sources":["../../../src/widget/lib/chat-widget-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAIjE,CAAC;AAOH,oBAAY,wBAAwB;IAClC,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,kBAAkB,wBAAwB;CAC3C"}
1
+ {"version":3,"file":"chat-widget-envelope.d.ts","sourceRoot":"","sources":["../../../src/widget/lib/chat-widget-envelope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B;AAGD,eAAO,MAAM,wBAAwB,EAAE,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAIjE,CAAC;AAWH,oBAAY,wBAAwB;IAClC,WAAW,iBAAiB;IAC5B,cAAc,oBAAoB;IAClC,kBAAkB,wBAAwB;CAC3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"chat-widget-envelope.js","sourceRoot":"","sources":["../../../src/widget/lib/chat-widget-envelope.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAyBX,QAAA,wBAAwB,GAAkC,OAAC,CAAC,MAAM,CAAC;IAC9E,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAOH,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,wDAA4B,CAAA;IAC5B,8DAAkC,CAAA;IAClC,sEAA0C,CAAA;AAC5C,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC"}
1
+ {"version":3,"file":"chat-widget-envelope.js","sourceRoot":"","sources":["../../../src/widget/lib/chat-widget-envelope.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAyBX,QAAA,wBAAwB,GAAkC,OAAC,CAAC,MAAM,CAAC;IAC9E,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE;CACrB,CAAC,CAAC;AAWH,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,wDAA4B,CAAA;IAC5B,8DAAkC,CAAA;IAClC,sEAA0C,CAAA;AAC5C,CAAC,EAJW,wBAAwB,wCAAxB,wBAAwB,QAInC"}
@@ -1 +1 @@
1
- {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enums.d.ts","sourceRoot":"","sources":["../../../src/workflow/lib/enums.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/workflow/lib/enums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/workflow/lib/enums.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xemahq/kernel-contracts",
3
- "version": "0.50.0",
3
+ "version": "0.57.0",
4
4
  "description": "Consolidated Xema OS kernel wire contracts — pure types + zod schemas for the kernel protocol surfaces. One package, one npm scope, wildcard per-surface subpath exports. No framework/runtime deps.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Neuralchowder Inc. <developer@xema.dev> (https://xema.dev)",
@@ -3,7 +3,10 @@ import {
3
3
  FilterExprSchema,
4
4
  } from '../../connector';
5
5
  import { ContributionKindSchema } from '../../contribution';
6
- import { CapabilityRefSchema } from '../../capability';
6
+ import {
7
+ CapabilityDomainSchema,
8
+ CapabilityRefSchema,
9
+ } from '../../capability';
7
10
  import {
8
11
  ProvisioningGuardSchema,
9
12
  ProvisioningStepKindSchema,
@@ -503,6 +506,9 @@ export type BiomeManifestRequires = Readonly<Record<string, string>>;
503
506
  * to grant before any of its handlers/contributions execute.
504
507
  * - `exposesCapabilities[]` — capability refs the biome itself
505
508
  * implements and offers to others.
509
+ * - `ownsCapabilityDomains[]` — capability DOMAINS the biome owns outright.
510
+ * Materialized into the distribution lock, from which the first-party
511
+ * (un-shadowable) domain set is derived.
506
512
  * - `permissions` — install-time consent metadata (default profile +
507
513
  * per-ref hints + UX groupings) for `requiresCapabilities[]`.
508
514
  * - `lifecycle` — module paths the host invokes on
@@ -526,6 +532,23 @@ const XsiManifestExtensionsShape = {
526
532
  contributions: BiomeContributionsSchema.optional(),
527
533
  requiresCapabilities: z.array(CapabilityRefSchema).optional(),
528
534
  exposesCapabilities: z.array(CapabilityRefSchema).optional(),
535
+ /**
536
+ * Capability DOMAINS this biome OWNS — the `<domain>` segment, not refs.
537
+ *
538
+ * Distinct from `exposesCapabilities`, which lists individual refs a biome
539
+ * happens to implement. Ownership is a claim over the whole domain: "every
540
+ * ref under `kb:` is mine". It is what the distribution resolver materializes
541
+ * into `LockedBiome.ownsCapabilityDomains`, from which
542
+ * `FirstPartyCapabilityDomains` derives the set of domains an org may NOT
543
+ * shadow with a `CapabilityProviderBinding`.
544
+ *
545
+ * Declaring it here is necessary but NOT sufficient: a claim only becomes
546
+ * first-party by being resolved into a distribution lock. A biome installed
547
+ * at runtime from npm/OCI/git never enters a lock, so it can never mint
548
+ * itself first-party by editing this field. Two biomes in the SAME
549
+ * distribution claiming the same domain is a fail-fast packaging error.
550
+ */
551
+ ownsCapabilityDomains: z.array(CapabilityDomainSchema).optional(),
529
552
  permissions: BiomePermissionsManifestSchema.optional(),
530
553
  lifecycle: BiomeLifecycleHooksSchema.optional(),
531
554
  engines: BiomeEnginesSchema.optional(),
@@ -820,6 +843,23 @@ const ServerBiomeXemaSchema = z
820
843
  ...BiomeTagsShape,
821
844
  scope: ManifestBiomeScopeSchema,
822
845
  target: z.literal('server'),
846
+ /**
847
+ * The `<domain>` segment every capability PROJECTED from this biome's
848
+ * services is filed under — the `domain` of
849
+ * `<domain>:<resource>.<verb>@<major>`.
850
+ *
851
+ * This is the ONE per-biome declaration the HTTP capability projector
852
+ * needs; everything else it derives from metadata the platform already
853
+ * computes (`x-xema-resource` / `x-xema-action` on the generated spec).
854
+ * Optional: when absent the projector uses {@link BiomeIdSchema} `id`,
855
+ * which is grammar-identical to a capability domain. Declare it only when
856
+ * the biome's capability vocabulary should differ from its id (e.g. the
857
+ * `knowledge-base` biome filing capabilities under the `kb` domain).
858
+ *
859
+ * NOT a fallback for a missing id — `id` is required, so the default is
860
+ * always a real declared value, never a guess.
861
+ */
862
+ capabilityDomain: BiomeIdSchema.optional(),
823
863
  /**
824
864
  * What this biome needs from the runtime/runner that executes it
825
865
  * (labels, resources, isolation, locality, trust). Requirements only —
@@ -1,6 +1,8 @@
1
1
  export * from './lib/capability-ref';
2
2
  export * from './lib/connector-capability-ref';
3
- export * from './lib/first-party-capability-domains';
3
+ export * from './lib/capability-domain';
4
+ export * from './lib/authority-effect';
5
+ export * from './lib/capability-reach';
4
6
  export * from './lib/capability-grant';
5
7
  export * from './lib/capability-policy';
6
8
  export * from './lib/permission-profile';
@@ -0,0 +1,88 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * ═══════════════════════════════════════════════════════════════════════════
5
+ * `CapabilityAuthorityEffect` — DECLARED answer to "does invoking this
6
+ * capability grant, expand or reassign somebody's authority?"
7
+ * ═══════════════════════════════════════════════════════════════════════════
8
+ *
9
+ * WHY THIS IS DECLARED AND NOT ONLY INFERRED.
10
+ *
11
+ * The capability-router's self-escalation guard refuses an authority-expanding
12
+ * invocation whose subject resolves to the calling agent or its owner. Until
13
+ * this field existed, "authority-expanding" was decided ENTIRELY by a closed
14
+ * noun/verb VOCABULARY over the ref grammar (`authorization` as a domain,
15
+ * `grant`/`role`/`team`/… as resource nouns, `grant`/`revoke`/`delegate`/… as
16
+ * verbs). That vocabulary is pinned by a test over `authorization-api`'s whole
17
+ * public spec, so it is airtight for FIRST-PARTY refs.
18
+ *
19
+ * It is NOT airtight for a third party. A biome shipping
20
+ * `acme:widget.frobnicate@1` — unknown domain, unknown noun, unknown verb —
21
+ * escapes every vocabulary rule and classifies as authority-neutral, even if
22
+ * what it actually does is hand somebody an ACME admin seat. Xema's whole
23
+ * premise is that ANY biome is a first-class extension, so a guard that only
24
+ * covers the vocabulary we happened to enumerate is not a guarantee.
25
+ *
26
+ * Hence: an EXPLICIT field on the capability descriptor, which the author (or
27
+ * the projector, on the author's behalf) declares.
28
+ *
29
+ * ── FAIL-CLOSED, IN BOTH DIRECTIONS ────────────────────────────────────────
30
+ *
31
+ * 1. ABSENT ⇒ NOT "neutral". A consumer that finds no declaration MUST fall
32
+ * back to a fail-closed derivation, never to {@link CapabilityAuthorityEffect.None}.
33
+ * Concretely, the router treats an undeclared MUTATING capability in a
34
+ * NON-first-party domain as {@link CapabilityAuthorityEffect.Expanding} —
35
+ * the any-biome guarantee — while an undeclared capability in a first-party
36
+ * domain falls back to the vocabulary, which the spec test pins.
37
+ *
38
+ * This is the OPPOSITE default from the neighbouring `outputClassification`
39
+ * field, whose absent case deliberately passes every cap. Do not copy that
40
+ * field's "absent ⇒ permissive" reasoning onto this one.
41
+ *
42
+ * 2. A DECLARATION MAY RAISE, NEVER LOWER. A descriptor declaring
43
+ * `Expanding` is honoured unconditionally. A descriptor declaring `None` is
44
+ * honoured ONLY where the fail-closed derivation also says `None` — a
45
+ * self-declared value must never be able to switch a security guard off for
46
+ * a capability the platform already identified as authority-bearing.
47
+ * Effect resolution is therefore a MONOTONE join
48
+ * (`Expanding > None`), not a precedence ladder.
49
+ *
50
+ * Over-classifying is visible and correctable; under-classifying is a silent
51
+ * privilege-escalation hole.
52
+ */
53
+ export enum CapabilityAuthorityEffect {
54
+ /**
55
+ * Provably cannot change who holds authority. Only claim this when the
56
+ * capability neither writes an authorization decision nor hands out a
57
+ * credential, seat, membership, ownership or delegation.
58
+ */
59
+ None = 'none',
60
+ /**
61
+ * Grants, expands, reassigns or delegates authority — to anybody, in any
62
+ * authority system, including a system this platform does not model. The
63
+ * self-escalation guard treats this exactly like a proven grant write.
64
+ */
65
+ Expanding = 'expanding',
66
+ }
67
+
68
+ export const CapabilityAuthorityEffectSchema = z.nativeEnum(
69
+ CapabilityAuthorityEffect,
70
+ );
71
+
72
+ /**
73
+ * Monotone join over {@link CapabilityAuthorityEffect} — `Expanding` absorbs.
74
+ *
75
+ * THE single place the "declared may raise, never lower" rule is implemented.
76
+ * Every consumer combining a declared value with a derived one MUST go through
77
+ * this function rather than writing `declared ?? derived`, which would let a
78
+ * declared `none` silently disable the guard.
79
+ */
80
+ export function joinAuthorityEffect(
81
+ ...effects: readonly (CapabilityAuthorityEffect | undefined)[]
82
+ ): CapabilityAuthorityEffect {
83
+ return effects.some(
84
+ (effect) => effect === CapabilityAuthorityEffect.Expanding,
85
+ )
86
+ ? CapabilityAuthorityEffect.Expanding
87
+ : CapabilityAuthorityEffect.None;
88
+ }
@@ -1,6 +1,11 @@
1
1
  import { z } from 'zod';
2
2
 
3
3
  import { CapabilityRefSchema, type CapabilityRef } from './capability-ref';
4
+ import {
5
+ CapabilityAuthorityEffectSchema,
6
+ type CapabilityAuthorityEffect,
7
+ } from './authority-effect';
8
+ import { CapabilityReachSchema, type CapabilityReach } from './capability-reach';
4
9
  import {
5
10
  CapabilityRiskTierSchema,
6
11
  type CapabilityRiskTier,
@@ -92,6 +97,43 @@ export interface CapabilityContributionManifest {
92
97
  * the mass-denial that removing the obligation fixed.
93
98
  */
94
99
  readonly outputClassification?: DataClassification;
100
+ /**
101
+ * OPTIONAL declared answer to "does invoking this capability grant, expand
102
+ * or reassign somebody's authority?" — consumed by the capability-router's
103
+ * self-escalation guard.
104
+ *
105
+ * ⚠️ THE ABSENT CASE IS FAIL-CLOSED, unlike `outputClassification` directly
106
+ * above. An undeclared capability is NOT assumed authority-neutral: the
107
+ * router falls back to a fail-closed derivation which treats an undeclared
108
+ * MUTATING capability in a non-first-party domain as
109
+ * {@link CapabilityAuthorityEffect.Expanding}. Declaring
110
+ * {@link CapabilityAuthorityEffect.None} does NOT switch the guard off — the
111
+ * declared value may only RAISE the derived one (monotone join, see
112
+ * `joinAuthorityEffect`). Declare it because it makes the descriptor honest
113
+ * and the denial message precise, not to obtain a bypass.
114
+ */
115
+ readonly authorityEffect?: CapabilityAuthorityEffect;
116
+ /**
117
+ * OPTIONAL declared answer to "how far outside the invoking subject does this
118
+ * capability reach?" — consumed by the `AgentReachTier` resolver to decide
119
+ * which capabilities the `connected` and `full` tiers open up.
120
+ *
121
+ * Absent ⇒ derived, and the derivation is the SAFE floor, not a guess: a
122
+ * `connector`-kind invocation binding reaches an external system by
123
+ * construction and derives {@link CapabilityReach.Integration}; everything
124
+ * else derives {@link CapabilityReach.Owner}, which grants nothing beyond
125
+ * what the owner already holds.
126
+ *
127
+ * Declare it to RAISE reach above that floor — an http-bound capability that
128
+ * nonetheless touches org-wide shared state (the knowledge base) or the
129
+ * control plane. A declaration cannot LOWER the derived reach, so a producer
130
+ * cannot opt its own connector out of the tier system.
131
+ *
132
+ * This replaced a hand-maintained roster in `authorization-api`. The fact now
133
+ * lives on the capability, so a new integration capability cannot be
134
+ * forgotten by a list in another repo.
135
+ */
136
+ readonly reach?: CapabilityReach;
95
137
  }
96
138
 
97
139
  /**
@@ -123,4 +165,6 @@ export const CapabilityContributionManifestSchema: z.ZodType<CapabilityContribut
123
165
  externalServiceRef: z.string().min(1).max(200).optional(),
124
166
  defaultCredentialBindingRef: z.string().min(1).max(200).optional(),
125
167
  outputClassification: DataClassificationSchema.optional(),
168
+ authorityEffect: CapabilityAuthorityEffectSchema.optional(),
169
+ reach: CapabilityReachSchema.optional(),
126
170
  }) as z.ZodType<CapabilityContributionManifest>;
@@ -0,0 +1,51 @@
1
+ import { z } from 'zod';
2
+
3
+ /**
4
+ * The `<domain>` segment of a `CapabilityRef` (`<domain>:<resource>.<verb>@<major>`)
5
+ * as a value in its OWN right.
6
+ *
7
+ * A domain is the unit of capability OWNERSHIP: `kb`, `agent`, `web`, … Refs
8
+ * are owned per-domain, never per-ref, because the ref corpus is projected and
9
+ * unbounded (a service growing a route mints a ref with nobody editing
10
+ * anything) while the domain set is declared and small.
11
+ *
12
+ * The grammar is byte-identical to the `<domain>` production in
13
+ * `capability-ref.ts` — kebab, must start with a letter, lowercase only. Both
14
+ * derive from the same source of truth so a domain that parses here always
15
+ * parses as the domain of a ref, and vice versa.
16
+ */
17
+ const CAPABILITY_DOMAIN_REGEX = /^[a-z][a-z0-9-]*$/;
18
+
19
+ export type CapabilityDomain = string & {
20
+ readonly __capabilityDomain?: never;
21
+ };
22
+
23
+ export const CapabilityDomainSchema: z.ZodType<CapabilityDomain> = z
24
+ .string()
25
+ .regex(CAPABILITY_DOMAIN_REGEX, {
26
+ message:
27
+ 'CapabilityDomain must match ^[a-z][a-z0-9-]*$ (lowercase kebab, starting with a letter).',
28
+ }) as unknown as z.ZodType<CapabilityDomain>;
29
+
30
+ /** `true` iff `value` is a syntactically valid capability domain. */
31
+ export function isCapabilityDomain(value: string): value is CapabilityDomain {
32
+ return CAPABILITY_DOMAIN_REGEX.test(value);
33
+ }
34
+
35
+ /**
36
+ * Extract the domain from a capability ref WITHOUT running the full ref
37
+ * grammar. Used by guards that branch on ownership before the ref has been
38
+ * parsed (and by call sites that hold an already-validated ref).
39
+ *
40
+ * Returns `null` when the string carries no `:` separator or when the leading
41
+ * segment is not a valid domain — a caller must treat `null` as "undecidable",
42
+ * never as "not owned".
43
+ */
44
+ export function capabilityDomainOf(ref: string): CapabilityDomain | null {
45
+ const colonIdx = ref.indexOf(':');
46
+ if (colonIdx <= 0) {
47
+ return null;
48
+ }
49
+ const domain = ref.slice(0, colonIdx);
50
+ return isCapabilityDomain(domain) ? domain : null;
51
+ }
@@ -70,7 +70,7 @@ export interface CapabilityGrant {
70
70
  subject: SubjectRef;
71
71
  capability: CapabilityRef;
72
72
  /**
73
- * Glob over XVFS resource refs, e.g. `xema://org/acme/project/*\/kb/**`.
73
+ * Glob over XVFS resource refs, e.g. `xema://orgs/acme/project/*\/kb/**`.
74
74
  * Authorization-api owns glob semantics.
75
75
  */
76
76
  resourceGlob: string;