@marinoscar/platform-contract 0.0.0-stage → 0.1.0-next.3

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 (134) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/LICENSE +21 -0
  3. package/README.md +145 -2
  4. package/dist/cjs/doctor/constants.d.ts +59 -0
  5. package/dist/cjs/doctor/constants.d.ts.map +1 -0
  6. package/dist/cjs/doctor/constants.js +57 -0
  7. package/dist/cjs/doctor/constants.js.map +1 -0
  8. package/dist/cjs/doctor/index.d.ts +5 -0
  9. package/dist/cjs/doctor/index.d.ts.map +1 -0
  10. package/dist/cjs/doctor/index.js +24 -0
  11. package/dist/cjs/doctor/index.js.map +1 -0
  12. package/dist/cjs/doctor/schemas.d.ts +186 -0
  13. package/dist/cjs/doctor/schemas.d.ts.map +1 -0
  14. package/dist/cjs/doctor/schemas.js +183 -0
  15. package/dist/cjs/doctor/schemas.js.map +1 -0
  16. package/dist/cjs/index.d.ts +13 -0
  17. package/dist/cjs/index.d.ts.map +1 -0
  18. package/dist/cjs/index.js +16 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/package.json +3 -0
  21. package/dist/cjs/telemetry/assistant.d.ts +173 -0
  22. package/dist/cjs/telemetry/assistant.d.ts.map +1 -0
  23. package/dist/cjs/telemetry/assistant.js +43 -0
  24. package/dist/cjs/telemetry/assistant.js.map +1 -0
  25. package/dist/cjs/telemetry/config.d.ts +92 -0
  26. package/dist/cjs/telemetry/config.d.ts.map +1 -0
  27. package/dist/cjs/telemetry/config.js +101 -0
  28. package/dist/cjs/telemetry/config.js.map +1 -0
  29. package/dist/cjs/telemetry/connection.d.ts +355 -0
  30. package/dist/cjs/telemetry/connection.d.ts.map +1 -0
  31. package/dist/cjs/telemetry/connection.js +451 -0
  32. package/dist/cjs/telemetry/connection.js.map +1 -0
  33. package/dist/cjs/telemetry/constants.d.ts +442 -0
  34. package/dist/cjs/telemetry/constants.d.ts.map +1 -0
  35. package/dist/cjs/telemetry/constants.js +400 -0
  36. package/dist/cjs/telemetry/constants.js.map +1 -0
  37. package/dist/cjs/telemetry/dashboard.d.ts +826 -0
  38. package/dist/cjs/telemetry/dashboard.d.ts.map +1 -0
  39. package/dist/cjs/telemetry/dashboard.js +697 -0
  40. package/dist/cjs/telemetry/dashboard.js.map +1 -0
  41. package/dist/cjs/telemetry/enum.d.ts +5 -0
  42. package/dist/cjs/telemetry/enum.d.ts.map +1 -0
  43. package/dist/cjs/telemetry/enum.js +12 -0
  44. package/dist/cjs/telemetry/enum.js.map +1 -0
  45. package/dist/cjs/telemetry/index.d.ts +5 -0
  46. package/dist/cjs/telemetry/index.d.ts.map +1 -0
  47. package/dist/cjs/telemetry/index.js +128 -0
  48. package/dist/cjs/telemetry/index.js.map +1 -0
  49. package/dist/cjs/telemetry/query.d.ts +147 -0
  50. package/dist/cjs/telemetry/query.d.ts.map +1 -0
  51. package/dist/cjs/telemetry/query.js +141 -0
  52. package/dist/cjs/telemetry/query.js.map +1 -0
  53. package/dist/cjs/telemetry/schemas.d.ts +17 -0
  54. package/dist/cjs/telemetry/schemas.d.ts.map +1 -0
  55. package/dist/cjs/telemetry/schemas.js +89 -0
  56. package/dist/cjs/telemetry/schemas.js.map +1 -0
  57. package/dist/cjs/telemetry/settings.d.ts +65 -0
  58. package/dist/cjs/telemetry/settings.d.ts.map +1 -0
  59. package/dist/cjs/telemetry/settings.js +77 -0
  60. package/dist/cjs/telemetry/settings.js.map +1 -0
  61. package/dist/cjs/telemetry/stack.d.ts +87 -0
  62. package/dist/cjs/telemetry/stack.d.ts.map +1 -0
  63. package/dist/cjs/telemetry/stack.js +93 -0
  64. package/dist/cjs/telemetry/stack.js.map +1 -0
  65. package/dist/cjs/telemetry/status.d.ts +65 -0
  66. package/dist/cjs/telemetry/status.d.ts.map +1 -0
  67. package/dist/cjs/telemetry/status.js +65 -0
  68. package/dist/cjs/telemetry/status.js.map +1 -0
  69. package/dist/esm/doctor/constants.d.ts +59 -0
  70. package/dist/esm/doctor/constants.d.ts.map +1 -0
  71. package/dist/esm/doctor/constants.js +54 -0
  72. package/dist/esm/doctor/constants.js.map +1 -0
  73. package/dist/esm/doctor/index.d.ts +5 -0
  74. package/dist/esm/doctor/index.d.ts.map +1 -0
  75. package/dist/esm/doctor/index.js +10 -0
  76. package/dist/esm/doctor/index.js.map +1 -0
  77. package/dist/esm/doctor/schemas.d.ts +186 -0
  78. package/dist/esm/doctor/schemas.d.ts.map +1 -0
  79. package/dist/esm/doctor/schemas.js +180 -0
  80. package/dist/esm/doctor/schemas.js.map +1 -0
  81. package/dist/esm/index.d.ts +13 -0
  82. package/dist/esm/index.d.ts.map +1 -0
  83. package/dist/esm/index.js +13 -0
  84. package/dist/esm/index.js.map +1 -0
  85. package/dist/esm/package.json +3 -0
  86. package/dist/esm/telemetry/assistant.d.ts +173 -0
  87. package/dist/esm/telemetry/assistant.d.ts.map +1 -0
  88. package/dist/esm/telemetry/assistant.js +40 -0
  89. package/dist/esm/telemetry/assistant.js.map +1 -0
  90. package/dist/esm/telemetry/config.d.ts +92 -0
  91. package/dist/esm/telemetry/config.d.ts.map +1 -0
  92. package/dist/esm/telemetry/config.js +98 -0
  93. package/dist/esm/telemetry/config.js.map +1 -0
  94. package/dist/esm/telemetry/connection.d.ts +355 -0
  95. package/dist/esm/telemetry/connection.d.ts.map +1 -0
  96. package/dist/esm/telemetry/connection.js +447 -0
  97. package/dist/esm/telemetry/connection.js.map +1 -0
  98. package/dist/esm/telemetry/constants.d.ts +442 -0
  99. package/dist/esm/telemetry/constants.d.ts.map +1 -0
  100. package/dist/esm/telemetry/constants.js +397 -0
  101. package/dist/esm/telemetry/constants.js.map +1 -0
  102. package/dist/esm/telemetry/dashboard.d.ts +826 -0
  103. package/dist/esm/telemetry/dashboard.d.ts.map +1 -0
  104. package/dist/esm/telemetry/dashboard.js +690 -0
  105. package/dist/esm/telemetry/dashboard.js.map +1 -0
  106. package/dist/esm/telemetry/enum.d.ts +5 -0
  107. package/dist/esm/telemetry/enum.d.ts.map +1 -0
  108. package/dist/esm/telemetry/enum.js +9 -0
  109. package/dist/esm/telemetry/enum.js.map +1 -0
  110. package/dist/esm/telemetry/index.d.ts +5 -0
  111. package/dist/esm/telemetry/index.d.ts.map +1 -0
  112. package/dist/esm/telemetry/index.js +10 -0
  113. package/dist/esm/telemetry/index.js.map +1 -0
  114. package/dist/esm/telemetry/query.d.ts +147 -0
  115. package/dist/esm/telemetry/query.d.ts.map +1 -0
  116. package/dist/esm/telemetry/query.js +138 -0
  117. package/dist/esm/telemetry/query.js.map +1 -0
  118. package/dist/esm/telemetry/schemas.d.ts +17 -0
  119. package/dist/esm/telemetry/schemas.d.ts.map +1 -0
  120. package/dist/esm/telemetry/schemas.js +12 -0
  121. package/dist/esm/telemetry/schemas.js.map +1 -0
  122. package/dist/esm/telemetry/settings.d.ts +65 -0
  123. package/dist/esm/telemetry/settings.d.ts.map +1 -0
  124. package/dist/esm/telemetry/settings.js +74 -0
  125. package/dist/esm/telemetry/settings.js.map +1 -0
  126. package/dist/esm/telemetry/stack.d.ts +87 -0
  127. package/dist/esm/telemetry/stack.d.ts.map +1 -0
  128. package/dist/esm/telemetry/stack.js +90 -0
  129. package/dist/esm/telemetry/stack.js.map +1 -0
  130. package/dist/esm/telemetry/status.d.ts +65 -0
  131. package/dist/esm/telemetry/status.d.ts.map +1 -0
  132. package/dist/esm/telemetry/status.js +62 -0
  133. package/dist/esm/telemetry/status.js.map +1 -0
  134. package/package.json +78 -4
@@ -0,0 +1,173 @@
1
+ import { z } from 'zod';
2
+ import { type TelemetryAssistantConfidence, type TelemetryAssistantReportStatus, type TelemetryAssistantSeverity, type TelemetryAssistantToolName } from './constants.js';
3
+ /**
4
+ * One earlier turn of the conversation: `role` (`user` or `assistant`) and
5
+ * `content` (at most {@link TELEMETRY_ASSISTANT_HISTORY_CONTENT_MAX} characters).
6
+ *
7
+ * @extensionPoint schema
8
+ * @stability stable
9
+ */
10
+ export declare const telemetryAssistantTurnSchema: z.ZodObject<{
11
+ role: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"user" | "assistant">>;
12
+ content: z.ZodString;
13
+ }, z.core.$strip>;
14
+ /**
15
+ * One earlier turn of the conversation.
16
+ *
17
+ * @stability stable
18
+ */
19
+ export type TelemetryAssistantTurn = z.infer<typeof telemetryAssistantTurnSchema>;
20
+ /**
21
+ * `POST /api/admin/telemetry/assistant/stream` body: `question` (trimmed,
22
+ * 1..{@link TELEMETRY_ASSISTANT_QUESTION_MAX} characters) and an optional
23
+ * `history` (oldest first, at most {@link TELEMETRY_ASSISTANT_HISTORY_MAX_TURNS}).
24
+ *
25
+ * @extensionPoint schema
26
+ * @stability stable
27
+ */
28
+ export declare const telemetryAssistantRequestSchema: z.ZodObject<{
29
+ question: z.ZodString;
30
+ history: z.ZodOptional<z.ZodArray<z.ZodObject<{
31
+ role: z.ZodEnum<import("./constants.js").TelemetryEnumEntries<"user" | "assistant">>;
32
+ content: z.ZodString;
33
+ }, z.core.$strip>>>;
34
+ }, z.core.$strip>;
35
+ /**
36
+ * The `POST /api/admin/telemetry/assistant/stream` body.
37
+ *
38
+ * @stability stable
39
+ */
40
+ export type TelemetryAssistantRequest = z.infer<typeof telemetryAssistantRequestSchema>;
41
+ /**
42
+ * `event: step` — one tool call the assistant made.
43
+ *
44
+ * @stability stable
45
+ */
46
+ export interface TelemetryAssistantStepEvent {
47
+ /** 0-based, across the whole turn. */
48
+ index: number;
49
+ /** The tool called. */
50
+ tool: TelemetryAssistantToolName;
51
+ /** `group` is `metrics_overview`'s metric group (#603). */
52
+ input?: {
53
+ /** `describe_table`: the table. */
54
+ table?: string;
55
+ /** `run_query`: the statement. */
56
+ sql?: string;
57
+ /** The window an overview tool looked at. */
58
+ window?: string;
59
+ /** `get_trace`: the trace. */
60
+ traceId?: string;
61
+ /** `metrics_overview`: the metric group. */
62
+ group?: string;
63
+ };
64
+ /** `run_query` / `get_trace` only: rows the call returned (up to the row cap). */
65
+ rowCount?: number;
66
+ /** `run_query` / `get_trace` only: more rows matched than the row cap allowed. */
67
+ truncated?: boolean;
68
+ /** Wall time of the call. */
69
+ durationMs: number;
70
+ /** Why the call failed; the model was told the same and may retry. */
71
+ error?: string;
72
+ /** The model's interim reasoning for the round this call belongs to; only on the FIRST call of a round. Bounded to 1000 chars. */
73
+ thought?: string;
74
+ }
75
+ /**
76
+ * One finding of a report.
77
+ *
78
+ * @stability stable
79
+ */
80
+ export interface TelemetryAssistantFinding {
81
+ /** One line naming the finding. */
82
+ title: string;
83
+ /** How bad it is. */
84
+ severity: TelemetryAssistantSeverity;
85
+ /** What in the data shows it. */
86
+ evidence: string;
87
+ /** Index into `report.queries` of the query that shows this finding. */
88
+ queryIndex?: number;
89
+ }
90
+ /**
91
+ * A supporting query of a report, which the user can re-run.
92
+ *
93
+ * @stability stable
94
+ */
95
+ export interface TelemetryAssistantQuery {
96
+ /** What the query shows. */
97
+ title: string;
98
+ /** The statement. */
99
+ sql: string;
100
+ }
101
+ /**
102
+ * The investigation's structured result.
103
+ *
104
+ * @stability stable
105
+ */
106
+ export interface TelemetryAssistantReport {
107
+ /** The outcome. */
108
+ status: TelemetryAssistantReportStatus;
109
+ /** A short summary. */
110
+ summary: string;
111
+ /** What was found, most important first. */
112
+ findings: TelemetryAssistantFinding[];
113
+ /** The root cause, or null when none was established. */
114
+ rootCause: string | null;
115
+ /** How sure the report is. */
116
+ confidence: TelemetryAssistantConfidence;
117
+ /** What to do next. */
118
+ recommendations: string[];
119
+ /** Supporting queries the user can re-run (at most 5); the first is the most useful. */
120
+ queries: TelemetryAssistantQuery[];
121
+ }
122
+ /**
123
+ * `event: answer` — the final answer.
124
+ *
125
+ * @stability stable
126
+ */
127
+ export interface TelemetryAssistantAnswerEvent {
128
+ /** Back-compat: queries[0].sql, or null. */
129
+ sql: string | null;
130
+ /** Back-compat: the report summary (or the raw text when the model did not return a report). */
131
+ explanation: string;
132
+ /** The structured report, or null when the model gave no parseable one. */
133
+ report: TelemetryAssistantReport | null;
134
+ }
135
+ /**
136
+ * `event: error` — the turn failed after the stream opened.
137
+ *
138
+ * @stability stable
139
+ */
140
+ export interface TelemetryAssistantErrorEvent {
141
+ /** A stable error code. */
142
+ code: string;
143
+ /** A message for the user. */
144
+ message: string;
145
+ }
146
+ /**
147
+ * Every event of the stream, by name, with its payload.
148
+ *
149
+ * @stability stable
150
+ */
151
+ export interface TelemetryAssistantEventMap {
152
+ /** One tool call. */
153
+ step: TelemetryAssistantStepEvent;
154
+ /** The final answer. */
155
+ answer: TelemetryAssistantAnswerEvent;
156
+ /** The turn failed. */
157
+ error: TelemetryAssistantErrorEvent;
158
+ /** The stream ends. */
159
+ done: Record<string, never>;
160
+ }
161
+ /**
162
+ * The name of a stream event.
163
+ *
164
+ * @stability stable
165
+ */
166
+ export type TelemetryAssistantEventName = keyof TelemetryAssistantEventMap;
167
+ /**
168
+ * A function that writes one stream event (the server's side of the stream).
169
+ *
170
+ * @stability stable
171
+ */
172
+ export type TelemetryAssistantEmit = <E extends TelemetryAssistantEventName>(event: E, data: TelemetryAssistantEventMap[E]) => void;
173
+ //# sourceMappingURL=assistant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.d.ts","sourceRoot":"","sources":["../../../src/telemetry/assistant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ // =============================================================================
2
+ // POST /api/admin/telemetry/assistant/stream (issue #536; moved here from the
3
+ // API's `telemetry/dto/telemetry-assistant.dto.ts` by #702)
4
+ // =============================================================================
5
+ //
6
+ // The request body is a zod schema. The response is a `text/event-stream`;
7
+ // its frame payloads are the binding web ↔ API contract and are TYPES (the
8
+ // API writes them, nothing parses them on the server), as they always were.
9
+ // =============================================================================
10
+ import { z } from 'zod';
11
+ import { TELEMETRY_ASSISTANT_HISTORY_CONTENT_MAX, TELEMETRY_ASSISTANT_HISTORY_MAX_TURNS, TELEMETRY_ASSISTANT_QUESTION_MAX, TELEMETRY_ASSISTANT_TURN_ROLES, } from './constants.js';
12
+ import { wireEnum } from './enum.js';
13
+ /**
14
+ * One earlier turn of the conversation: `role` (`user` or `assistant`) and
15
+ * `content` (at most {@link TELEMETRY_ASSISTANT_HISTORY_CONTENT_MAX} characters).
16
+ *
17
+ * @extensionPoint schema
18
+ * @stability stable
19
+ */
20
+ export const telemetryAssistantTurnSchema = z.object({
21
+ /** Who wrote the turn. */
22
+ role: wireEnum(TELEMETRY_ASSISTANT_TURN_ROLES),
23
+ /** The turn's text. */
24
+ content: z.string().max(TELEMETRY_ASSISTANT_HISTORY_CONTENT_MAX),
25
+ });
26
+ /**
27
+ * `POST /api/admin/telemetry/assistant/stream` body: `question` (trimmed,
28
+ * 1..{@link TELEMETRY_ASSISTANT_QUESTION_MAX} characters) and an optional
29
+ * `history` (oldest first, at most {@link TELEMETRY_ASSISTANT_HISTORY_MAX_TURNS}).
30
+ *
31
+ * @extensionPoint schema
32
+ * @stability stable
33
+ */
34
+ export const telemetryAssistantRequestSchema = z.object({
35
+ /** The new question, in natural language. */
36
+ question: z.string().trim().min(1).max(TELEMETRY_ASSISTANT_QUESTION_MAX),
37
+ /** Earlier turns of this conversation, oldest first. */
38
+ history: z.array(telemetryAssistantTurnSchema).max(TELEMETRY_ASSISTANT_HISTORY_MAX_TURNS).optional(),
39
+ });
40
+ //# sourceMappingURL=assistant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assistant.js","sourceRoot":"","sources":["../../../src/telemetry/assistant.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,8EAA8E;AAC9E,4DAA4D;AAC5D,gFAAgF;AAChF,EAAE;AACF,2EAA2E;AAC3E,2EAA2E;AAC3E,4EAA4E;AAC5E,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,uCAAuC,EACvC,qCAAqC,EACrC,gCAAgC,EAChC,8BAA8B,GAK/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC,MAAM,CAAC;IACnD,0BAA0B;IAC1B,IAAI,EAAE,QAAQ,CAAC,8BAA8B,CAAC;IAC9C,uBAAuB;IACvB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,uCAAuC,CAAC;CACjE,CAAC,CAAC;AASH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IACtD,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gCAAgC,CAAC;IACxE,wDAAwD;IACxD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,QAAQ,EAAE;CACrG,CAAC,CAAC"}
@@ -0,0 +1,92 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * `PUT /api/admin/telemetry/config` body: the stored namespace, with
4
+ * `instanceId` optional (absent keeps the stored value).
5
+ *
6
+ * @extensionPoint schema
7
+ * @stability stable
8
+ */
9
+ export declare const updateTelemetryConfigSchema: z.ZodObject<{
10
+ enabled: z.ZodBoolean;
11
+ retentionDays: z.ZodNumber;
12
+ query: z.ZodObject<{
13
+ maxRows: z.ZodNumber;
14
+ timeoutSeconds: z.ZodNumber;
15
+ }, z.core.$strip>;
16
+ assistant: z.ZodObject<{
17
+ enabled: z.ZodBoolean;
18
+ provider: z.ZodNullable<z.ZodString>;
19
+ modelId: z.ZodNullable<z.ZodString>;
20
+ shareResults: z.ZodBoolean;
21
+ maxResultRowsToModel: z.ZodNumber;
22
+ maxSteps: z.ZodNumber;
23
+ }, z.core.$strip>;
24
+ instanceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ }, z.core.$strip>;
26
+ /**
27
+ * The `PUT /api/admin/telemetry/config` body.
28
+ *
29
+ * @stability stable
30
+ */
31
+ export type UpdateTelemetryConfigInput = z.infer<typeof updateTelemetryConfigSchema>;
32
+ /**
33
+ * `GET /api/admin/telemetry/config` (and the `PUT` response): the stored
34
+ * namespace plus `available`, `retentionApplicable`, `instanceIdDefault`,
35
+ * `instanceIdEffective`, `version` (send it back as `If-Match`), `updatedAt`
36
+ * and `updatedBy`.
37
+ *
38
+ * @extensionPoint schema
39
+ * @stability stable
40
+ */
41
+ export declare const telemetryConfigResponseSchema: z.ZodObject<{
42
+ enabled: z.ZodBoolean;
43
+ retentionDays: z.ZodNumber;
44
+ instanceId: z.ZodNullable<z.ZodString>;
45
+ query: z.ZodObject<{
46
+ maxRows: z.ZodNumber;
47
+ timeoutSeconds: z.ZodNumber;
48
+ }, z.core.$strip>;
49
+ assistant: z.ZodObject<{
50
+ enabled: z.ZodBoolean;
51
+ provider: z.ZodNullable<z.ZodString>;
52
+ modelId: z.ZodNullable<z.ZodString>;
53
+ shareResults: z.ZodBoolean;
54
+ maxResultRowsToModel: z.ZodNumber;
55
+ maxSteps: z.ZodNumber;
56
+ }, z.core.$strip>;
57
+ available: z.ZodBoolean;
58
+ retentionApplicable: z.ZodBoolean;
59
+ instanceIdDefault: z.ZodString;
60
+ instanceIdEffective: z.ZodString;
61
+ version: z.ZodNumber;
62
+ updatedAt: z.ZodNullable<z.ZodISODateTime>;
63
+ updatedBy: z.ZodNullable<z.ZodObject<{
64
+ id: z.ZodString;
65
+ email: z.ZodString;
66
+ }, z.core.$strip>>;
67
+ }, z.core.$strip>;
68
+ /**
69
+ * `GET /api/admin/telemetry/config`.
70
+ *
71
+ * @stability stable
72
+ */
73
+ export type TelemetryConfigResponse = z.infer<typeof telemetryConfigResponseSchema>;
74
+ /**
75
+ * `GET /api/telemetry/config`: the feature flag every signed-in client reads
76
+ * (`available`, `enabled`, `assistantEnabled`).
77
+ *
78
+ * @extensionPoint schema
79
+ * @stability stable
80
+ */
81
+ export declare const telemetryPublicConfigSchema: z.ZodObject<{
82
+ available: z.ZodBoolean;
83
+ enabled: z.ZodBoolean;
84
+ assistantEnabled: z.ZodBoolean;
85
+ }, z.core.$strip>;
86
+ /**
87
+ * `GET /api/telemetry/config`.
88
+ *
89
+ * @stability stable
90
+ */
91
+ export type TelemetryPublicConfig = z.infer<typeof telemetryPublicConfigSchema>;
92
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;iBAGtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAErF;;;;;;;;GAQG;AACH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqCxC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF;;;;;;GAMG;AACH,eAAO,MAAM,2BAA2B;;;;iBAUtC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC"}
@@ -0,0 +1,98 @@
1
+ // =============================================================================
2
+ // /api/admin/telemetry/config and /api/telemetry/config (issue #534; moved
3
+ // here from the API's `telemetry/dto/telemetry-config.dto.ts` by #702)
4
+ // =============================================================================
5
+ //
6
+ // The PUT body IS the stored `telemetry` namespace, so a form can send back
7
+ // exactly what it loaded (minus the provenance fields the response adds).
8
+ // Full replace: `assistant.provider` / `assistant.modelId` sent as `null`
9
+ // clear a stored value.
10
+ //
11
+ // ONE EXCEPTION TO "FULL": `instanceId` (#565) is OPTIONAL in the PUT body.
12
+ // Absent keeps the stored value, `null` returns to the application-slug
13
+ // default, a string overrides it. A client written before it existed must not
14
+ // get a 400, nor silently reset an identity an administrator set, merely by
15
+ // saving the page. The response always carries it, plus `instanceIdDefault` /
16
+ // `instanceIdEffective` so a form can show what `null` currently means.
17
+ //
18
+ // No credential is part of any of these shapes and none may be added.
19
+ // =============================================================================
20
+ import { z } from 'zod';
21
+ import { telemetrySettingsSchema } from './settings.js';
22
+ /**
23
+ * `PUT /api/admin/telemetry/config` body: the stored namespace, with
24
+ * `instanceId` optional (absent keeps the stored value).
25
+ *
26
+ * @extensionPoint schema
27
+ * @stability stable
28
+ */
29
+ export const updateTelemetryConfigSchema = telemetrySettingsSchema.extend({
30
+ /** Optional here: absent keeps the stored value, `null` returns to the default, a string overrides it. */
31
+ instanceId: telemetrySettingsSchema.shape.instanceId.optional(),
32
+ });
33
+ /**
34
+ * `GET /api/admin/telemetry/config` (and the `PUT` response): the stored
35
+ * namespace plus `available`, `retentionApplicable`, `instanceIdDefault`,
36
+ * `instanceIdEffective`, `version` (send it back as `If-Match`), `updatedAt`
37
+ * and `updatedBy`.
38
+ *
39
+ * @extensionPoint schema
40
+ * @stability stable
41
+ */
42
+ export const telemetryConfigResponseSchema = telemetrySettingsSchema.extend({
43
+ /**
44
+ * Whether a telemetry store is configured (admin UI or deployment default):
45
+ * a host and the reader login with its password. While false, `enabled` is
46
+ * stored but nothing is exported or queryable.
47
+ */
48
+ available: z.boolean(),
49
+ /**
50
+ * Whether the GreptimeDB admin login is configured (admin UI or deployment
51
+ * default), which retention needs. While false, `retentionDays` is stored
52
+ * but not applied.
53
+ */
54
+ retentionApplicable: z.boolean(),
55
+ /**
56
+ * What a `null` `instanceId` resolves to: the application slug (`APP_SLUG`,
57
+ * derived from the product name). Read-only.
58
+ */
59
+ instanceIdDefault: z.string(),
60
+ /**
61
+ * The identifier currently stamped as the `app.instance.id` resource
62
+ * attribute on exported telemetry: `instanceId` when set, else
63
+ * `instanceIdDefault`. Read-only.
64
+ */
65
+ instanceIdEffective: z.string(),
66
+ /** The system-settings row version — send it back as `If-Match` on `PUT`. `0` when nothing is stored yet. */
67
+ version: z.number().int(),
68
+ /** When the namespace was last saved, or `null` when nothing is stored yet. */
69
+ updatedAt: z.iso.datetime().nullable(),
70
+ /** Who saved it last, or `null`. */
71
+ updatedBy: z
72
+ .object({
73
+ /** The user's id. */
74
+ id: z.string(),
75
+ /** The user's email. */
76
+ email: z.string(),
77
+ })
78
+ .nullable(),
79
+ });
80
+ /**
81
+ * `GET /api/telemetry/config`: the feature flag every signed-in client reads
82
+ * (`available`, `enabled`, `assistantEnabled`).
83
+ *
84
+ * @extensionPoint schema
85
+ * @stability stable
86
+ */
87
+ export const telemetryPublicConfigSchema = z.object({
88
+ /** A telemetry store is configured (admin UI or deployment default). False hides every telemetry surface. */
89
+ available: z.boolean(),
90
+ /** `telemetry.enabled` — whether this deployment is currently collecting telemetry. */
91
+ enabled: z.boolean(),
92
+ /**
93
+ * `telemetry.assistant.enabled` — whether the telemetry AI assistant is
94
+ * switched on. Whether the AI platform itself is on is `GET /api/ai/config`.
95
+ */
96
+ assistantEnabled: z.boolean(),
97
+ });
98
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/telemetry/config.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,uEAAuE;AACvE,gFAAgF;AAChF,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,wBAAwB;AACxB,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,8EAA8E;AAC9E,4EAA4E;AAC5E,8EAA8E;AAC9E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,gFAAgF;AAEhF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IACxE,0GAA0G;IAC1G,UAAU,EAAE,uBAAuB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE;CAChE,CAAC,CAAC;AASH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,uBAAuB,CAAC,MAAM,CAAC;IAC1E;;;;OAIG;IACH,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE;IAChC;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC7B;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE;IAC/B,6GAA6G;IAC7G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACzB,+EAA+E;IAC/E,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,oCAAoC;IACpC,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,qBAAqB;QACrB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;QACd,wBAAwB;QACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;KAClB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AASH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,6GAA6G;IAC7G,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,uFAAuF;IACvF,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB;;;OAGG;IACH,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE;CAC9B,CAAC,CAAC"}