@x12i/memorix-scoper-contracts 1.0.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 (62) hide show
  1. package/README.md +9 -0
  2. package/dist/errors.d.ts +24 -0
  3. package/dist/errors.d.ts.map +1 -0
  4. package/dist/errors.js +70 -0
  5. package/dist/errors.js.map +1 -0
  6. package/dist/evidence.d.ts +2 -0
  7. package/dist/evidence.d.ts.map +1 -0
  8. package/dist/evidence.js +2 -0
  9. package/dist/evidence.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +3 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/schemas/catalog.d.ts +441 -0
  15. package/dist/schemas/catalog.d.ts.map +1 -0
  16. package/dist/schemas/catalog.js +55 -0
  17. package/dist/schemas/catalog.js.map +1 -0
  18. package/dist/schemas/evidence.d.ts +602 -0
  19. package/dist/schemas/evidence.d.ts.map +1 -0
  20. package/dist/schemas/evidence.js +83 -0
  21. package/dist/schemas/evidence.js.map +1 -0
  22. package/dist/schemas/index.d.ts +6 -0
  23. package/dist/schemas/index.d.ts.map +1 -0
  24. package/dist/schemas/index.js +6 -0
  25. package/dist/schemas/index.js.map +1 -0
  26. package/dist/schemas/nexum-persist.d.ts +47 -0
  27. package/dist/schemas/nexum-persist.d.ts.map +1 -0
  28. package/dist/schemas/nexum-persist.js +27 -0
  29. package/dist/schemas/nexum-persist.js.map +1 -0
  30. package/dist/schemas/profile.d.ts +69 -0
  31. package/dist/schemas/profile.d.ts.map +1 -0
  32. package/dist/schemas/profile.js +15 -0
  33. package/dist/schemas/profile.js.map +1 -0
  34. package/dist/schemas/request.d.ts +296 -0
  35. package/dist/schemas/request.d.ts.map +1 -0
  36. package/dist/schemas/request.js +98 -0
  37. package/dist/schemas/request.js.map +1 -0
  38. package/dist/schemas.d.ts +1077 -0
  39. package/dist/schemas.d.ts.map +1 -0
  40. package/dist/schemas.js +199 -0
  41. package/dist/schemas.js.map +1 -0
  42. package/dist/schemas.test.d.ts +2 -0
  43. package/dist/schemas.test.d.ts.map +1 -0
  44. package/dist/schemas.test.js +29 -0
  45. package/dist/schemas.test.js.map +1 -0
  46. package/package.json +53 -0
  47. package/schemas/CatalogEntry.json +17 -0
  48. package/schemas/CatalogEntry.schema.json +157 -0
  49. package/schemas/EvidenceBundle.json +15 -0
  50. package/schemas/EvidenceBundle.schema.json +469 -0
  51. package/schemas/EvidenceItem.json +15 -0
  52. package/schemas/EvidenceRef.json +9 -0
  53. package/schemas/EvidenceSelection.schema.json +83 -0
  54. package/schemas/RetrievalPlan.json +13 -0
  55. package/schemas/RetrievalPlan.schema.json +73 -0
  56. package/schemas/RetrievalStep.json +14 -0
  57. package/schemas/ScopeRequest.json +28 -0
  58. package/schemas/ScopeRequest.schema.json +108 -0
  59. package/schemas/ScoperBudgets.json +14 -0
  60. package/schemas/ScoperProfile.json +17 -0
  61. package/schemas/TrustedExecutionContext.json +22 -0
  62. package/schemas/TrustedExecutionContext.schema.json +129 -0
package/README.md ADDED
@@ -0,0 +1,9 @@
1
+ # @x12i/memorix-scoper-contracts
2
+
3
+ Zod schemas, evidence types, and normalized error codes for Memorix Scoper.
4
+
5
+ ```ts
6
+ import { ScopeRequestSchema, ScoperError } from "@x12i/memorix-scoper-contracts";
7
+ ```
8
+
9
+ JSON Schema files: package export `./json-schema/*` → `schemas/`.
@@ -0,0 +1,24 @@
1
+ /** Normalized Scoper / SDK error codes. */
2
+ export declare const SCOPER_ERROR_CODES: readonly ["INVALID_REQUEST", "UNAUTHORIZED", "FORBIDDEN", "NOT_FOUND", "READ_NOT_FOUND", "BUDGET_EXCEEDED", "RESULT_TOO_LARGE", "CATALOG_REJECTED", "DECODER_REJECTED", "UNSUPPORTED_CONTRACT_VERSION", "UPSTREAM_CONTRACT_MISMATCH", "ESTATE_PATH_UNAVAILABLE", "NEXUM_EXPLORE_UNAVAILABLE", "PROVIDER_NOT_IMPLEMENTED", "RECURSIVE_SCOPE_CALL", "REASONER_INVALID_PLAN", "REASONER_REPAIR_FAILED", "UPSTREAM_UNAVAILABLE", "TIMEOUT", "INTERNAL", "FEATURE_DISABLED"];
3
+ export type ScoperErrorCode = (typeof SCOPER_ERROR_CODES)[number];
4
+ export declare class ScoperError extends Error {
5
+ readonly code: ScoperErrorCode;
6
+ readonly details?: unknown;
7
+ readonly retryable: boolean;
8
+ constructor(code: ScoperErrorCode, message: string, options?: {
9
+ details?: unknown;
10
+ retryable?: boolean;
11
+ cause?: unknown;
12
+ });
13
+ toJSON(): {
14
+ name: string;
15
+ code: "INVALID_REQUEST" | "UNAUTHORIZED" | "FORBIDDEN" | "NOT_FOUND" | "READ_NOT_FOUND" | "BUDGET_EXCEEDED" | "RESULT_TOO_LARGE" | "CATALOG_REJECTED" | "DECODER_REJECTED" | "UNSUPPORTED_CONTRACT_VERSION" | "UPSTREAM_CONTRACT_MISMATCH" | "ESTATE_PATH_UNAVAILABLE" | "NEXUM_EXPLORE_UNAVAILABLE" | "PROVIDER_NOT_IMPLEMENTED" | "RECURSIVE_SCOPE_CALL" | "REASONER_INVALID_PLAN" | "REASONER_REPAIR_FAILED" | "UPSTREAM_UNAVAILABLE" | "TIMEOUT" | "INTERNAL" | "FEATURE_DISABLED";
16
+ message: string;
17
+ details: unknown;
18
+ retryable: boolean;
19
+ };
20
+ }
21
+ export declare function isScoperError(err: unknown): err is ScoperError;
22
+ /** Map provider / dispatcher / Memorix platform errors into normalized Scoper codes. */
23
+ export declare function normalizeUpstreamError(err: unknown): ScoperError;
24
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C,eAAO,MAAM,kBAAkB,ycAsBrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAG1B,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IASvE,MAAM;;;;;;;CASP;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAE9D;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,CA0BhE"}
package/dist/errors.js ADDED
@@ -0,0 +1,70 @@
1
+ /** Normalized Scoper / SDK error codes. */
2
+ export const SCOPER_ERROR_CODES = [
3
+ "INVALID_REQUEST",
4
+ "UNAUTHORIZED",
5
+ "FORBIDDEN",
6
+ "NOT_FOUND",
7
+ "READ_NOT_FOUND",
8
+ "BUDGET_EXCEEDED",
9
+ "RESULT_TOO_LARGE",
10
+ "CATALOG_REJECTED",
11
+ "DECODER_REJECTED",
12
+ "UNSUPPORTED_CONTRACT_VERSION",
13
+ "UPSTREAM_CONTRACT_MISMATCH",
14
+ "ESTATE_PATH_UNAVAILABLE",
15
+ "NEXUM_EXPLORE_UNAVAILABLE",
16
+ "PROVIDER_NOT_IMPLEMENTED",
17
+ "RECURSIVE_SCOPE_CALL",
18
+ "REASONER_INVALID_PLAN",
19
+ "REASONER_REPAIR_FAILED",
20
+ "UPSTREAM_UNAVAILABLE",
21
+ "TIMEOUT",
22
+ "INTERNAL",
23
+ "FEATURE_DISABLED",
24
+ ];
25
+ export class ScoperError extends Error {
26
+ code;
27
+ details;
28
+ retryable;
29
+ constructor(code, message, options) {
30
+ super(message, options?.cause !== undefined ? { cause: options.cause } : undefined);
31
+ this.name = "ScoperError";
32
+ this.code = code;
33
+ this.details = options?.details;
34
+ this.retryable = options?.retryable ?? false;
35
+ }
36
+ toJSON() {
37
+ return {
38
+ name: this.name,
39
+ code: this.code,
40
+ message: this.message,
41
+ details: this.details,
42
+ retryable: this.retryable,
43
+ };
44
+ }
45
+ }
46
+ export function isScoperError(err) {
47
+ return err instanceof ScoperError;
48
+ }
49
+ /** Map provider / dispatcher / Memorix platform errors into normalized Scoper codes. */
50
+ export function normalizeUpstreamError(err) {
51
+ if (err instanceof ScoperError)
52
+ return err;
53
+ const anyErr = err;
54
+ const platformCode = anyErr?.body?.error?.code ?? anyErr?.code ?? "";
55
+ const message = anyErr?.message ?? (err instanceof Error ? err.message : String(err));
56
+ if (platformCode === "READ_NOT_FOUND" || anyErr?.statusCode === 404) {
57
+ return new ScoperError("READ_NOT_FOUND", message, { details: err });
58
+ }
59
+ if (platformCode === "PROVIDER_NOT_IMPLEMENTED") {
60
+ return new ScoperError("PROVIDER_NOT_IMPLEMENTED", message, { details: err });
61
+ }
62
+ if (platformCode === "ESTATE_PATH_UNAVAILABLE") {
63
+ return new ScoperError("ESTATE_PATH_UNAVAILABLE", message, { details: err });
64
+ }
65
+ if (/timeout/i.test(message) || platformCode === "TIMEOUT") {
66
+ return new ScoperError("TIMEOUT", message, { details: err, retryable: true });
67
+ }
68
+ return new ScoperError("UPSTREAM_UNAVAILABLE", message, { details: err, retryable: true });
69
+ }
70
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./schemas/evidence.js";
2
+ //# sourceMappingURL=evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./schemas/evidence.js";
2
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./schemas/index.js";
2
+ export * from "./errors.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from "./schemas/index.js";
2
+ export * from "./errors.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,441 @@
1
+ import { z } from "zod";
2
+ export declare const CatalogCapabilitySchema: z.ZodEnum<["subjects.get", "subjects.list", "subjects.query", "subjects.getNexumSnapshot", "estate.startSession", "estate.getBag", "estate.query", "explore.query", "catalog.describe"]>;
3
+ export type CatalogCapability = z.infer<typeof CatalogCapabilitySchema>;
4
+ export declare const CatalogEntrySchema: z.ZodObject<{
5
+ id: z.ZodString;
6
+ capability: z.ZodEnum<["subjects.get", "subjects.list", "subjects.query", "subjects.getNexumSnapshot", "estate.startSession", "estate.getBag", "estate.query", "explore.query", "catalog.describe"]>;
7
+ objectType: z.ZodOptional<z.ZodString>;
8
+ contentType: z.ZodOptional<z.ZodString>;
9
+ description: z.ZodString;
10
+ version: z.ZodString;
11
+ enabled: z.ZodDefault<z.ZodBoolean>;
12
+ requiresFeature: z.ZodOptional<z.ZodString>;
13
+ epistemicDefault: z.ZodOptional<z.ZodEnum<["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"]>>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ id: string;
16
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
17
+ description: string;
18
+ version: string;
19
+ enabled: boolean;
20
+ objectType?: string | undefined;
21
+ contentType?: string | undefined;
22
+ requiresFeature?: string | undefined;
23
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
24
+ }, {
25
+ id: string;
26
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
27
+ description: string;
28
+ version: string;
29
+ objectType?: string | undefined;
30
+ contentType?: string | undefined;
31
+ enabled?: boolean | undefined;
32
+ requiresFeature?: string | undefined;
33
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
34
+ }>;
35
+ export type CatalogEntry = z.infer<typeof CatalogEntrySchema>;
36
+ export declare const CatalogSchema: z.ZodObject<{
37
+ version: z.ZodString;
38
+ entries: z.ZodArray<z.ZodObject<{
39
+ id: z.ZodString;
40
+ capability: z.ZodEnum<["subjects.get", "subjects.list", "subjects.query", "subjects.getNexumSnapshot", "estate.startSession", "estate.getBag", "estate.query", "explore.query", "catalog.describe"]>;
41
+ objectType: z.ZodOptional<z.ZodString>;
42
+ contentType: z.ZodOptional<z.ZodString>;
43
+ description: z.ZodString;
44
+ version: z.ZodString;
45
+ enabled: z.ZodDefault<z.ZodBoolean>;
46
+ requiresFeature: z.ZodOptional<z.ZodString>;
47
+ epistemicDefault: z.ZodOptional<z.ZodEnum<["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"]>>;
48
+ }, "strip", z.ZodTypeAny, {
49
+ id: string;
50
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
51
+ description: string;
52
+ version: string;
53
+ enabled: boolean;
54
+ objectType?: string | undefined;
55
+ contentType?: string | undefined;
56
+ requiresFeature?: string | undefined;
57
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
58
+ }, {
59
+ id: string;
60
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
61
+ description: string;
62
+ version: string;
63
+ objectType?: string | undefined;
64
+ contentType?: string | undefined;
65
+ enabled?: boolean | undefined;
66
+ requiresFeature?: string | undefined;
67
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
68
+ }>, "many">;
69
+ }, "strip", z.ZodTypeAny, {
70
+ entries: {
71
+ id: string;
72
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
73
+ description: string;
74
+ version: string;
75
+ enabled: boolean;
76
+ objectType?: string | undefined;
77
+ contentType?: string | undefined;
78
+ requiresFeature?: string | undefined;
79
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
80
+ }[];
81
+ version: string;
82
+ }, {
83
+ entries: {
84
+ id: string;
85
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
86
+ description: string;
87
+ version: string;
88
+ objectType?: string | undefined;
89
+ contentType?: string | undefined;
90
+ enabled?: boolean | undefined;
91
+ requiresFeature?: string | undefined;
92
+ epistemicDefault?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
93
+ }[];
94
+ version: string;
95
+ }>;
96
+ export type Catalog = z.infer<typeof CatalogSchema>;
97
+ export declare const RetrievalStepSchema: z.ZodObject<{
98
+ id: z.ZodString;
99
+ capability: z.ZodEnum<["subjects.get", "subjects.list", "subjects.query", "subjects.getNexumSnapshot", "estate.startSession", "estate.getBag", "estate.query", "explore.query", "catalog.describe"]>;
100
+ catalogEntryId: z.ZodString;
101
+ args: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
102
+ parallelGroup: z.ZodOptional<z.ZodString>;
103
+ required: z.ZodDefault<z.ZodBoolean>;
104
+ }, "strip", z.ZodTypeAny, {
105
+ id: string;
106
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
107
+ catalogEntryId: string;
108
+ args: Record<string, unknown>;
109
+ required: boolean;
110
+ parallelGroup?: string | undefined;
111
+ }, {
112
+ id: string;
113
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
114
+ catalogEntryId: string;
115
+ args?: Record<string, unknown> | undefined;
116
+ parallelGroup?: string | undefined;
117
+ required?: boolean | undefined;
118
+ }>;
119
+ export type RetrievalStep = z.infer<typeof RetrievalStepSchema>;
120
+ export declare const EvidenceSelectionSchema: z.ZodObject<{
121
+ stepId: z.ZodString;
122
+ refs: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
123
+ kind: z.ZodLiteral<"subject">;
124
+ orgId: z.ZodString;
125
+ objectType: z.ZodString;
126
+ contentType: z.ZodString;
127
+ recordId: z.ZodString;
128
+ revision: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
129
+ }, "strip", z.ZodTypeAny, {
130
+ kind: "subject";
131
+ orgId: string;
132
+ objectType: string;
133
+ contentType: string;
134
+ recordId: string;
135
+ revision?: string | number | undefined;
136
+ }, {
137
+ kind: "subject";
138
+ orgId: string;
139
+ objectType: string;
140
+ contentType: string;
141
+ recordId: string;
142
+ revision?: string | number | undefined;
143
+ }>, z.ZodObject<{
144
+ kind: z.ZodLiteral<"estate-bag">;
145
+ orgId: z.ZodString;
146
+ sessionId: z.ZodString;
147
+ bagId: z.ZodString;
148
+ path: z.ZodOptional<z.ZodString>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ kind: "estate-bag";
151
+ orgId: string;
152
+ sessionId: string;
153
+ bagId: string;
154
+ path?: string | undefined;
155
+ }, {
156
+ kind: "estate-bag";
157
+ orgId: string;
158
+ sessionId: string;
159
+ bagId: string;
160
+ path?: string | undefined;
161
+ }>, z.ZodObject<{
162
+ kind: z.ZodLiteral<"knowledge-explore">;
163
+ orgId: z.ZodString;
164
+ exploreQueryId: z.ZodString;
165
+ nodeIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ kind: "knowledge-explore";
168
+ orgId: string;
169
+ exploreQueryId: string;
170
+ nodeIds?: string[] | undefined;
171
+ }, {
172
+ kind: "knowledge-explore";
173
+ orgId: string;
174
+ exploreQueryId: string;
175
+ nodeIds?: string[] | undefined;
176
+ }>]>, "many">>;
177
+ maxItems: z.ZodOptional<z.ZodNumber>;
178
+ epistemic: z.ZodOptional<z.ZodEnum<["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"]>>;
179
+ notes: z.ZodOptional<z.ZodString>;
180
+ }, "strip", z.ZodTypeAny, {
181
+ stepId: string;
182
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
183
+ refs?: ({
184
+ kind: "subject";
185
+ orgId: string;
186
+ objectType: string;
187
+ contentType: string;
188
+ recordId: string;
189
+ revision?: string | number | undefined;
190
+ } | {
191
+ kind: "estate-bag";
192
+ orgId: string;
193
+ sessionId: string;
194
+ bagId: string;
195
+ path?: string | undefined;
196
+ } | {
197
+ kind: "knowledge-explore";
198
+ orgId: string;
199
+ exploreQueryId: string;
200
+ nodeIds?: string[] | undefined;
201
+ })[] | undefined;
202
+ maxItems?: number | undefined;
203
+ notes?: string | undefined;
204
+ }, {
205
+ stepId: string;
206
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
207
+ refs?: ({
208
+ kind: "subject";
209
+ orgId: string;
210
+ objectType: string;
211
+ contentType: string;
212
+ recordId: string;
213
+ revision?: string | number | undefined;
214
+ } | {
215
+ kind: "estate-bag";
216
+ orgId: string;
217
+ sessionId: string;
218
+ bagId: string;
219
+ path?: string | undefined;
220
+ } | {
221
+ kind: "knowledge-explore";
222
+ orgId: string;
223
+ exploreQueryId: string;
224
+ nodeIds?: string[] | undefined;
225
+ })[] | undefined;
226
+ maxItems?: number | undefined;
227
+ notes?: string | undefined;
228
+ }>;
229
+ export type EvidenceSelection = z.infer<typeof EvidenceSelectionSchema>;
230
+ export declare const RetrievalPlanSchema: z.ZodObject<{
231
+ planId: z.ZodString;
232
+ rationale: z.ZodString;
233
+ steps: z.ZodArray<z.ZodObject<{
234
+ id: z.ZodString;
235
+ capability: z.ZodEnum<["subjects.get", "subjects.list", "subjects.query", "subjects.getNexumSnapshot", "estate.startSession", "estate.getBag", "estate.query", "explore.query", "catalog.describe"]>;
236
+ catalogEntryId: z.ZodString;
237
+ args: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
238
+ parallelGroup: z.ZodOptional<z.ZodString>;
239
+ required: z.ZodDefault<z.ZodBoolean>;
240
+ }, "strip", z.ZodTypeAny, {
241
+ id: string;
242
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
243
+ catalogEntryId: string;
244
+ args: Record<string, unknown>;
245
+ required: boolean;
246
+ parallelGroup?: string | undefined;
247
+ }, {
248
+ id: string;
249
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
250
+ catalogEntryId: string;
251
+ args?: Record<string, unknown> | undefined;
252
+ parallelGroup?: string | undefined;
253
+ required?: boolean | undefined;
254
+ }>, "many">;
255
+ selections: z.ZodDefault<z.ZodArray<z.ZodObject<{
256
+ stepId: z.ZodString;
257
+ refs: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
258
+ kind: z.ZodLiteral<"subject">;
259
+ orgId: z.ZodString;
260
+ objectType: z.ZodString;
261
+ contentType: z.ZodString;
262
+ recordId: z.ZodString;
263
+ revision: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
264
+ }, "strip", z.ZodTypeAny, {
265
+ kind: "subject";
266
+ orgId: string;
267
+ objectType: string;
268
+ contentType: string;
269
+ recordId: string;
270
+ revision?: string | number | undefined;
271
+ }, {
272
+ kind: "subject";
273
+ orgId: string;
274
+ objectType: string;
275
+ contentType: string;
276
+ recordId: string;
277
+ revision?: string | number | undefined;
278
+ }>, z.ZodObject<{
279
+ kind: z.ZodLiteral<"estate-bag">;
280
+ orgId: z.ZodString;
281
+ sessionId: z.ZodString;
282
+ bagId: z.ZodString;
283
+ path: z.ZodOptional<z.ZodString>;
284
+ }, "strip", z.ZodTypeAny, {
285
+ kind: "estate-bag";
286
+ orgId: string;
287
+ sessionId: string;
288
+ bagId: string;
289
+ path?: string | undefined;
290
+ }, {
291
+ kind: "estate-bag";
292
+ orgId: string;
293
+ sessionId: string;
294
+ bagId: string;
295
+ path?: string | undefined;
296
+ }>, z.ZodObject<{
297
+ kind: z.ZodLiteral<"knowledge-explore">;
298
+ orgId: z.ZodString;
299
+ exploreQueryId: z.ZodString;
300
+ nodeIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
301
+ }, "strip", z.ZodTypeAny, {
302
+ kind: "knowledge-explore";
303
+ orgId: string;
304
+ exploreQueryId: string;
305
+ nodeIds?: string[] | undefined;
306
+ }, {
307
+ kind: "knowledge-explore";
308
+ orgId: string;
309
+ exploreQueryId: string;
310
+ nodeIds?: string[] | undefined;
311
+ }>]>, "many">>;
312
+ maxItems: z.ZodOptional<z.ZodNumber>;
313
+ epistemic: z.ZodOptional<z.ZodEnum<["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"]>>;
314
+ notes: z.ZodOptional<z.ZodString>;
315
+ }, "strip", z.ZodTypeAny, {
316
+ stepId: string;
317
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
318
+ refs?: ({
319
+ kind: "subject";
320
+ orgId: string;
321
+ objectType: string;
322
+ contentType: string;
323
+ recordId: string;
324
+ revision?: string | number | undefined;
325
+ } | {
326
+ kind: "estate-bag";
327
+ orgId: string;
328
+ sessionId: string;
329
+ bagId: string;
330
+ path?: string | undefined;
331
+ } | {
332
+ kind: "knowledge-explore";
333
+ orgId: string;
334
+ exploreQueryId: string;
335
+ nodeIds?: string[] | undefined;
336
+ })[] | undefined;
337
+ maxItems?: number | undefined;
338
+ notes?: string | undefined;
339
+ }, {
340
+ stepId: string;
341
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
342
+ refs?: ({
343
+ kind: "subject";
344
+ orgId: string;
345
+ objectType: string;
346
+ contentType: string;
347
+ recordId: string;
348
+ revision?: string | number | undefined;
349
+ } | {
350
+ kind: "estate-bag";
351
+ orgId: string;
352
+ sessionId: string;
353
+ bagId: string;
354
+ path?: string | undefined;
355
+ } | {
356
+ kind: "knowledge-explore";
357
+ orgId: string;
358
+ exploreQueryId: string;
359
+ nodeIds?: string[] | undefined;
360
+ })[] | undefined;
361
+ maxItems?: number | undefined;
362
+ notes?: string | undefined;
363
+ }>, "many">>;
364
+ answerDraft: z.ZodOptional<z.ZodString>;
365
+ }, "strip", z.ZodTypeAny, {
366
+ planId: string;
367
+ rationale: string;
368
+ steps: {
369
+ id: string;
370
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
371
+ catalogEntryId: string;
372
+ args: Record<string, unknown>;
373
+ required: boolean;
374
+ parallelGroup?: string | undefined;
375
+ }[];
376
+ selections: {
377
+ stepId: string;
378
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
379
+ refs?: ({
380
+ kind: "subject";
381
+ orgId: string;
382
+ objectType: string;
383
+ contentType: string;
384
+ recordId: string;
385
+ revision?: string | number | undefined;
386
+ } | {
387
+ kind: "estate-bag";
388
+ orgId: string;
389
+ sessionId: string;
390
+ bagId: string;
391
+ path?: string | undefined;
392
+ } | {
393
+ kind: "knowledge-explore";
394
+ orgId: string;
395
+ exploreQueryId: string;
396
+ nodeIds?: string[] | undefined;
397
+ })[] | undefined;
398
+ maxItems?: number | undefined;
399
+ notes?: string | undefined;
400
+ }[];
401
+ answerDraft?: string | undefined;
402
+ }, {
403
+ planId: string;
404
+ rationale: string;
405
+ steps: {
406
+ id: string;
407
+ capability: "subjects.get" | "subjects.list" | "subjects.query" | "subjects.getNexumSnapshot" | "estate.startSession" | "estate.getBag" | "estate.query" | "explore.query" | "catalog.describe";
408
+ catalogEntryId: string;
409
+ args?: Record<string, unknown> | undefined;
410
+ parallelGroup?: string | undefined;
411
+ required?: boolean | undefined;
412
+ }[];
413
+ selections?: {
414
+ stepId: string;
415
+ epistemic?: "OBSERVED" | "INFERRED" | "POLICY_CANDIDATE" | "REACHABLE" | "UNKNOWN" | undefined;
416
+ refs?: ({
417
+ kind: "subject";
418
+ orgId: string;
419
+ objectType: string;
420
+ contentType: string;
421
+ recordId: string;
422
+ revision?: string | number | undefined;
423
+ } | {
424
+ kind: "estate-bag";
425
+ orgId: string;
426
+ sessionId: string;
427
+ bagId: string;
428
+ path?: string | undefined;
429
+ } | {
430
+ kind: "knowledge-explore";
431
+ orgId: string;
432
+ exploreQueryId: string;
433
+ nodeIds?: string[] | undefined;
434
+ })[] | undefined;
435
+ maxItems?: number | undefined;
436
+ notes?: string | undefined;
437
+ }[] | undefined;
438
+ answerDraft?: string | undefined;
439
+ }>;
440
+ export type RetrievalPlan = z.infer<typeof RetrievalPlanSchema>;
441
+ //# sourceMappingURL=catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/schemas/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,uBAAuB,0LAUlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;EAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { z } from "zod";
2
+ import { EvidenceRefSchema } from "./evidence.js";
3
+ export const CatalogCapabilitySchema = z.enum([
4
+ "subjects.get",
5
+ "subjects.list",
6
+ "subjects.query",
7
+ "subjects.getNexumSnapshot",
8
+ "estate.startSession",
9
+ "estate.getBag",
10
+ "estate.query",
11
+ "explore.query",
12
+ "catalog.describe",
13
+ ]);
14
+ export const CatalogEntrySchema = z.object({
15
+ id: z.string().min(1),
16
+ capability: CatalogCapabilitySchema,
17
+ objectType: z.string().optional(),
18
+ contentType: z.string().optional(),
19
+ description: z.string().min(1),
20
+ version: z.string().min(1),
21
+ enabled: z.boolean().default(true),
22
+ requiresFeature: z.string().optional(),
23
+ epistemicDefault: z
24
+ .enum(["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"])
25
+ .optional(),
26
+ });
27
+ export const CatalogSchema = z.object({
28
+ version: z.string().min(1),
29
+ entries: z.array(CatalogEntrySchema),
30
+ });
31
+ export const RetrievalStepSchema = z.object({
32
+ id: z.string().min(1),
33
+ capability: CatalogCapabilitySchema,
34
+ catalogEntryId: z.string().min(1),
35
+ args: z.record(z.unknown()).default({}),
36
+ parallelGroup: z.string().optional(),
37
+ required: z.boolean().default(true),
38
+ });
39
+ export const EvidenceSelectionSchema = z.object({
40
+ stepId: z.string().min(1),
41
+ refs: z.array(EvidenceRefSchema).optional(),
42
+ maxItems: z.number().int().positive().optional(),
43
+ epistemic: z
44
+ .enum(["OBSERVED", "INFERRED", "POLICY_CANDIDATE", "REACHABLE", "UNKNOWN"])
45
+ .optional(),
46
+ notes: z.string().optional(),
47
+ });
48
+ export const RetrievalPlanSchema = z.object({
49
+ planId: z.string().min(1),
50
+ rationale: z.string().min(1),
51
+ steps: z.array(RetrievalStepSchema).min(1),
52
+ selections: z.array(EvidenceSelectionSchema).default([]),
53
+ answerDraft: z.string().optional(),
54
+ });
55
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/schemas/catalog.ts"],"names":[],"mappings":"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"}