@intutic/shared-types 1.0.1

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 (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +56 -0
  3. package/dist/agentPool.d.ts +40 -0
  4. package/dist/agentPool.d.ts.map +1 -0
  5. package/dist/agentPool.js +3 -0
  6. package/dist/agentPool.js.map +1 -0
  7. package/dist/annotation.d.ts +150 -0
  8. package/dist/annotation.d.ts.map +1 -0
  9. package/dist/annotation.js +6 -0
  10. package/dist/annotation.js.map +1 -0
  11. package/dist/anomaly.d.ts +227 -0
  12. package/dist/anomaly.d.ts.map +1 -0
  13. package/dist/anomaly.js +35 -0
  14. package/dist/anomaly.js.map +1 -0
  15. package/dist/api-contracts.d.ts +176 -0
  16. package/dist/api-contracts.d.ts.map +1 -0
  17. package/dist/api-contracts.js +110 -0
  18. package/dist/api-contracts.js.map +1 -0
  19. package/dist/attenuation.d.ts +115 -0
  20. package/dist/attenuation.d.ts.map +1 -0
  21. package/dist/attenuation.js +26 -0
  22. package/dist/attenuation.js.map +1 -0
  23. package/dist/auth.d.ts +340 -0
  24. package/dist/auth.d.ts.map +1 -0
  25. package/dist/auth.js +87 -0
  26. package/dist/auth.js.map +1 -0
  27. package/dist/benchmark.d.ts +76 -0
  28. package/dist/benchmark.d.ts.map +1 -0
  29. package/dist/benchmark.js +8 -0
  30. package/dist/benchmark.js.map +1 -0
  31. package/dist/billing.d.ts +173 -0
  32. package/dist/billing.d.ts.map +1 -0
  33. package/dist/billing.js +28 -0
  34. package/dist/billing.js.map +1 -0
  35. package/dist/cdc.d.ts +73 -0
  36. package/dist/cdc.d.ts.map +1 -0
  37. package/dist/cdc.js +13 -0
  38. package/dist/cdc.js.map +1 -0
  39. package/dist/cfo.d.ts +66 -0
  40. package/dist/cfo.d.ts.map +1 -0
  41. package/dist/cfo.js +3 -0
  42. package/dist/cfo.js.map +1 -0
  43. package/dist/connectors.d.ts +23 -0
  44. package/dist/connectors.d.ts.map +1 -0
  45. package/dist/connectors.js +6 -0
  46. package/dist/connectors.js.map +1 -0
  47. package/dist/enums.d.ts +238 -0
  48. package/dist/enums.d.ts.map +1 -0
  49. package/dist/enums.js +243 -0
  50. package/dist/enums.js.map +1 -0
  51. package/dist/errors.d.ts +122 -0
  52. package/dist/errors.d.ts.map +1 -0
  53. package/dist/errors.js +135 -0
  54. package/dist/errors.js.map +1 -0
  55. package/dist/evaluator.d.ts +70 -0
  56. package/dist/evaluator.d.ts.map +1 -0
  57. package/dist/evaluator.js +8 -0
  58. package/dist/evaluator.js.map +1 -0
  59. package/dist/finops.d.ts +185 -0
  60. package/dist/finops.d.ts.map +1 -0
  61. package/dist/finops.js +14 -0
  62. package/dist/finops.js.map +1 -0
  63. package/dist/hindsight.d.ts +49 -0
  64. package/dist/hindsight.d.ts.map +1 -0
  65. package/dist/hindsight.js +3 -0
  66. package/dist/hindsight.js.map +1 -0
  67. package/dist/identity.d.ts +101 -0
  68. package/dist/identity.d.ts.map +1 -0
  69. package/dist/identity.js +29 -0
  70. package/dist/identity.js.map +1 -0
  71. package/dist/index.d.ts +40 -0
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +120 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/intelligence.d.ts +325 -0
  76. package/dist/intelligence.d.ts.map +1 -0
  77. package/dist/intelligence.js +28 -0
  78. package/dist/intelligence.js.map +1 -0
  79. package/dist/marketplace.d.ts +76 -0
  80. package/dist/marketplace.d.ts.map +1 -0
  81. package/dist/marketplace.js +16 -0
  82. package/dist/marketplace.js.map +1 -0
  83. package/dist/notifications.d.ts +206 -0
  84. package/dist/notifications.d.ts.map +1 -0
  85. package/dist/notifications.js +6 -0
  86. package/dist/notifications.js.map +1 -0
  87. package/dist/observability.d.ts +45 -0
  88. package/dist/observability.d.ts.map +1 -0
  89. package/dist/observability.js +10 -0
  90. package/dist/observability.js.map +1 -0
  91. package/dist/policy.d.ts +104 -0
  92. package/dist/policy.d.ts.map +1 -0
  93. package/dist/policy.js +14 -0
  94. package/dist/policy.js.map +1 -0
  95. package/dist/prompt.d.ts +99 -0
  96. package/dist/prompt.d.ts.map +1 -0
  97. package/dist/prompt.js +3 -0
  98. package/dist/prompt.js.map +1 -0
  99. package/dist/session.d.ts +62 -0
  100. package/dist/session.d.ts.map +1 -0
  101. package/dist/session.js +14 -0
  102. package/dist/session.js.map +1 -0
  103. package/dist/sop.d.ts +387 -0
  104. package/dist/sop.d.ts.map +1 -0
  105. package/dist/sop.js +44 -0
  106. package/dist/sop.js.map +1 -0
  107. package/dist/sync.d.ts +374 -0
  108. package/dist/sync.d.ts.map +1 -0
  109. package/dist/sync.js +56 -0
  110. package/dist/sync.js.map +1 -0
  111. package/dist/taskManagement.d.ts +141 -0
  112. package/dist/taskManagement.d.ts.map +1 -0
  113. package/dist/taskManagement.js +14 -0
  114. package/dist/taskManagement.js.map +1 -0
  115. package/dist/trial.d.ts +34 -0
  116. package/dist/trial.d.ts.map +1 -0
  117. package/dist/trial.js +6 -0
  118. package/dist/trial.js.map +1 -0
  119. package/dist/usage.d.ts +34 -0
  120. package/dist/usage.d.ts.map +1 -0
  121. package/dist/usage.js +6 -0
  122. package/dist/usage.js.map +1 -0
  123. package/dist/warehouse.d.ts +49 -0
  124. package/dist/warehouse.d.ts.map +1 -0
  125. package/dist/warehouse.js +8 -0
  126. package/dist/warehouse.js.map +1 -0
  127. package/dist/workspaceSettings.d.ts +116 -0
  128. package/dist/workspaceSettings.d.ts.map +1 -0
  129. package/dist/workspaceSettings.js +50 -0
  130. package/dist/workspaceSettings.js.map +1 -0
  131. package/package.json +24 -0
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Zod schemas for API request/response validation.
3
+ *
4
+ * Each schema is exported alongside its inferred TypeScript type.
5
+ * Services use these schemas in route handlers to validate incoming
6
+ * payloads; the inferred types are used in service function signatures.
7
+ *
8
+ * HLD §3.1 (Proxy Gateway), §3.6 (FinOps), §3.3 (PCAS)
9
+ *
10
+ * @module
11
+ */
12
+ import { z } from 'zod';
13
+ /**
14
+ * Zod schema for the `POST /api/v1/sessions` request body.
15
+ *
16
+ * Creates a new agent session in the control plane.
17
+ */
18
+ export declare const CreateSessionSchema: z.ZodObject<{
19
+ /** Workspace to create the session in. */
20
+ workspaceId: z.ZodString;
21
+ /** User initiating the session. */
22
+ userId: z.ZodString;
23
+ /** Optional project to scope the session. */
24
+ projectId: z.ZodOptional<z.ZodString>;
25
+ /** Optional SOP to govern the session. */
26
+ activeSopId: z.ZodOptional<z.ZodString>;
27
+ /** Agent harness type. */
28
+ harnessType: z.ZodEnum<["cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui" | "github-copilot", ...("cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui" | "github-copilot")[]]>;
29
+ /** Budget tier — defaults to JUNIOR on the server. */
30
+ budgetTier: z.ZodOptional<z.ZodEnum<["JUNIOR" | "SENIOR" | "STAFF" | "PRINCIPAL", ...("JUNIOR" | "SENIOR" | "STAFF" | "PRINCIPAL")[]]>>;
31
+ /** Execution mode — defaults to STANDARD on the server. */
32
+ executionMode: z.ZodOptional<z.ZodEnum<["STANDARD" | "PLAN_ONLY" | "SHADOW" | "AUTONOMOUS", ...("STANDARD" | "PLAN_ONLY" | "SHADOW" | "AUTONOMOUS")[]]>>;
33
+ }, "strip", z.ZodTypeAny, {
34
+ workspaceId: string;
35
+ userId: string;
36
+ harnessType: "cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui" | "github-copilot";
37
+ projectId?: string | undefined;
38
+ activeSopId?: string | undefined;
39
+ budgetTier?: "JUNIOR" | "SENIOR" | "STAFF" | "PRINCIPAL" | undefined;
40
+ executionMode?: "STANDARD" | "PLAN_ONLY" | "SHADOW" | "AUTONOMOUS" | undefined;
41
+ }, {
42
+ workspaceId: string;
43
+ userId: string;
44
+ harnessType: "cursor" | "claude-code" | "antigravity" | "n8n" | "codex" | "windsurf" | "aider" | "openhands" | "openclaw" | "hermes" | "pi" | "cline" | "roo-code" | "continue" | "claude-desktop" | "goose" | "open-webui" | "github-copilot";
45
+ projectId?: string | undefined;
46
+ activeSopId?: string | undefined;
47
+ budgetTier?: "JUNIOR" | "SENIOR" | "STAFF" | "PRINCIPAL" | undefined;
48
+ executionMode?: "STANDARD" | "PLAN_ONLY" | "SHADOW" | "AUTONOMOUS" | undefined;
49
+ }>;
50
+ /** Inferred type for a create-session request payload. */
51
+ export type CreateSessionInput = z.infer<typeof CreateSessionSchema>;
52
+ /**
53
+ * Zod schema for the `POST /api/v1/traces` request body.
54
+ *
55
+ * Appends a new row to the `execution_traces` ledger.
56
+ * Fields with server-side defaults (e.g., `timestamp`) are optional.
57
+ */
58
+ export declare const CreateTraceSchema: z.ZodObject<{
59
+ /** Session that produced this trace. */
60
+ sessionId: z.ZodString;
61
+ /** Idempotency key — must be unique across all traces. */
62
+ requestId: z.ZodString;
63
+ /** Effective date of the governing SOP (ISO 8601). */
64
+ sopEffectiveDate: z.ZodString;
65
+ requestedModel: z.ZodString;
66
+ actualModelRouted: z.ZodString;
67
+ routingTier: z.ZodEnum<["frontier" | "economy" | "local", ...("frontier" | "economy" | "local")[]]>;
68
+ complexityScore: z.ZodNumber;
69
+ rawInputTokens: z.ZodNumber;
70
+ compressedInputTokens: z.ZodNumber;
71
+ outputTokens: z.ZodNumber;
72
+ rawCostUsd: z.ZodNumber;
73
+ actualCostUsd: z.ZodNumber;
74
+ tokenUtility: z.ZodOptional<z.ZodEnum<["USEFUL" | "WASTED", ...("USEFUL" | "WASTED")[]]>>;
75
+ tokenUtilityScore: z.ZodOptional<z.ZodNumber>;
76
+ complianceScore: z.ZodNumber;
77
+ enforcementAction: z.ZodEnum<["BYPASS" | "ENHANCE" | "HIJACK" | "KILL", ...("BYPASS" | "ENHANCE" | "HIJACK" | "KILL")[]]>;
78
+ anomalyDetected: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
+ anomalyConfidenceScore: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
80
+ taxonomyMetadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
81
+ rawPayloadJson: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
82
+ appId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
83
+ agentChainId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
84
+ agentChain: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
85
+ cacheHit: z.ZodOptional<z.ZodBoolean>;
86
+ cacheSavingsUsd: z.ZodOptional<z.ZodNumber>;
87
+ rootCauseAttribution: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
88
+ correctivePromptCard: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ sessionId: string;
91
+ requestId: string;
92
+ sopEffectiveDate: string;
93
+ requestedModel: string;
94
+ actualModelRouted: string;
95
+ routingTier: "frontier" | "economy" | "local";
96
+ complexityScore: number;
97
+ rawInputTokens: number;
98
+ compressedInputTokens: number;
99
+ outputTokens: number;
100
+ rawCostUsd: number;
101
+ actualCostUsd: number;
102
+ complianceScore: number;
103
+ enforcementAction: "BYPASS" | "ENHANCE" | "HIJACK" | "KILL";
104
+ tokenUtility?: "USEFUL" | "WASTED" | undefined;
105
+ tokenUtilityScore?: number | undefined;
106
+ anomalyDetected?: string | null | undefined;
107
+ anomalyConfidenceScore?: number | null | undefined;
108
+ taxonomyMetadata?: Record<string, unknown> | null | undefined;
109
+ rawPayloadJson?: Record<string, unknown> | null | undefined;
110
+ appId?: string | null | undefined;
111
+ agentChainId?: string | null | undefined;
112
+ agentChain?: Record<string, unknown> | null | undefined;
113
+ cacheHit?: boolean | undefined;
114
+ cacheSavingsUsd?: number | undefined;
115
+ rootCauseAttribution?: Record<string, unknown> | null | undefined;
116
+ correctivePromptCard?: Record<string, unknown> | null | undefined;
117
+ }, {
118
+ sessionId: string;
119
+ requestId: string;
120
+ sopEffectiveDate: string;
121
+ requestedModel: string;
122
+ actualModelRouted: string;
123
+ routingTier: "frontier" | "economy" | "local";
124
+ complexityScore: number;
125
+ rawInputTokens: number;
126
+ compressedInputTokens: number;
127
+ outputTokens: number;
128
+ rawCostUsd: number;
129
+ actualCostUsd: number;
130
+ complianceScore: number;
131
+ enforcementAction: "BYPASS" | "ENHANCE" | "HIJACK" | "KILL";
132
+ tokenUtility?: "USEFUL" | "WASTED" | undefined;
133
+ tokenUtilityScore?: number | undefined;
134
+ anomalyDetected?: string | null | undefined;
135
+ anomalyConfidenceScore?: number | null | undefined;
136
+ taxonomyMetadata?: Record<string, unknown> | null | undefined;
137
+ rawPayloadJson?: Record<string, unknown> | null | undefined;
138
+ appId?: string | null | undefined;
139
+ agentChainId?: string | null | undefined;
140
+ agentChain?: Record<string, unknown> | null | undefined;
141
+ cacheHit?: boolean | undefined;
142
+ cacheSavingsUsd?: number | undefined;
143
+ rootCauseAttribution?: Record<string, unknown> | null | undefined;
144
+ correctivePromptCard?: Record<string, unknown> | null | undefined;
145
+ }>;
146
+ /** Inferred type for a create-trace request payload. */
147
+ export type CreateTraceInput = z.infer<typeof CreateTraceSchema>;
148
+ /**
149
+ * Zod schema for a policy verdict (used in Circuit Breaker responses
150
+ * and inter-service communication).
151
+ *
152
+ * HLD §3.3 — PCAS enforcement
153
+ */
154
+ export declare const PolicyVerdictSchema: z.ZodObject<{
155
+ /** Enforcement action to apply. */
156
+ action: z.ZodEnum<["BYPASS" | "ENHANCE" | "HIJACK" | "KILL", ...("BYPASS" | "ENHANCE" | "HIJACK" | "KILL")[]]>;
157
+ /** Confidence score (0.0–1.0). */
158
+ confidence: z.ZodNumber;
159
+ /** Human-readable reason. */
160
+ reason: z.ZodString;
161
+ /** Optional policy rule ID. */
162
+ policyId: z.ZodOptional<z.ZodString>;
163
+ }, "strip", z.ZodTypeAny, {
164
+ action: "BYPASS" | "ENHANCE" | "HIJACK" | "KILL";
165
+ confidence: number;
166
+ reason: string;
167
+ policyId?: string | undefined;
168
+ }, {
169
+ action: "BYPASS" | "ENHANCE" | "HIJACK" | "KILL";
170
+ confidence: number;
171
+ reason: string;
172
+ policyId?: string | undefined;
173
+ }>;
174
+ /** Inferred type for a policy verdict. */
175
+ export type PolicyVerdictInput = z.infer<typeof PolicyVerdictSchema>;
176
+ //# sourceMappingURL=api-contracts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-contracts.d.ts","sourceRoot":"","sources":["../src/api-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAmBvB;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B,0CAA0C;;IAG1C,mCAAmC;;IAGnC,6CAA6C;;IAG7C,0CAA0C;;IAG1C,0BAA0B;;IAG1B,sDAAsD;;IAGtD,2DAA2D;;;;;;;;;;;;;;;;;;EAE3D,CAAA;AAEF,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAIpE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB;IAC5B,wCAAwC;;IAGxC,0DAA0D;;IAG1D,sDAAsD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CtD,CAAA;AAEF,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAIhE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;IAC9B,mCAAmC;;IAGnC,kCAAkC;;IAGlC,6BAA6B;;IAG7B,+BAA+B;;;;;;;;;;;;EAE/B,CAAA;AAEF,0CAA0C;AAC1C,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * Zod schemas for API request/response validation.
4
+ *
5
+ * Each schema is exported alongside its inferred TypeScript type.
6
+ * Services use these schemas in route handlers to validate incoming
7
+ * payloads; the inferred types are used in service function signatures.
8
+ *
9
+ * HLD §3.1 (Proxy Gateway), §3.6 (FinOps), §3.3 (PCAS)
10
+ *
11
+ * @module
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.PolicyVerdictSchema = exports.CreateTraceSchema = exports.CreateSessionSchema = void 0;
15
+ const zod_1 = require("zod");
16
+ const enums_js_1 = require("./enums.js");
17
+ // ─── Helpers ─────────────────────────────────────────────────────────
18
+ /** Extract the values array from a const object for use in `z.enum()`. */
19
+ function constValues(obj) {
20
+ return Object.values(obj);
21
+ }
22
+ // ─── CreateSession ───────────────────────────────────────────────────
23
+ /**
24
+ * Zod schema for the `POST /api/v1/sessions` request body.
25
+ *
26
+ * Creates a new agent session in the control plane.
27
+ */
28
+ exports.CreateSessionSchema = zod_1.z.object({
29
+ /** Workspace to create the session in. */
30
+ workspaceId: zod_1.z.string().min(1),
31
+ /** User initiating the session. */
32
+ userId: zod_1.z.string().min(1),
33
+ /** Optional project to scope the session. */
34
+ projectId: zod_1.z.string().min(1).optional(),
35
+ /** Optional SOP to govern the session. */
36
+ activeSopId: zod_1.z.string().min(1).optional(),
37
+ /** Agent harness type. */
38
+ harnessType: zod_1.z.enum(constValues(enums_js_1.HarnessType)),
39
+ /** Budget tier — defaults to JUNIOR on the server. */
40
+ budgetTier: zod_1.z.enum(constValues(enums_js_1.BudgetTier)).optional(),
41
+ /** Execution mode — defaults to STANDARD on the server. */
42
+ executionMode: zod_1.z.enum(constValues(enums_js_1.ExecutionMode)).optional(),
43
+ });
44
+ // ─── CreateTrace ─────────────────────────────────────────────────────
45
+ /**
46
+ * Zod schema for the `POST /api/v1/traces` request body.
47
+ *
48
+ * Appends a new row to the `execution_traces` ledger.
49
+ * Fields with server-side defaults (e.g., `timestamp`) are optional.
50
+ */
51
+ exports.CreateTraceSchema = zod_1.z.object({
52
+ /** Session that produced this trace. */
53
+ sessionId: zod_1.z.string().min(1),
54
+ /** Idempotency key — must be unique across all traces. */
55
+ requestId: zod_1.z.string().min(1),
56
+ /** Effective date of the governing SOP (ISO 8601). */
57
+ sopEffectiveDate: zod_1.z.string().datetime(),
58
+ // ── Model routing ──
59
+ requestedModel: zod_1.z.string().min(1),
60
+ actualModelRouted: zod_1.z.string().min(1),
61
+ routingTier: zod_1.z.enum(constValues(enums_js_1.RoutingTier)),
62
+ complexityScore: zod_1.z.number().min(0).max(1),
63
+ // ── Token accounting ──
64
+ rawInputTokens: zod_1.z.number().int().nonnegative(),
65
+ compressedInputTokens: zod_1.z.number().int().nonnegative(),
66
+ outputTokens: zod_1.z.number().int().nonnegative(),
67
+ // ── Cost accounting ──
68
+ rawCostUsd: zod_1.z.number().nonnegative(),
69
+ actualCostUsd: zod_1.z.number().nonnegative(),
70
+ // ── Token utility ──
71
+ tokenUtility: zod_1.z.enum(constValues(enums_js_1.TokenUtility)).optional(),
72
+ tokenUtilityScore: zod_1.z.number().min(0).max(1).optional(),
73
+ // ── Enforcement ──
74
+ complianceScore: zod_1.z.number().min(0).max(1),
75
+ enforcementAction: zod_1.z.enum(constValues(enums_js_1.EnforcementAction)),
76
+ // ── Anomaly ──
77
+ anomalyDetected: zod_1.z.string().nullable().optional(),
78
+ anomalyConfidenceScore: zod_1.z.number().min(0).max(1).nullable().optional(),
79
+ taxonomyMetadata: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
80
+ // ── Forensics ──
81
+ rawPayloadJson: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
82
+ // ── 4D Attribution ──
83
+ appId: zod_1.z.string().nullable().optional(),
84
+ agentChainId: zod_1.z.string().nullable().optional(),
85
+ agentChain: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
86
+ // ── Cache ──
87
+ cacheHit: zod_1.z.boolean().optional(),
88
+ cacheSavingsUsd: zod_1.z.number().nonnegative().optional(),
89
+ // ── Root cause ──
90
+ rootCauseAttribution: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
91
+ correctivePromptCard: zod_1.z.record(zod_1.z.unknown()).nullable().optional(),
92
+ });
93
+ // ─── PolicyVerdict ───────────────────────────────────────────────────
94
+ /**
95
+ * Zod schema for a policy verdict (used in Circuit Breaker responses
96
+ * and inter-service communication).
97
+ *
98
+ * HLD §3.3 — PCAS enforcement
99
+ */
100
+ exports.PolicyVerdictSchema = zod_1.z.object({
101
+ /** Enforcement action to apply. */
102
+ action: zod_1.z.enum(constValues(enums_js_1.EnforcementAction)),
103
+ /** Confidence score (0.0–1.0). */
104
+ confidence: zod_1.z.number().min(0).max(1),
105
+ /** Human-readable reason. */
106
+ reason: zod_1.z.string().min(1),
107
+ /** Optional policy rule ID. */
108
+ policyId: zod_1.z.string().optional(),
109
+ });
110
+ //# sourceMappingURL=api-contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-contracts.js","sourceRoot":"","sources":["../src/api-contracts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Attenuation & GDPR types — LLD #19 (Enterprise Identity & Compliance)
3
+ *
4
+ * DCT Token Attenuation (Patent Family A), OBO Ephemeral Tokens,
5
+ * PointerMemory GDPR erasure, and SSO Group Privilege Scoping.
6
+ *
7
+ * HLD §5.1, §5.6 — Zero-Trust Identity Broker
8
+ *
9
+ * @module
10
+ */
11
+ import { z } from 'zod';
12
+ /**
13
+ * OBO (On-Behalf-Of) token grant — short-lived, employee-scoped
14
+ * JWT issued per harness session.
15
+ *
16
+ * HLD §5.6 — per-employee ephemeral scoping.
17
+ */
18
+ export interface OboTokenGrant {
19
+ /** Unique grant identifier — `newId('obo')` */
20
+ grantId: string;
21
+ /** Issuing workspace member ID */
22
+ memberId: string;
23
+ /** Workspace scope */
24
+ workspaceId: string;
25
+ /** Optional agent session binding */
26
+ sessionId: string | null;
27
+ /** Allow-list of tool names this token grants access to */
28
+ scopedTools: string[];
29
+ /** Plaintext short-lived JWT — returned ONCE on issuance */
30
+ oboToken: string;
31
+ /** Grant expiry (ISO-8601, 15 min from issuance) */
32
+ expiresAt: string;
33
+ }
34
+ /** Request schema for OBO token issuance. */
35
+ export declare const IssueOboTokenInputSchema: z.ZodObject<{
36
+ sessionId: z.ZodOptional<z.ZodString>;
37
+ scopedTools: z.ZodArray<z.ZodString, "many">;
38
+ }, "strip", z.ZodTypeAny, {
39
+ scopedTools: string[];
40
+ sessionId?: string | undefined;
41
+ }, {
42
+ scopedTools: string[];
43
+ sessionId?: string | undefined;
44
+ }>;
45
+ export type IssueOboTokenInput = z.infer<typeof IssueOboTokenInputSchema>;
46
+ /**
47
+ * Result returned from a successful token attenuation handshake.
48
+ * The plaintext child key is returned ONCE and never stored.
49
+ */
50
+ export interface AttenuationResult {
51
+ /** Plaintext `vk_*` child key — returned ONCE */
52
+ childKey: string;
53
+ /** child api_keys.key_id */
54
+ childKeyId: string;
55
+ /** attenuation_chains.chain_id */
56
+ attenuationChainId: string;
57
+ /** Verified subset of parent capabilities granted to child */
58
+ grantedCaps: string[];
59
+ /** Child key expiry (ISO-8601) */
60
+ expiresAt: string;
61
+ }
62
+ /**
63
+ * A single link in the attenuation delegation lineage chain.
64
+ */
65
+ export interface AttenuationChainLink {
66
+ /** attenuation_chains.chain_id */
67
+ chainId: string;
68
+ /** Parent api_keys.key_id */
69
+ parentKeyId: string;
70
+ /** Child api_keys.key_id */
71
+ childKeyId: string;
72
+ /** Workspace scope */
73
+ workspaceId: string;
74
+ /** Capabilities granted to the child key */
75
+ grantedCaps: string[];
76
+ /** Chain expiry (ISO-8601) */
77
+ expiresAt: string;
78
+ /** Creation timestamp (ISO-8601) */
79
+ createdAt: string;
80
+ }
81
+ /** Request schema for token attenuation. */
82
+ export declare const AttenuateTokenInputSchema: z.ZodObject<{
83
+ parentKeyId: z.ZodString;
84
+ requestedCaps: z.ZodArray<z.ZodString, "many">;
85
+ ttlSeconds: z.ZodOptional<z.ZodNumber>;
86
+ }, "strip", z.ZodTypeAny, {
87
+ parentKeyId: string;
88
+ requestedCaps: string[];
89
+ ttlSeconds?: number | undefined;
90
+ }, {
91
+ parentKeyId: string;
92
+ requestedCaps: string[];
93
+ ttlSeconds?: number | undefined;
94
+ }>;
95
+ export type AttenuateTokenInput = z.infer<typeof AttenuateTokenInputSchema>;
96
+ /**
97
+ * Result of SSO group → tool clearance resolution.
98
+ * - GRANTED: member has required SSO group; tool execution allowed
99
+ * - DENIED: member lacks required SSO group; tool blocked
100
+ * - REQUIRES_OBO: tool requires an active OBO token with this tool in scopedTools
101
+ */
102
+ export type SsoGroupClearance = 'GRANTED' | 'DENIED' | 'REQUIRES_OBO';
103
+ /**
104
+ * Workspace SSO group policy configuration.
105
+ * Stored in workspaces.settings->>'sso_group_policy' as JSONB.
106
+ */
107
+ export interface SsoGroupPolicy {
108
+ /** Tools gated by SSO group membership (e.g. ['bash', 'file_write', 'database_write']) */
109
+ highRiskTools: string[];
110
+ /** IdP group names that grant clearance for high-risk tools */
111
+ requiredGroups: string[];
112
+ /** Tools that always require an OBO token regardless of group membership */
113
+ requireOboFor: string[];
114
+ }
115
+ //# sourceMappingURL=attenuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attenuation.d.ts","sourceRoot":"","sources":["../src/attenuation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAA;IAChB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB;;;;;;;;;EAGnC,CAAA;AACF,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAA;AAIzE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAA;IAChB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,8DAA8D;IAC9D,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,4CAA4C;IAC5C,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAA;AACF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAK3E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,CAAA;AAErE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,+DAA+D;IAC/D,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Attenuation & GDPR types — LLD #19 (Enterprise Identity & Compliance)
4
+ *
5
+ * DCT Token Attenuation (Patent Family A), OBO Ephemeral Tokens,
6
+ * PointerMemory GDPR erasure, and SSO Group Privilege Scoping.
7
+ *
8
+ * HLD §5.1, §5.6 — Zero-Trust Identity Broker
9
+ *
10
+ * @module
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.AttenuateTokenInputSchema = exports.IssueOboTokenInputSchema = void 0;
14
+ const zod_1 = require("zod");
15
+ /** Request schema for OBO token issuance. */
16
+ exports.IssueOboTokenInputSchema = zod_1.z.object({
17
+ sessionId: zod_1.z.string().min(1).optional(),
18
+ scopedTools: zod_1.z.array(zod_1.z.string().min(1)).min(1, 'At least one tool must be specified'),
19
+ });
20
+ /** Request schema for token attenuation. */
21
+ exports.AttenuateTokenInputSchema = zod_1.z.object({
22
+ parentKeyId: zod_1.z.string().min(1),
23
+ requestedCaps: zod_1.z.array(zod_1.z.string().min(1)).min(1, 'At least one capability must be requested'),
24
+ ttlSeconds: zod_1.z.number().int().min(60).max(86400).optional(),
25
+ });
26
+ //# sourceMappingURL=attenuation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attenuation.js","sourceRoot":"","sources":["../src/attenuation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,6BAAuB;AA2BvB,6CAA6C;AAChC,QAAA,wBAAwB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACvC,WAAW,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,qCAAqC,CAAC;CACtF,CAAC,CAAA;AA0CF,4CAA4C;AAC/B,QAAA,yBAAyB,GAAG,OAAC,CAAC,MAAM,CAAC;IAChD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,2CAA2C,CAAC;IAC7F,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;CAC3D,CAAC,CAAA"}