@native-knowledge/knowledge-sdk 0.0.0-stage → 0.1.0-rc.2

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 (203) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +29 -0
  3. package/README.md +34 -2
  4. package/dist/agent-entry.d.ts +291 -0
  5. package/dist/agent-entry.js +153 -0
  6. package/dist/agent-guidance-error.d.ts +15 -0
  7. package/dist/agent-guidance-error.js +46 -0
  8. package/dist/auth.d.ts +124 -0
  9. package/dist/auth.js +165 -0
  10. package/dist/index.d.ts +290 -0
  11. package/dist/index.js +166 -0
  12. package/dist/internal/contracts/artifact.d.ts +120 -0
  13. package/dist/internal/contracts/artifact.js +103 -0
  14. package/dist/internal/contracts/collection-control.d.ts +160 -0
  15. package/dist/internal/contracts/collection-control.js +69 -0
  16. package/dist/internal/contracts/collection.d.ts +263 -0
  17. package/dist/internal/contracts/collection.js +174 -0
  18. package/dist/internal/contracts/common.d.ts +17 -0
  19. package/dist/internal/contracts/common.js +16 -0
  20. package/dist/internal/contracts/currentness.d.ts +477 -0
  21. package/dist/internal/contracts/currentness.js +221 -0
  22. package/dist/internal/contracts/event.d.ts +60 -0
  23. package/dist/internal/contracts/event.js +35 -0
  24. package/dist/internal/contracts/evidence.d.ts +202 -0
  25. package/dist/internal/contracts/evidence.js +171 -0
  26. package/dist/internal/contracts/index.d.ts +54 -0
  27. package/dist/internal/contracts/index.js +54 -0
  28. package/dist/internal/contracts/material-capability.d.ts +88 -0
  29. package/dist/internal/contracts/material-capability.js +8 -0
  30. package/dist/internal/contracts/material-carrier.d.ts +104 -0
  31. package/dist/internal/contracts/material-carrier.js +15 -0
  32. package/dist/internal/contracts/material-context.d.ts +28 -0
  33. package/dist/internal/contracts/material-context.js +9 -0
  34. package/dist/internal/contracts/material-read.d.ts +152 -0
  35. package/dist/internal/contracts/material-read.js +12 -0
  36. package/dist/internal/contracts/observation.d.ts +75 -0
  37. package/dist/internal/contracts/observation.js +39 -0
  38. package/dist/internal/contracts/persistence.d.ts +370 -0
  39. package/dist/internal/contracts/persistence.js +239 -0
  40. package/dist/internal/contracts/project-intent.d.ts +218 -0
  41. package/dist/internal/contracts/project-intent.js +121 -0
  42. package/dist/internal/contracts/projection.d.ts +380 -0
  43. package/dist/internal/contracts/projection.js +194 -0
  44. package/dist/internal/contracts/public-reference.d.ts +237 -0
  45. package/dist/internal/contracts/public-reference.js +87 -0
  46. package/dist/internal/contracts/reference-record.d.ts +124 -0
  47. package/dist/internal/contracts/reference-record.js +55 -0
  48. package/dist/internal/contracts/remote-file.d.ts +128 -0
  49. package/dist/internal/contracts/remote-file.js +159 -0
  50. package/dist/internal/contracts/resource-scope.d.ts +40 -0
  51. package/dist/internal/contracts/resource-scope.js +38 -0
  52. package/dist/internal/contracts/review-packet.d.ts +274 -0
  53. package/dist/internal/contracts/review-packet.js +61 -0
  54. package/dist/internal/contracts/review-plane.d.ts +90 -0
  55. package/dist/internal/contracts/review-plane.js +89 -0
  56. package/dist/internal/contracts/rich-document.d.ts +641 -0
  57. package/dist/internal/contracts/rich-document.js +184 -0
  58. package/dist/internal/contracts/runtime-compatibility.d.ts +22 -0
  59. package/dist/internal/contracts/runtime-compatibility.js +55 -0
  60. package/dist/internal/contracts/runtime.d.ts +59 -0
  61. package/dist/internal/contracts/runtime.js +68 -0
  62. package/dist/internal/contracts/scheduler.d.ts +348 -0
  63. package/dist/internal/contracts/scheduler.js +256 -0
  64. package/dist/internal/contracts/signal.d.ts +113 -0
  65. package/dist/internal/contracts/signal.js +77 -0
  66. package/dist/internal/contracts/source-governance.d.ts +375 -0
  67. package/dist/internal/contracts/source-governance.js +194 -0
  68. package/dist/internal/contracts/source.d.ts +62 -0
  69. package/dist/internal/contracts/source.js +32 -0
  70. package/dist/internal/contracts/tenant-budget.d.ts +59 -0
  71. package/dist/internal/contracts/tenant-budget.js +34 -0
  72. package/dist/internal/contracts/tenant-collection-request.d.ts +209 -0
  73. package/dist/internal/contracts/tenant-collection-request.js +58 -0
  74. package/dist/internal/contracts/tenant-collection.d.ts +199 -0
  75. package/dist/internal/contracts/tenant-collection.js +66 -0
  76. package/dist/internal/contracts/tenant-currentness.d.ts +117 -0
  77. package/dist/internal/contracts/tenant-currentness.js +26 -0
  78. package/dist/internal/contracts/tenant-management.d.ts +286 -0
  79. package/dist/internal/contracts/tenant-management.js +27 -0
  80. package/dist/internal/contracts/tenant-material-api.d.ts +584 -0
  81. package/dist/internal/contracts/tenant-material-api.js +46 -0
  82. package/dist/internal/contracts/tenant-material-json-schema.js +16 -0
  83. package/dist/internal/contracts/tenant-pdf-text.d.ts +27 -0
  84. package/dist/internal/contracts/tenant-pdf-text.js +13 -0
  85. package/dist/internal/contracts/tenant-project-control.d.ts +94 -0
  86. package/dist/internal/contracts/tenant-project-control.js +19 -0
  87. package/dist/internal/contracts/tenant-public-reference.d.ts +179 -0
  88. package/dist/internal/contracts/tenant-public-reference.js +26 -0
  89. package/dist/internal/contracts/tenant-resource-api.d.ts +738 -0
  90. package/dist/internal/contracts/tenant-resource-api.js +70 -0
  91. package/dist/internal/contracts/tenant-resource.d.ts +298 -0
  92. package/dist/internal/contracts/tenant-resource.js +118 -0
  93. package/dist/internal/contracts/tenant-rich-document.d.ts +317 -0
  94. package/dist/internal/contracts/tenant-rich-document.js +17 -0
  95. package/dist/internal/contracts/tenant-source-binding.d.ts +44 -0
  96. package/dist/internal/contracts/tenant-source-binding.js +33 -0
  97. package/dist/internal/contracts/tenant-source-bridge.d.ts +70 -0
  98. package/dist/internal/contracts/tenant-source-bridge.js +9 -0
  99. package/dist/internal/contracts/tenant-source-cutover.d.ts +226 -0
  100. package/dist/internal/contracts/tenant-source-cutover.js +26 -0
  101. package/dist/internal/contracts/tenant-source-document.d.ts +163 -0
  102. package/dist/internal/contracts/tenant-source-document.js +38 -0
  103. package/dist/internal/contracts/tenant-source-lease.d.ts +1 -0
  104. package/dist/internal/contracts/tenant-source-lease.js +5 -0
  105. package/dist/internal/contracts/tenant-source.d.ts +223 -0
  106. package/dist/internal/contracts/tenant-source.js +83 -0
  107. package/dist/internal/contracts/tenant-web-collection.d.ts +287 -0
  108. package/dist/internal/contracts/tenant-web-collection.js +118 -0
  109. package/dist/internal/contracts/tenant-web-content-plan.d.ts +86 -0
  110. package/dist/internal/contracts/tenant-web-content-plan.js +39 -0
  111. package/dist/internal/contracts/tenant-web-content-result.d.ts +63 -0
  112. package/dist/internal/contracts/tenant-web-content-result.js +15 -0
  113. package/dist/internal/contracts/tenant-web-content.d.ts +383 -0
  114. package/dist/internal/contracts/tenant-web-content.js +16 -0
  115. package/dist/internal/contracts/tenant-web-crawl.d.ts +310 -0
  116. package/dist/internal/contracts/tenant-web-crawl.js +55 -0
  117. package/dist/internal/contracts/tenant-web-dynamic.d.ts +698 -0
  118. package/dist/internal/contracts/tenant-web-dynamic.js +68 -0
  119. package/dist/internal/contracts/tenant-web-results.d.ts +66 -0
  120. package/dist/internal/contracts/tenant-web-results.js +41 -0
  121. package/dist/internal/contracts/tenant-web-workflow.d.ts +494 -0
  122. package/dist/internal/contracts/tenant-web-workflow.js +29 -0
  123. package/dist/internal/serving-contracts/agent-catalog.d.ts +70 -0
  124. package/dist/internal/serving-contracts/agent-catalog.js +56 -0
  125. package/dist/internal/serving-contracts/agent-entry.d.ts +13148 -0
  126. package/dist/internal/serving-contracts/agent-entry.js +57 -0
  127. package/dist/internal/serving-contracts/agent-guidance-shapes.d.ts +263 -0
  128. package/dist/internal/serving-contracts/agent-guidance-shapes.js +12 -0
  129. package/dist/internal/serving-contracts/agent-input-hints.d.ts +24 -0
  130. package/dist/internal/serving-contracts/agent-input-hints.js +104 -0
  131. package/dist/internal/serving-contracts/body-search.d.ts +231 -0
  132. package/dist/internal/serving-contracts/body-search.js +16 -0
  133. package/dist/internal/serving-contracts/consumer.d.ts +989 -0
  134. package/dist/internal/serving-contracts/consumer.js +45 -0
  135. package/dist/internal/serving-contracts/core.d.ts +333 -0
  136. package/dist/internal/serving-contracts/core.js +76 -0
  137. package/dist/internal/serving-contracts/http.d.ts +2874 -0
  138. package/dist/internal/serving-contracts/http.js +64 -0
  139. package/dist/internal/serving-contracts/index.d.ts +24 -0
  140. package/dist/internal/serving-contracts/index.js +25 -0
  141. package/dist/internal/serving-contracts/management.d.ts +424 -0
  142. package/dist/internal/serving-contracts/management.js +15 -0
  143. package/dist/internal/serving-contracts/material-capabilities.d.ts +508 -0
  144. package/dist/internal/serving-contracts/material-capabilities.js +14 -0
  145. package/dist/internal/serving-contracts/material-index-status.d.ts +55 -0
  146. package/dist/internal/serving-contracts/material-index-status.js +5 -0
  147. package/dist/internal/serving-contracts/mcp.d.ts +2218 -0
  148. package/dist/internal/serving-contracts/mcp.js +140 -0
  149. package/dist/internal/serving-contracts/tenant-governance.d.ts +236 -0
  150. package/dist/internal/serving-contracts/tenant-governance.js +13 -0
  151. package/dist/internal/serving-contracts/tenant-management.d.ts +6276 -0
  152. package/dist/internal/serving-contracts/tenant-management.js +89 -0
  153. package/dist/internal/serving-contracts/tenant-project.d.ts +7550 -0
  154. package/dist/internal/serving-contracts/tenant-project.js +39 -0
  155. package/dist/internal/serving-contracts/tenant-runtime.d.ts +9674 -0
  156. package/dist/internal/serving-contracts/tenant-runtime.js +37 -0
  157. package/dist/internal/serving-contracts/tenant-session.d.ts +87 -0
  158. package/dist/internal/serving-contracts/tenant-session.js +8 -0
  159. package/dist/internal/serving-contracts/tenant-web-content.d.ts +4606 -0
  160. package/dist/internal/serving-contracts/tenant-web-content.js +20 -0
  161. package/dist/internal/serving-contracts/tenant-web-crawl.d.ts +2958 -0
  162. package/dist/internal/serving-contracts/tenant-web-crawl.js +13 -0
  163. package/dist/internal/serving-contracts/tenant-web-dynamic.d.ts +3902 -0
  164. package/dist/internal/serving-contracts/tenant-web-dynamic.js +20 -0
  165. package/dist/internal/serving-contracts/tenant-web-workflow.d.ts +5750 -0
  166. package/dist/internal/serving-contracts/tenant-web-workflow.js +36 -0
  167. package/dist/internal/serving-contracts/tenant-web.d.ts +6418 -0
  168. package/dist/internal/serving-contracts/tenant-web.js +53 -0
  169. package/dist/internal/serving-contracts/tenant-workspace.d.ts +6451 -0
  170. package/dist/internal/serving-contracts/tenant-workspace.js +28 -0
  171. package/dist/internal/serving-contracts/workflow.d.ts +439 -0
  172. package/dist/internal/serving-contracts/workflow.js +37 -0
  173. package/dist/material-stream.d.ts +18 -0
  174. package/dist/material-stream.js +29 -0
  175. package/dist/oauth.d.ts +268 -0
  176. package/dist/oauth.js +539 -0
  177. package/dist/resource.d.ts +88 -0
  178. package/dist/resource.js +123 -0
  179. package/dist/session.d.ts +4 -0
  180. package/dist/session.js +3 -0
  181. package/dist/tenant-client.d.ts +169 -0
  182. package/dist/tenant-client.js +58 -0
  183. package/dist/tenant-management.d.ts +240 -0
  184. package/dist/tenant-management.js +149 -0
  185. package/dist/tenant-project.d.ts +57 -0
  186. package/dist/tenant-project.js +63 -0
  187. package/dist/tenant-runtime.d.ts +174 -0
  188. package/dist/tenant-runtime.js +17 -0
  189. package/dist/tenant-web-content.d.ts +44 -0
  190. package/dist/tenant-web-content.js +70 -0
  191. package/dist/tenant-web-crawl.d.ts +42 -0
  192. package/dist/tenant-web-crawl.js +39 -0
  193. package/dist/tenant-web-dynamic.d.ts +42 -0
  194. package/dist/tenant-web-dynamic.js +39 -0
  195. package/dist/tenant-web-workflow.d.ts +43 -0
  196. package/dist/tenant-web-workflow.js +63 -0
  197. package/dist/tenant-web.d.ts +42 -0
  198. package/dist/tenant-web.js +39 -0
  199. package/dist/tenant-workspace.d.ts +36 -0
  200. package/dist/tenant-workspace.js +21 -0
  201. package/dist/token-provider.d.ts +14 -0
  202. package/dist/token-provider.js +21 -0
  203. package/package.json +45 -3
@@ -0,0 +1,584 @@
1
+ /** Tenant material wire contract. Project selection is explicit; provenance is never an authorization context. */
2
+ import { z } from 'zod';
3
+ export declare const tenantMaterialToolSchemas: {
4
+ readonly knowledge_material_list: z.ZodObject<{
5
+ refPrefix: z.ZodOptional<z.ZodString>;
6
+ resourceType: z.ZodOptional<z.ZodString>;
7
+ sourceProjectKey: z.ZodOptional<z.ZodString>;
8
+ after: z.ZodOptional<z.ZodString>;
9
+ limit: z.ZodOptional<z.ZodNumber>;
10
+ projectRef: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strict>;
12
+ readonly knowledge_material_describe: z.ZodObject<{
13
+ ref: z.ZodString;
14
+ projectRef: z.ZodOptional<z.ZodString>;
15
+ }, z.core.$strict>;
16
+ readonly knowledge_material_read: z.ZodObject<{
17
+ ref: z.ZodString;
18
+ projectRef: z.ZodOptional<z.ZodString>;
19
+ }, z.core.$strict>;
20
+ readonly knowledge_material_capabilities: z.ZodObject<{
21
+ ref: z.ZodString;
22
+ projectRef: z.ZodOptional<z.ZodString>;
23
+ }, z.core.$strict>;
24
+ readonly knowledge_material_changes: z.ZodObject<{
25
+ afterSeq: z.ZodOptional<z.ZodNumber>;
26
+ limit: z.ZodOptional<z.ZodNumber>;
27
+ projectRef: z.ZodOptional<z.ZodString>;
28
+ }, z.core.$strict>;
29
+ readonly knowledge_material_window: z.ZodObject<{
30
+ projectRef: z.ZodOptional<z.ZodString>;
31
+ }, z.core.$strict>;
32
+ readonly knowledge_material_search: z.ZodObject<{
33
+ resourceType: z.ZodOptional<z.ZodString>;
34
+ sourceProjectKey: z.ZodOptional<z.ZodString>;
35
+ query: z.ZodString;
36
+ afterId: z.ZodOptional<z.ZodNumber>;
37
+ limit: z.ZodOptional<z.ZodNumber>;
38
+ projectRef: z.ZodOptional<z.ZodString>;
39
+ }, z.core.$strict>;
40
+ readonly knowledge_material_partitions: z.ZodObject<{
41
+ afterRouteId: z.ZodOptional<z.ZodString>;
42
+ limit: z.ZodOptional<z.ZodNumber>;
43
+ projectRef: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strict>;
45
+ readonly knowledge_material_partition_page: z.ZodObject<{
46
+ partition: z.ZodEnum<{
47
+ OWNER: "OWNER";
48
+ }>;
49
+ after: z.ZodOptional<z.ZodString>;
50
+ limit: z.ZodOptional<z.ZodNumber>;
51
+ projectRef: z.ZodOptional<z.ZodString>;
52
+ }, z.core.$strict>;
53
+ readonly knowledge_material_route_page: z.ZodObject<{
54
+ routeId: z.ZodString;
55
+ after: z.ZodOptional<z.ZodString>;
56
+ limit: z.ZodOptional<z.ZodNumber>;
57
+ projectRef: z.ZodOptional<z.ZodString>;
58
+ }, z.core.$strict>;
59
+ readonly knowledge_material_media: z.ZodObject<{
60
+ ref: z.ZodString;
61
+ projectRef: z.ZodOptional<z.ZodString>;
62
+ afterOrdinal: z.ZodOptional<z.ZodNumber>;
63
+ limit: z.ZodOptional<z.ZodNumber>;
64
+ documentRef: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strict>;
66
+ readonly knowledge_material_index_status: z.ZodObject<{
67
+ afterSourceKey: z.ZodOptional<z.ZodString>;
68
+ afterNodeId: z.ZodOptional<z.ZodString>;
69
+ sourceProjectKey: z.ZodOptional<z.ZodString>;
70
+ limit: z.ZodOptional<z.ZodNumber>;
71
+ projectRef: z.ZodOptional<z.ZodString>;
72
+ }, z.core.$strict>;
73
+ };
74
+ export type TenantMaterialToolName = keyof typeof tenantMaterialToolSchemas;
75
+ export declare const tenantMaterialEnvelopeSchema: z.ZodObject<{
76
+ schemaVersion: z.ZodLiteral<1>;
77
+ context: z.ZodDiscriminatedUnion<[z.ZodObject<{
78
+ type: z.ZodLiteral<"TENANT">;
79
+ tenantId: z.ZodString;
80
+ tenantRef: z.ZodString;
81
+ }, z.core.$strict>, z.ZodObject<{
82
+ type: z.ZodLiteral<"PROJECT">;
83
+ tenantId: z.ZodString;
84
+ projectKey: z.ZodString;
85
+ projectRef: z.ZodString;
86
+ }, z.core.$strict>], "type">;
87
+ data: z.ZodUnknown;
88
+ }, z.core.$strict>;
89
+ export declare const tenantMaterialToolInputSchemas: Record<TenantMaterialToolName, Record<string, unknown>>;
90
+ export declare const tenantMaterialDataSchemas: {
91
+ readonly knowledge_material_list: z.ZodObject<{
92
+ items: z.ZodArray<z.ZodObject<{
93
+ ref: z.ZodString;
94
+ resourceType: z.ZodString;
95
+ sourceProjectKey: z.ZodString;
96
+ identityHash: z.ZodString;
97
+ kind: z.ZodString;
98
+ classification: z.ZodEnum<{
99
+ PUBLIC: "PUBLIC";
100
+ PUBLIC_METADATA: "PUBLIC_METADATA";
101
+ TENANT: "TENANT";
102
+ INTERNAL: "INTERNAL";
103
+ FDE_INTERNAL: "FDE_INTERNAL";
104
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
105
+ UNKNOWN: "UNKNOWN";
106
+ }>;
107
+ mediaType: z.ZodString;
108
+ decision: z.ZodObject<{
109
+ schemaVersion: z.ZodLiteral<1>;
110
+ action: z.ZodEnum<{
111
+ ALLOW: "ALLOW";
112
+ DENY: "DENY";
113
+ }>;
114
+ reasonCodes: z.ZodArray<z.ZodEnum<{
115
+ UNAVAILABLE: "UNAVAILABLE";
116
+ NOT_FOUND: "NOT_FOUND";
117
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
118
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
119
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
120
+ }>>;
121
+ assessedAt: z.ZodISODateTime;
122
+ }, z.core.$strict>;
123
+ }, z.core.$strict>>;
124
+ nextAfter: z.ZodNullable<z.ZodString>;
125
+ }, z.core.$strict>;
126
+ readonly knowledge_material_describe: z.ZodObject<{
127
+ item: z.ZodNullable<z.ZodObject<{
128
+ ref: z.ZodString;
129
+ resourceType: z.ZodString;
130
+ sourceProjectKey: z.ZodString;
131
+ identityHash: z.ZodString;
132
+ kind: z.ZodString;
133
+ classification: z.ZodEnum<{
134
+ PUBLIC: "PUBLIC";
135
+ PUBLIC_METADATA: "PUBLIC_METADATA";
136
+ TENANT: "TENANT";
137
+ INTERNAL: "INTERNAL";
138
+ FDE_INTERNAL: "FDE_INTERNAL";
139
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
140
+ UNKNOWN: "UNKNOWN";
141
+ }>;
142
+ mediaType: z.ZodString;
143
+ decision: z.ZodObject<{
144
+ schemaVersion: z.ZodLiteral<1>;
145
+ action: z.ZodEnum<{
146
+ ALLOW: "ALLOW";
147
+ DENY: "DENY";
148
+ }>;
149
+ reasonCodes: z.ZodArray<z.ZodEnum<{
150
+ UNAVAILABLE: "UNAVAILABLE";
151
+ NOT_FOUND: "NOT_FOUND";
152
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
153
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
154
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
155
+ }>>;
156
+ assessedAt: z.ZodISODateTime;
157
+ }, z.core.$strict>;
158
+ }, z.core.$strict>>;
159
+ byteLength: z.ZodNullable<z.ZodNumber>;
160
+ downloadUrl: z.ZodNullable<z.ZodString>;
161
+ }, z.core.$strict>;
162
+ readonly knowledge_material_read: z.ZodObject<{
163
+ item: z.ZodNullable<z.ZodObject<{
164
+ ref: z.ZodString;
165
+ resourceType: z.ZodString;
166
+ sourceProjectKey: z.ZodString;
167
+ identityHash: z.ZodString;
168
+ kind: z.ZodString;
169
+ classification: z.ZodEnum<{
170
+ PUBLIC: "PUBLIC";
171
+ PUBLIC_METADATA: "PUBLIC_METADATA";
172
+ TENANT: "TENANT";
173
+ INTERNAL: "INTERNAL";
174
+ FDE_INTERNAL: "FDE_INTERNAL";
175
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
176
+ UNKNOWN: "UNKNOWN";
177
+ }>;
178
+ mediaType: z.ZodString;
179
+ decision: z.ZodObject<{
180
+ schemaVersion: z.ZodLiteral<1>;
181
+ action: z.ZodEnum<{
182
+ ALLOW: "ALLOW";
183
+ DENY: "DENY";
184
+ }>;
185
+ reasonCodes: z.ZodArray<z.ZodEnum<{
186
+ UNAVAILABLE: "UNAVAILABLE";
187
+ NOT_FOUND: "NOT_FOUND";
188
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
189
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
190
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
191
+ }>>;
192
+ assessedAt: z.ZodISODateTime;
193
+ }, z.core.$strict>;
194
+ }, z.core.$strict>>;
195
+ byteLength: z.ZodNullable<z.ZodNumber>;
196
+ decision: z.ZodObject<{
197
+ schemaVersion: z.ZodLiteral<1>;
198
+ action: z.ZodEnum<{
199
+ ALLOW: "ALLOW";
200
+ DENY: "DENY";
201
+ }>;
202
+ reasonCodes: z.ZodArray<z.ZodEnum<{
203
+ UNAVAILABLE: "UNAVAILABLE";
204
+ NOT_FOUND: "NOT_FOUND";
205
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
206
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
207
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
208
+ }>>;
209
+ assessedAt: z.ZodISODateTime;
210
+ }, z.core.$strict>;
211
+ descriptor: z.ZodNullable<z.ZodObject<{
212
+ contentHash: z.ZodString;
213
+ mediaType: z.ZodString;
214
+ byteLength: z.ZodNumber;
215
+ }, z.core.$strict>>;
216
+ delivery: z.ZodEnum<{
217
+ UNAVAILABLE: "UNAVAILABLE";
218
+ INLINE_BASE64: "INLINE_BASE64";
219
+ DOWNLOAD: "DOWNLOAD";
220
+ }>;
221
+ contentBase64: z.ZodNullable<z.ZodString>;
222
+ downloadUrl: z.ZodNullable<z.ZodString>;
223
+ verification: z.ZodEnum<{
224
+ VERIFIED: "VERIFIED";
225
+ NOT_VERIFIED: "NOT_VERIFIED";
226
+ }>;
227
+ }, z.core.$strict>;
228
+ readonly knowledge_material_capabilities: z.ZodNullable<z.ZodObject<{
229
+ item: z.ZodObject<{
230
+ ref: z.ZodString;
231
+ resourceType: z.ZodString;
232
+ sourceProjectKey: z.ZodString;
233
+ identityHash: z.ZodString;
234
+ kind: z.ZodString;
235
+ classification: z.ZodEnum<{
236
+ PUBLIC: "PUBLIC";
237
+ PUBLIC_METADATA: "PUBLIC_METADATA";
238
+ TENANT: "TENANT";
239
+ INTERNAL: "INTERNAL";
240
+ FDE_INTERNAL: "FDE_INTERNAL";
241
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
242
+ UNKNOWN: "UNKNOWN";
243
+ }>;
244
+ mediaType: z.ZodString;
245
+ decision: z.ZodObject<{
246
+ schemaVersion: z.ZodLiteral<1>;
247
+ action: z.ZodEnum<{
248
+ ALLOW: "ALLOW";
249
+ DENY: "DENY";
250
+ }>;
251
+ reasonCodes: z.ZodArray<z.ZodEnum<{
252
+ UNAVAILABLE: "UNAVAILABLE";
253
+ NOT_FOUND: "NOT_FOUND";
254
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
255
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
256
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
257
+ }>>;
258
+ assessedAt: z.ZodISODateTime;
259
+ }, z.core.$strict>;
260
+ }, z.core.$strict>;
261
+ materialAccess: z.ZodObject<{
262
+ schemaVersion: z.ZodLiteral<1>;
263
+ action: z.ZodEnum<{
264
+ ALLOW: "ALLOW";
265
+ DENY: "DENY";
266
+ }>;
267
+ reasonCodes: z.ZodArray<z.ZodEnum<{
268
+ UNAVAILABLE: "UNAVAILABLE";
269
+ NOT_FOUND: "NOT_FOUND";
270
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
271
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
272
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
273
+ }>>;
274
+ assessedAt: z.ZodISODateTime;
275
+ }, z.core.$strict>;
276
+ representation: z.ZodObject<{
277
+ state: z.ZodEnum<{
278
+ MISSING: "MISSING";
279
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
280
+ READY: "READY";
281
+ UNSUPPORTED: "UNSUPPORTED";
282
+ DENIED: "DENIED";
283
+ }>;
284
+ format: z.ZodEnum<{
285
+ BYTES: "BYTES";
286
+ JSON: "JSON";
287
+ }>;
288
+ transfer: z.ZodEnum<{
289
+ UNSUPPORTED: "UNSUPPORTED";
290
+ VERIFIED_STREAM: "VERIFIED_STREAM";
291
+ BUFFERED_JSON: "BUFFERED_JSON";
292
+ }>;
293
+ contentHash: z.ZodNullable<z.ZodString>;
294
+ mediaType: z.ZodString;
295
+ byteLength: z.ZodNullable<z.ZodNumber>;
296
+ methods: z.ZodArray<z.ZodEnum<{
297
+ GET: "GET";
298
+ HEAD: "HEAD";
299
+ }>>;
300
+ range: z.ZodEnum<{
301
+ NONE: "NONE";
302
+ SINGLE: "SINGLE";
303
+ }>;
304
+ verification: z.ZodLiteral<"ON_READ">;
305
+ verificationChunkBytes: z.ZodNullable<z.ZodNumber>;
306
+ }, z.core.$strict>;
307
+ }, z.core.$strict>>;
308
+ readonly knowledge_material_changes: z.ZodObject<{
309
+ items: z.ZodArray<z.ZodObject<{
310
+ seq: z.ZodNumber;
311
+ eventType: z.ZodEnum<{
312
+ MATERIAL_REGISTERED: "MATERIAL_REGISTERED";
313
+ MATERIAL_LINEAGE_CHANGED: "MATERIAL_LINEAGE_CHANGED";
314
+ ROUTE_CHANGED: "ROUTE_CHANGED";
315
+ PROJECT_SCOPE_CHANGED: "PROJECT_SCOPE_CHANGED";
316
+ }>;
317
+ artifactRef: z.ZodNullable<z.ZodString>;
318
+ contentHash: z.ZodNullable<z.ZodString>;
319
+ routeId: z.ZodNullable<z.ZodString>;
320
+ createdAt: z.ZodString;
321
+ }, z.core.$strict>>;
322
+ nextAfter: z.ZodNullable<z.ZodNumber>;
323
+ }, z.core.$strict>;
324
+ readonly knowledge_material_window: z.ZodObject<{
325
+ retainedThroughSeq: z.ZodNumber;
326
+ headSeq: z.ZodNumber;
327
+ }, z.core.$strict>;
328
+ readonly knowledge_material_search: z.ZodObject<{
329
+ items: z.ZodArray<z.ZodObject<{
330
+ item: z.ZodObject<{
331
+ ref: z.ZodString;
332
+ resourceType: z.ZodString;
333
+ sourceProjectKey: z.ZodString;
334
+ identityHash: z.ZodString;
335
+ kind: z.ZodString;
336
+ classification: z.ZodEnum<{
337
+ PUBLIC: "PUBLIC";
338
+ PUBLIC_METADATA: "PUBLIC_METADATA";
339
+ TENANT: "TENANT";
340
+ INTERNAL: "INTERNAL";
341
+ FDE_INTERNAL: "FDE_INTERNAL";
342
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
343
+ UNKNOWN: "UNKNOWN";
344
+ }>;
345
+ mediaType: z.ZodString;
346
+ decision: z.ZodObject<{
347
+ schemaVersion: z.ZodLiteral<1>;
348
+ action: z.ZodEnum<{
349
+ ALLOW: "ALLOW";
350
+ DENY: "DENY";
351
+ }>;
352
+ reasonCodes: z.ZodArray<z.ZodEnum<{
353
+ UNAVAILABLE: "UNAVAILABLE";
354
+ NOT_FOUND: "NOT_FOUND";
355
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
356
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
357
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
358
+ }>>;
359
+ assessedAt: z.ZodISODateTime;
360
+ }, z.core.$strict>;
361
+ }, z.core.$strict>;
362
+ title: z.ZodString;
363
+ summary: z.ZodString;
364
+ }, z.core.$strict>>;
365
+ nextAfterId: z.ZodNullable<z.ZodNumber>;
366
+ indexState: z.ZodEnum<{
367
+ PARTIAL_BACKFILL: "PARTIAL_BACKFILL";
368
+ SYNCED_AS_OF_LAST_OBSERVATION: "SYNCED_AS_OF_LAST_OBSERVATION";
369
+ }>;
370
+ configuredSourceCount: z.ZodNumber;
371
+ sourceCountIsLowerBound: z.ZodBoolean;
372
+ queryCoverage: z.ZodLiteral<"DESCRIPTIVE_METADATA_V1">;
373
+ order: z.ZodLiteral<"INDEX_ROWID_ASC">;
374
+ }, z.core.$strict>;
375
+ readonly knowledge_material_partitions: z.ZodObject<{
376
+ owner: z.ZodLiteral<"OWNER">;
377
+ items: z.ZodArray<z.ZodObject<{
378
+ routeId: z.ZodString;
379
+ sourceProjectKey: z.ZodString;
380
+ matchType: z.ZodEnum<{
381
+ SOURCE_PROJECT: "SOURCE_PROJECT";
382
+ REF: "REF";
383
+ SOURCE_SET: "SOURCE_SET";
384
+ }>;
385
+ matchValue: z.ZodString;
386
+ }, z.core.$strict>>;
387
+ nextAfterRouteId: z.ZodNullable<z.ZodString>;
388
+ }, z.core.$strict>;
389
+ readonly knowledge_material_partition_page: z.ZodObject<{
390
+ partition: z.ZodLiteral<"OWNER">;
391
+ items: z.ZodArray<z.ZodObject<{
392
+ ref: z.ZodString;
393
+ resourceType: z.ZodString;
394
+ sourceProjectKey: z.ZodString;
395
+ identityHash: z.ZodString;
396
+ kind: z.ZodString;
397
+ classification: z.ZodEnum<{
398
+ PUBLIC: "PUBLIC";
399
+ PUBLIC_METADATA: "PUBLIC_METADATA";
400
+ TENANT: "TENANT";
401
+ INTERNAL: "INTERNAL";
402
+ FDE_INTERNAL: "FDE_INTERNAL";
403
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
404
+ UNKNOWN: "UNKNOWN";
405
+ }>;
406
+ mediaType: z.ZodString;
407
+ decision: z.ZodObject<{
408
+ schemaVersion: z.ZodLiteral<1>;
409
+ action: z.ZodEnum<{
410
+ ALLOW: "ALLOW";
411
+ DENY: "DENY";
412
+ }>;
413
+ reasonCodes: z.ZodArray<z.ZodEnum<{
414
+ UNAVAILABLE: "UNAVAILABLE";
415
+ NOT_FOUND: "NOT_FOUND";
416
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
417
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
418
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
419
+ }>>;
420
+ assessedAt: z.ZodISODateTime;
421
+ }, z.core.$strict>;
422
+ }, z.core.$strict>>;
423
+ nextAfter: z.ZodNullable<z.ZodString>;
424
+ }, z.core.$strict>;
425
+ readonly knowledge_material_route_page: z.ZodNullable<z.ZodObject<{
426
+ routeState: z.ZodEnum<{
427
+ ACTIVE: "ACTIVE";
428
+ REVOKED: "REVOKED";
429
+ UNBOUND: "UNBOUND";
430
+ }>;
431
+ items: z.ZodArray<z.ZodObject<{
432
+ ref: z.ZodString;
433
+ resourceType: z.ZodString;
434
+ sourceProjectKey: z.ZodString;
435
+ identityHash: z.ZodString;
436
+ kind: z.ZodString;
437
+ classification: z.ZodEnum<{
438
+ PUBLIC: "PUBLIC";
439
+ PUBLIC_METADATA: "PUBLIC_METADATA";
440
+ TENANT: "TENANT";
441
+ INTERNAL: "INTERNAL";
442
+ FDE_INTERNAL: "FDE_INTERNAL";
443
+ ACCESS_CONTROLLED: "ACCESS_CONTROLLED";
444
+ UNKNOWN: "UNKNOWN";
445
+ }>;
446
+ mediaType: z.ZodString;
447
+ decision: z.ZodObject<{
448
+ schemaVersion: z.ZodLiteral<1>;
449
+ action: z.ZodEnum<{
450
+ ALLOW: "ALLOW";
451
+ DENY: "DENY";
452
+ }>;
453
+ reasonCodes: z.ZodArray<z.ZodEnum<{
454
+ UNAVAILABLE: "UNAVAILABLE";
455
+ NOT_FOUND: "NOT_FOUND";
456
+ CONTENT_ACCESS_DENIED: "CONTENT_ACCESS_DENIED";
457
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
458
+ UNSUPPORTED_RESOURCE: "UNSUPPORTED_RESOURCE";
459
+ }>>;
460
+ assessedAt: z.ZodISODateTime;
461
+ }, z.core.$strict>;
462
+ }, z.core.$strict>>;
463
+ nextAfter: z.ZodNullable<z.ZodString>;
464
+ }, z.core.$strict>>;
465
+ readonly knowledge_material_media: z.ZodNullable<z.ZodObject<{
466
+ ref: z.ZodString;
467
+ sourceContentHash: z.ZodString;
468
+ documentRef: z.ZodNullable<z.ZodString>;
469
+ documentContentHash: z.ZodNullable<z.ZodString>;
470
+ state: z.ZodEnum<{
471
+ MISSING: "MISSING";
472
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
473
+ READY: "READY";
474
+ UNSUPPORTED: "UNSUPPORTED";
475
+ DENIED: "DENIED";
476
+ }>;
477
+ items: z.ZodArray<z.ZodObject<{
478
+ ordinal: z.ZodNumber;
479
+ kind: z.ZodEnum<{
480
+ IMAGE: "IMAGE";
481
+ AUDIO: "AUDIO";
482
+ VIDEO: "VIDEO";
483
+ }>;
484
+ sourceUrl: z.ZodString;
485
+ canonicalUrl: z.ZodNullable<z.ZodString>;
486
+ availability: z.ZodEnum<{
487
+ MIRRORED: "MIRRORED";
488
+ REMOTE_ONLY: "REMOTE_ONLY";
489
+ UNAVAILABLE: "UNAVAILABLE";
490
+ }>;
491
+ mediaRef: z.ZodNullable<z.ZodString>;
492
+ contentHash: z.ZodNullable<z.ZodString>;
493
+ mediaType: z.ZodNullable<z.ZodString>;
494
+ byteLength: z.ZodNullable<z.ZodNumber>;
495
+ state: z.ZodEnum<{
496
+ MISSING: "MISSING";
497
+ REMOTE_ONLY: "REMOTE_ONLY";
498
+ UNAVAILABLE: "UNAVAILABLE";
499
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
500
+ READY: "READY";
501
+ DENIED: "DENIED";
502
+ }>;
503
+ representation: z.ZodNullable<z.ZodObject<{
504
+ state: z.ZodEnum<{
505
+ MISSING: "MISSING";
506
+ INTEGRITY_MISMATCH: "INTEGRITY_MISMATCH";
507
+ READY: "READY";
508
+ UNSUPPORTED: "UNSUPPORTED";
509
+ DENIED: "DENIED";
510
+ }>;
511
+ format: z.ZodEnum<{
512
+ BYTES: "BYTES";
513
+ JSON: "JSON";
514
+ }>;
515
+ transfer: z.ZodEnum<{
516
+ UNSUPPORTED: "UNSUPPORTED";
517
+ VERIFIED_STREAM: "VERIFIED_STREAM";
518
+ BUFFERED_JSON: "BUFFERED_JSON";
519
+ }>;
520
+ contentHash: z.ZodNullable<z.ZodString>;
521
+ mediaType: z.ZodString;
522
+ byteLength: z.ZodNullable<z.ZodNumber>;
523
+ methods: z.ZodArray<z.ZodEnum<{
524
+ GET: "GET";
525
+ HEAD: "HEAD";
526
+ }>>;
527
+ range: z.ZodEnum<{
528
+ NONE: "NONE";
529
+ SINGLE: "SINGLE";
530
+ }>;
531
+ verification: z.ZodLiteral<"ON_READ">;
532
+ verificationChunkBytes: z.ZodNullable<z.ZodNumber>;
533
+ }, z.core.$strict>>;
534
+ }, z.core.$strict>>;
535
+ nextAfterOrdinal: z.ZodNullable<z.ZodNumber>;
536
+ }, z.core.$strict>>;
537
+ readonly knowledge_material_index_status: z.ZodObject<{
538
+ queryCoverage: z.ZodLiteral<"DESCRIPTIVE_METADATA_V1">;
539
+ indexedFields: z.ZodTuple<[z.ZodLiteral<"TITLE">, z.ZodLiteral<"SUMMARY">], null>;
540
+ bodyIndexed: z.ZodLiteral<false>;
541
+ semanticIndexed: z.ZodLiteral<false>;
542
+ items: z.ZodArray<z.ZodObject<{
543
+ sourceProjectKey: z.ZodString;
544
+ nodeId: z.ZodString;
545
+ directoryThroughSeq: z.ZodNumber;
546
+ searchThroughSeq: z.ZodNullable<z.ZodNumber>;
547
+ observedMaxSeq: z.ZodNullable<z.ZodNumber>;
548
+ checkpointUpdatedAt: z.ZodNullable<z.ZodString>;
549
+ state: z.ZodEnum<{
550
+ PARTIAL_BACKFILL: "PARTIAL_BACKFILL";
551
+ SYNCED_AS_OF_CHECKPOINT: "SYNCED_AS_OF_CHECKPOINT";
552
+ }>;
553
+ }, z.core.$strict>>;
554
+ nextAfter: z.ZodNullable<z.ZodObject<{
555
+ sourceProjectKey: z.ZodString;
556
+ nodeId: z.ZodString;
557
+ }, z.core.$strict>>;
558
+ }, z.core.$strict>;
559
+ };
560
+ export declare const tenantMaterialToolOutputSchemas: Record<TenantMaterialToolName, Record<string, unknown>>;
561
+ export declare const tenantMaterialProviderSchema: z.ZodObject<{
562
+ schemaVersion: z.ZodLiteral<14>;
563
+ provider: z.ZodLiteral<"knowledge-v2">;
564
+ codeRevision: z.ZodString;
565
+ context: z.ZodLiteral<"TENANT_DEFAULT_PROJECT_EXPLICIT">;
566
+ scope: z.ZodLiteral<"knowledge.material.read">;
567
+ mcpEndpoint: z.ZodString;
568
+ resource: z.ZodString;
569
+ issuer: z.ZodString;
570
+ tokenEndpoint: z.ZodString;
571
+ revocationEndpoint: z.ZodString;
572
+ protocols: z.ZodArray<z.ZodString>;
573
+ tenantReadEnabled: z.ZodBoolean;
574
+ projectScopeEnabled: z.ZodBoolean;
575
+ externalTenantParameter: z.ZodLiteral<"external_tenant_id">;
576
+ materialEndpoint: z.ZodString;
577
+ authorizationEndpoint: z.ZodString;
578
+ authorizationContextParameters: z.ZodTuple<[z.ZodLiteral<"tenant_ref">, z.ZodLiteral<"project_ref">], null>;
579
+ tools: z.ZodArray<z.ZodString>;
580
+ projectScopeManagement: z.ZodLiteral<"knowledge.material.scope">;
581
+ inlineMaxBytes: z.ZodLiteral<32768>;
582
+ rawUsagePolicy: z.ZodLiteral<"CONSUMER_DECIDES">;
583
+ referenceReadMaxBytes: z.ZodLiteral<16777216>;
584
+ }, z.core.$strict>;
@@ -0,0 +1,46 @@
1
+ /** Tenant material wire contract. Project selection is explicit; provenance is never an authorization context. */
2
+ import { z } from 'zod';
3
+ import { tenantMaterialLegacyJsonSchema } from './tenant-material-json-schema.js';
4
+ import { stableUriSchema, projectKeySchema, sha256Schema } from './common.js';
5
+ import { rawRetrievalDecisionSchema, rawContentDescriptorSchema, rawMaterialDirectoryItemSchema } from './material-read.js';
6
+ import { materialCapabilitySchema } from './material-capability.js';
7
+ import { materialContextSchema } from './material-context.js';
8
+ import { materialResourceTypeSchema } from './material-carrier.js';
9
+ const context = { projectRef: stableUriSchema.optional() }, limit = z.number().int().min(1).max(20).optional(), after = stableUriSchema.optional(), filters = { resourceType: materialResourceTypeSchema.optional(), sourceProjectKey: projectKeySchema.optional() };
10
+ const ref = z.object({ ...context, ref: stableUriSchema }).strict();
11
+ export const tenantMaterialToolSchemas = {
12
+ knowledge_material_list: z.object({ ...context, after, limit, ...filters, refPrefix: z.string().regex(/^[a-z][a-z0-9+.-]*:\/\/[!-~]*$/i).max(256).optional() }).strict(),
13
+ knowledge_material_describe: ref,
14
+ knowledge_material_read: ref,
15
+ knowledge_material_capabilities: ref,
16
+ knowledge_material_changes: z.object({ ...context, afterSeq: z.number().int().nonnegative().safe().optional(), limit }).strict(),
17
+ knowledge_material_window: z.object(context).strict(),
18
+ knowledge_material_search: z.object({ ...context, query: z.string().min(2).max(200), afterId: z.number().int().nonnegative().safe().optional(), limit, ...filters }).strict(),
19
+ knowledge_material_partitions: z.object({ ...context, afterRouteId: z.string().regex(/^[a-f0-9]{64}$/).optional(), limit }).strict(),
20
+ knowledge_material_partition_page: z.object({ ...context, partition: z.enum(['OWNER']), after, limit }).strict(),
21
+ knowledge_material_route_page: z.object({ ...context, routeId: z.string().regex(/^[a-f0-9]{64}$/), after, limit }).strict(),
22
+ knowledge_material_media: ref.extend({ afterOrdinal: z.number().int().min(-1).safe().optional(), limit, documentRef: stableUriSchema.optional() }).strict(),
23
+ knowledge_material_index_status: z.object({ ...context, afterSourceKey: projectKeySchema.optional(), afterNodeId: z.string().min(1).max(128).optional(), sourceProjectKey: projectKeySchema.optional(), limit }).strict(),
24
+ };
25
+ export const tenantMaterialEnvelopeSchema = z.object({ schemaVersion: z.literal(1), context: materialContextSchema, data: z.unknown() }).strict();
26
+ export const tenantMaterialToolInputSchemas = Object.fromEntries(Object.entries(tenantMaterialToolSchemas).map(([name, schema]) => [name, tenantMaterialLegacyJsonSchema(schema)]));
27
+ const nonnegative = z.number().int().nonnegative().safe(), refPosition = stableUriSchema.nullable(), items = z.array(rawMaterialDirectoryItemSchema).max(100), description = z.object({ item: rawMaterialDirectoryItemSchema.nullable(), byteLength: nonnegative.nullable(), downloadUrl: z.string().max(8192).nullable() }).strict();
28
+ const read = z.object({ item: rawMaterialDirectoryItemSchema.nullable(), byteLength: nonnegative.nullable(), decision: rawRetrievalDecisionSchema, descriptor: rawContentDescriptorSchema.nullable(), delivery: z.enum(['INLINE_BASE64', 'DOWNLOAD', 'UNAVAILABLE']), contentBase64: z.string().max(43692).nullable(), downloadUrl: z.string().max(8192).nullable(), verification: z.enum(['VERIFIED', 'NOT_VERIFIED']) }).strict();
29
+ const route = z.object({ routeId: z.string().regex(/^[a-f0-9]{64}$/), sourceProjectKey: projectKeySchema, matchType: z.enum(['SOURCE_PROJECT', 'SOURCE_SET', 'REF']), matchValue: z.string().min(1).max(4096) }).strict();
30
+ const representation = materialCapabilitySchema.shape.representation;
31
+ export const tenantMaterialDataSchemas = {
32
+ knowledge_material_list: z.object({ items, nextAfter: refPosition }).strict(),
33
+ knowledge_material_describe: description,
34
+ knowledge_material_read: read,
35
+ knowledge_material_capabilities: materialCapabilitySchema.nullable(),
36
+ knowledge_material_changes: z.object({ items: z.array(z.object({ seq: nonnegative, eventType: z.enum(['MATERIAL_REGISTERED', 'MATERIAL_LINEAGE_CHANGED', 'ROUTE_CHANGED', 'PROJECT_SCOPE_CHANGED']), artifactRef: stableUriSchema.nullable(), contentHash: sha256Schema.nullable(), routeId: z.string().regex(/^[a-f0-9]{64}$/).nullable(), createdAt: z.string().datetime() }).strict()).max(100), nextAfter: nonnegative.nullable() }).strict(),
37
+ knowledge_material_window: z.object({ retainedThroughSeq: nonnegative, headSeq: nonnegative }).strict(),
38
+ knowledge_material_search: z.object({ items: z.array(z.object({ item: rawMaterialDirectoryItemSchema, title: z.string().max(512), summary: z.string().max(1024) }).strict()).max(20), nextAfterId: nonnegative.nullable(), indexState: z.enum(['PARTIAL_BACKFILL', 'SYNCED_AS_OF_LAST_OBSERVATION']), configuredSourceCount: nonnegative, sourceCountIsLowerBound: z.boolean(), queryCoverage: z.literal('DESCRIPTIVE_METADATA_V1'), order: z.literal('INDEX_ROWID_ASC') }).strict(),
39
+ knowledge_material_partitions: z.object({ owner: z.literal('OWNER'), items: z.array(route).max(100), nextAfterRouteId: z.string().regex(/^[a-f0-9]{64}$/).nullable() }).strict(),
40
+ knowledge_material_partition_page: z.object({ partition: z.literal('OWNER'), items, nextAfter: refPosition }).strict(),
41
+ knowledge_material_route_page: z.object({ routeState: z.enum(['ACTIVE', 'REVOKED', 'UNBOUND']), items, nextAfter: refPosition }).strict().nullable(),
42
+ knowledge_material_media: z.object({ ref: stableUriSchema, sourceContentHash: sha256Schema, documentRef: stableUriSchema.nullable(), documentContentHash: sha256Schema.nullable(), state: z.enum(['READY', 'MISSING', 'DENIED', 'UNSUPPORTED', 'INTEGRITY_MISMATCH']), items: z.array(z.object({ ordinal: nonnegative, kind: z.enum(['IMAGE', 'VIDEO', 'AUDIO']), sourceUrl: z.string().url(), canonicalUrl: z.string().url().nullable(), availability: z.enum(['MIRRORED', 'REMOTE_ONLY', 'UNAVAILABLE']), mediaRef: stableUriSchema.nullable(), contentHash: sha256Schema.nullable(), mediaType: z.string().nullable(), byteLength: nonnegative.nullable(), state: z.enum(['READY', 'REMOTE_ONLY', 'UNAVAILABLE', 'MISSING', 'DENIED', 'INTEGRITY_MISMATCH']), representation: representation.nullable() }).strict()).max(100), nextAfterOrdinal: nonnegative.nullable() }).strict().nullable(),
43
+ knowledge_material_index_status: z.object({ queryCoverage: z.literal('DESCRIPTIVE_METADATA_V1'), indexedFields: z.tuple([z.literal('TITLE'), z.literal('SUMMARY')]), bodyIndexed: z.literal(false), semanticIndexed: z.literal(false), items: z.array(z.object({ sourceProjectKey: projectKeySchema, nodeId: z.string().min(1).max(128), directoryThroughSeq: nonnegative, searchThroughSeq: nonnegative.nullable(), observedMaxSeq: nonnegative.nullable(), checkpointUpdatedAt: z.string().datetime().nullable(), state: z.enum(['SYNCED_AS_OF_CHECKPOINT', 'PARTIAL_BACKFILL']) }).strict()).max(100), nextAfter: z.object({ sourceProjectKey: projectKeySchema, nodeId: z.string().min(1).max(128) }).strict().nullable() }).strict(),
44
+ };
45
+ export const tenantMaterialToolOutputSchemas = Object.fromEntries(Object.entries(tenantMaterialDataSchemas).map(([name, data]) => [name, tenantMaterialLegacyJsonSchema(tenantMaterialEnvelopeSchema.extend({ data }))]));
46
+ export const tenantMaterialProviderSchema = z.object({ schemaVersion: z.literal(14), provider: z.literal('knowledge-v2'), codeRevision: z.string().min(1).max(256), context: z.literal('TENANT_DEFAULT_PROJECT_EXPLICIT'), scope: z.literal('knowledge.material.read'), mcpEndpoint: stableUriSchema, resource: stableUriSchema, issuer: stableUriSchema, tokenEndpoint: stableUriSchema, revocationEndpoint: stableUriSchema, protocols: z.array(z.string().max(32)).min(1).max(2), tenantReadEnabled: z.boolean(), projectScopeEnabled: z.boolean(), externalTenantParameter: z.literal('external_tenant_id'), materialEndpoint: stableUriSchema, authorizationEndpoint: stableUriSchema, authorizationContextParameters: z.tuple([z.literal('tenant_ref'), z.literal('project_ref')]), tools: z.array(z.string()).max(32), projectScopeManagement: z.literal('knowledge.material.scope'), inlineMaxBytes: z.literal(32768), rawUsagePolicy: z.literal('CONSUMER_DECIDES'), referenceReadMaxBytes: z.literal(16777216) }).strict();
@@ -0,0 +1,16 @@
1
+ import { z } from 'zod';
2
+ /** Preserve Provider14 discovery bytes; validation still uses the patched Zod schemas. */
3
+ export function tenantMaterialLegacyJsonSchema(schema) {
4
+ return z.toJSONSchema(schema, { target: 'draft-07', override: ({ zodSchema, jsonSchema }) => {
5
+ const def = zodSchema._zod.def;
6
+ if (def.type !== 'number')
7
+ return;
8
+ const last = def.checks?.at(-1)?._zod.def;
9
+ // Zod4.5 .safe() replaced advertised bounds; newer Zod correctly intersects them.
10
+ // Only this frozen discovery envelope retains that historical representation.
11
+ if (last?.check === 'number_format' && 'format' in last && last.format === 'safeint') {
12
+ jsonSchema.minimum = Number.MIN_SAFE_INTEGER;
13
+ jsonSchema.maximum = Number.MAX_SAFE_INTEGER;
14
+ }
15
+ } });
16
+ }