@robosystems/client 0.6.0 → 0.6.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.
package/types.gen.ts CHANGED
@@ -198,6 +198,154 @@ export type ArtifactResponse = {
198
198
  } & ForecastMechanics);
199
199
  };
200
200
 
201
+ /**
202
+ * AssertMetricsRequest
203
+ *
204
+ * Request body for the ``assert-metrics`` operation.
205
+ *
206
+ * The observation sibling of ``compute-metrics``: writes externally-
207
+ * observed values (usage counts, marketing numbers, hand-carried
208
+ * figures) into the period's standing ``factset_type='metric'`` FactSet
209
+ * with ``AssertedProvenance``. Re-asserting a period replaces its facts
210
+ * — one standing FactSet per (structure, entity, period_end), the
211
+ * accumulating time series.
212
+ *
213
+ * Structures carrying ``Derive`` rules are compute-owned
214
+ * (``compute-metrics``) and rejected — asserted and derived metric
215
+ * series keep disjoint structures. Asserted series are actuals; there
216
+ * is no scenario axis.
217
+ */
218
+ export type AssertMetricsRequest = {
219
+ /**
220
+ * Structure Id
221
+ *
222
+ * Metric block structure (block_type='metric') to assert into.
223
+ */
224
+ structure_id: string;
225
+ /**
226
+ * Period End
227
+ *
228
+ * Period end the observations are for — instant concepts (a follower count at month end) land as of this date; duration concepts (monthly downloads) end on it.
229
+ */
230
+ period_end: string;
231
+ /**
232
+ * Period Start
233
+ *
234
+ * Window start for duration concepts and the standing FactSet's period_start. Instant concepts ignore it.
235
+ */
236
+ period_start?: string | null;
237
+ /**
238
+ * Entity Id
239
+ *
240
+ * Entity to assert for. Defaults to the graph's earliest-created entity (the primary entity for single-entity graphs).
241
+ */
242
+ entity_id?: string | null;
243
+ /**
244
+ * Source System
245
+ *
246
+ * Identifier of the asserting system (e.g. 'content-machine') — recorded as the AssertedProvenance source_system.
247
+ */
248
+ source_system: string;
249
+ /**
250
+ * Basis Note
251
+ *
252
+ * Free-text basis / source reference for the observations.
253
+ */
254
+ basis_note?: string | null;
255
+ /**
256
+ * Observations
257
+ *
258
+ * Observed values, one per metric concept — duplicates rejected.
259
+ */
260
+ observations: Array<MetricObservation>;
261
+ };
262
+
263
+ /**
264
+ * AssertMetricsResponse
265
+ *
266
+ * Response for the ``assert-metrics`` operation.
267
+ */
268
+ export type AssertMetricsResponse = {
269
+ /**
270
+ * Structure Id
271
+ */
272
+ structure_id: string;
273
+ /**
274
+ * Entity Id
275
+ */
276
+ entity_id: string;
277
+ /**
278
+ * Period End
279
+ */
280
+ period_end: string;
281
+ /**
282
+ * Fact Set Id
283
+ *
284
+ * Standing metric FactSet the observations were written to.
285
+ */
286
+ fact_set_id: string;
287
+ /**
288
+ * Asserted
289
+ */
290
+ asserted?: Array<AssertedMetricLite>;
291
+ /**
292
+ * Replaced
293
+ *
294
+ * True when a prior standing set existed for the period and its facts were replaced.
295
+ */
296
+ replaced?: boolean;
297
+ };
298
+
299
+ /**
300
+ * AssertedMetricLite
301
+ *
302
+ * One metric written by an ``assert-metrics`` run.
303
+ */
304
+ export type AssertedMetricLite = {
305
+ /**
306
+ * Element Id
307
+ *
308
+ * Metric element the fact was written for.
309
+ */
310
+ element_id: string;
311
+ /**
312
+ * Element Qname
313
+ *
314
+ * Metric element qname.
315
+ */
316
+ element_qname: string;
317
+ /**
318
+ * Name
319
+ *
320
+ * Metric display name.
321
+ */
322
+ name: string;
323
+ /**
324
+ * Value
325
+ *
326
+ * Asserted value.
327
+ */
328
+ value: number;
329
+ /**
330
+ * Unit
331
+ *
332
+ * Fact unit — 'USD' for monetary, 'days' for days, else 'pure'.
333
+ */
334
+ unit: string;
335
+ /**
336
+ * Period Type
337
+ *
338
+ * 'instant' or 'duration'.
339
+ */
340
+ period_type: string;
341
+ /**
342
+ * Item Type
343
+ *
344
+ * Format family from the metric element (monetary | ratio | percent | multiple | days). None means untyped; fall back to unit.
345
+ */
346
+ item_type?: string | null;
347
+ };
348
+
201
349
  /**
202
350
  * AssociationResponse
203
351
  *
@@ -1721,7 +1869,7 @@ export type ConnectionProviderInfo = {
1721
1869
  *
1722
1870
  * Provider identifier
1723
1871
  */
1724
- provider: 'sec' | 'quickbooks';
1872
+ provider: 'sec' | 'quickbooks' | 'external';
1725
1873
  /**
1726
1874
  * Display Name
1727
1875
  *
@@ -1844,6 +1992,12 @@ export type ConnectionResponse = {
1844
1992
  * Source-of-truth write policy: 'native' (RoboSystems is authoritative; no outbound write-back) or 'qb_authoritative' (QuickBooks is authoritative; RoboSystems-originated entries publish to QB). Set via the write-policy endpoint.
1845
1993
  */
1846
1994
  write_policy?: string | null;
1995
+ /**
1996
+ * Source Name
1997
+ *
1998
+ * External-provider registered source slug — the value the integration stamps on the events it emits. Null for platform providers.
1999
+ */
2000
+ source_name?: string | null;
1847
2001
  /**
1848
2002
  * Metadata
1849
2003
  *
@@ -2110,7 +2264,7 @@ export type CreateConnectionRequest = {
2110
2264
  *
2111
2265
  * Connection provider type
2112
2266
  */
2113
- provider: 'sec' | 'quickbooks';
2267
+ provider: 'sec' | 'quickbooks' | 'external';
2114
2268
  /**
2115
2269
  * Entity Id
2116
2270
  *
@@ -2119,6 +2273,7 @@ export type CreateConnectionRequest = {
2119
2273
  entity_id?: string | null;
2120
2274
  sec_config?: SecConnectionConfig | null;
2121
2275
  quickbooks_config?: QuickBooksConnectionConfig | null;
2276
+ external_config?: ExternalConnectionConfig | null;
2122
2277
  };
2123
2278
 
2124
2279
  /**
@@ -2184,7 +2339,7 @@ export type CreateEventBlockRequest = {
2184
2339
  /**
2185
2340
  * Source
2186
2341
  *
2187
- * 'manual' | 'system' | 'schedule' | 'quickbooks' | 'xero' | 'plaid'
2342
+ * 'manual' | 'system' | 'schedule', a connected provider name (e.g. 'quickbooks'), or a source_name registered via an 'external' connection. Validated against the graph's registered connections.
2188
2343
  */
2189
2344
  source: string;
2190
2345
  /**
@@ -4598,7 +4753,7 @@ export type EventBlockEnvelope = {
4598
4753
  /**
4599
4754
  * Source
4600
4755
  *
4601
- * Capture source (`manual`, `system`, `schedule`, `quickbooks`, `xero`, `plaid`). Used for adapter routing.
4756
+ * Capture source: `manual`, `system`, `schedule`, a connected provider name (e.g. `quickbooks`), or a registered external source_name. Used for adapter routing.
4602
4757
  */
4603
4758
  source: string;
4604
4759
  /**
@@ -4867,6 +5022,32 @@ export type ExecuteEventBlockResponse = {
4867
5022
  } | null;
4868
5023
  };
4869
5024
 
5025
+ /**
5026
+ * ExternalConnectionConfig
5027
+ *
5028
+ * External-integration connection configuration.
5029
+ *
5030
+ * Registers a source namespace for an integration the platform does not
5031
+ * run: the connection is registration + telemetry, not execution config.
5032
+ * The platform holds no credentials for the external source — the
5033
+ * integration authenticates to its own source and writes here through
5034
+ * the public API, stamping ``source_name`` on everything it emits.
5035
+ */
5036
+ export type ExternalConnectionConfig = {
5037
+ /**
5038
+ * Source Name
5039
+ *
5040
+ * Source slug the integration stamps on the events it emits (lowercase letters, digits, '-', '_'; must start with a letter). Unique per graph among live connections.
5041
+ */
5042
+ source_name: string;
5043
+ /**
5044
+ * Display Name
5045
+ *
5046
+ * Human-readable label for the connections UI.
5047
+ */
5048
+ display_name?: string | null;
5049
+ };
5050
+
4870
5051
  /**
4871
5052
  * FactLite
4872
5053
  *
@@ -7974,7 +8155,7 @@ export type MaterializeOp = {
7974
8155
  /**
7975
8156
  * Rebuild
7976
8157
  *
7977
- * Rebuild the graph from scratch, dropping existing data
8158
+ * Rebuild the graph from scratch, dropping existing data. Required (staged source) when materializing new uploads into a graph that already contains materialized data — staging replays all uploaded files, so a non-rebuild pass would re-copy ingested rows (409).
7978
8159
  */
7979
8160
  rebuild?: boolean;
7980
8161
  /**
@@ -8148,6 +8329,26 @@ export type MetricMechanics = {
8148
8329
  unit?: string;
8149
8330
  };
8150
8331
 
8332
+ /**
8333
+ * MetricObservation
8334
+ *
8335
+ * One externally-observed value in an ``assert-metrics`` request.
8336
+ */
8337
+ export type MetricObservation = {
8338
+ /**
8339
+ * Qname
8340
+ *
8341
+ * Metric element qname (e.g. rsx:GithubStars). Must resolve to a concept on the structure's presentation catalog.
8342
+ */
8343
+ qname: string;
8344
+ /**
8345
+ * Value
8346
+ *
8347
+ * Observed value.
8348
+ */
8349
+ value: number;
8350
+ };
8351
+
8151
8352
  /**
8152
8353
  * OAuthCallbackRequest
8153
8354
  *
@@ -8447,6 +8648,52 @@ export type OperationEnvelope = {
8447
8648
  idempotentReplay?: boolean;
8448
8649
  };
8449
8650
 
8651
+ /**
8652
+ * OperationEnvelope[AssertMetricsResponse]
8653
+ */
8654
+ export type OperationEnvelopeAssertMetricsResponse = {
8655
+ /**
8656
+ * Operation
8657
+ *
8658
+ * Kebab-case operation name
8659
+ */
8660
+ operation: string;
8661
+ /**
8662
+ * Operationid
8663
+ *
8664
+ * op_-prefixed ULID for audit and SSE correlation
8665
+ */
8666
+ operationId: string;
8667
+ /**
8668
+ * Status
8669
+ *
8670
+ * Operation lifecycle state
8671
+ */
8672
+ status: 'completed' | 'pending' | 'failed';
8673
+ /**
8674
+ * Command-specific result payload
8675
+ */
8676
+ result?: AssertMetricsResponse | null;
8677
+ /**
8678
+ * At
8679
+ *
8680
+ * ISO-8601 UTC timestamp
8681
+ */
8682
+ at: string;
8683
+ /**
8684
+ * Createdby
8685
+ *
8686
+ * User ID that initiated the operation (null for legacy callers)
8687
+ */
8688
+ createdBy?: string | null;
8689
+ /**
8690
+ * Idempotentreplay
8691
+ *
8692
+ * True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.
8693
+ */
8694
+ idempotentReplay?: boolean;
8695
+ };
8696
+
8450
8697
  /**
8451
8698
  * OperationEnvelope[AssociationResponse]
8452
8699
  */
@@ -18082,7 +18329,7 @@ export type ListConnectionsData = {
18082
18329
  *
18083
18330
  * Filter by provider type
18084
18331
  */
18085
- provider?: 'sec' | 'quickbooks' | null;
18332
+ provider?: 'sec' | 'quickbooks' | 'external' | null;
18086
18333
  };
18087
18334
  url: '/v1/graphs/{graph_id}/connections';
18088
18335
  };
@@ -23859,6 +24106,70 @@ export type ComputeMetricsResponses = {
23859
24106
 
23860
24107
  export type ComputeMetricsResponse2 = ComputeMetricsResponses[keyof ComputeMetricsResponses];
23861
24108
 
24109
+ export type AssertMetricsData = {
24110
+ body: AssertMetricsRequest;
24111
+ headers?: {
24112
+ /**
24113
+ * Idempotency-Key
24114
+ */
24115
+ 'Idempotency-Key'?: string | null;
24116
+ };
24117
+ path: {
24118
+ /**
24119
+ * Graph Id
24120
+ */
24121
+ graph_id: string;
24122
+ };
24123
+ query?: never;
24124
+ url: '/extensions/roboledger/{graph_id}/operations/assert-metrics';
24125
+ };
24126
+
24127
+ export type AssertMetricsErrors = {
24128
+ /**
24129
+ * Invalid request
24130
+ */
24131
+ 400: ErrorResponse;
24132
+ /**
24133
+ * Authentication required
24134
+ */
24135
+ 401: ErrorResponse;
24136
+ /**
24137
+ * Access denied
24138
+ */
24139
+ 403: ErrorResponse;
24140
+ /**
24141
+ * Resource not found
24142
+ */
24143
+ 404: ErrorResponse;
24144
+ /**
24145
+ * Idempotency-Key conflict — key reused with different body
24146
+ */
24147
+ 409: ErrorResponse;
24148
+ /**
24149
+ * Validation error
24150
+ */
24151
+ 422: ErrorResponse;
24152
+ /**
24153
+ * Rate limit exceeded
24154
+ */
24155
+ 429: ErrorResponse;
24156
+ /**
24157
+ * Internal server error
24158
+ */
24159
+ 500: ErrorResponse;
24160
+ };
24161
+
24162
+ export type AssertMetricsError = AssertMetricsErrors[keyof AssertMetricsErrors];
24163
+
24164
+ export type AssertMetricsResponses = {
24165
+ /**
24166
+ * Successful Response
24167
+ */
24168
+ 200: OperationEnvelopeAssertMetricsResponse;
24169
+ };
24170
+
24171
+ export type AssertMetricsResponse2 = AssertMetricsResponses[keyof AssertMetricsResponses];
24172
+
23862
24173
  export type ComputeForecastData = {
23863
24174
  body: ComputeForecastRequest;
23864
24175
  headers?: {