@robosystems/client 0.5.6 → 0.5.8

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.d.ts CHANGED
@@ -150,7 +150,9 @@ export type ArtifactResponse = {
150
150
  kind: 'metric';
151
151
  } & MetricMechanics) | ({
152
152
  kind: 'rollforward';
153
- } & RollforwardMechanics);
153
+ } & RollforwardMechanics) | ({
154
+ kind: 'forecast';
155
+ } & ForecastMechanics);
154
156
  };
155
157
  /**
156
158
  * AssociationResponse
@@ -1192,6 +1194,87 @@ export type ClosePeriodResponse = {
1192
1194
  */
1193
1195
  evaluated_structure_ids?: Array<string>;
1194
1196
  };
1197
+ /**
1198
+ * ComputeForecastRequest
1199
+ *
1200
+ * Request body for the ``compute-forecast`` operation.
1201
+ *
1202
+ * Walks the scenario's driver cascade month-by-month forward from the
1203
+ * forecast block's ``base_period``: lever-driven Derive rules in
1204
+ * dependency order, carry-forward for unmodeled IS lines, calc-DAG
1205
+ * subtotals — upserting one scenario IS FactSet (+ a working-capital BS
1206
+ * set) per forward month, all keyed by the forecast block's
1207
+ * ``scenario_id``. Re-running replaces each month's values (the
1208
+ * compute-metrics drift semantics). Deterministic and non-AI — no
1209
+ * credits consumed.
1210
+ */
1211
+ export type ComputeForecastRequest = {
1212
+ /**
1213
+ * Structure Id
1214
+ *
1215
+ * Forecast block structure (block_type='forecast') to compute.
1216
+ */
1217
+ structure_id: string;
1218
+ /**
1219
+ * Months
1220
+ *
1221
+ * Forward months to compute — defaults to the block's full horizon_months; must not exceed it (lever assertions don't extend past the horizon).
1222
+ */
1223
+ months?: number | null;
1224
+ /**
1225
+ * Entity Id
1226
+ *
1227
+ * Entity to compute for. Defaults to the lever FactSet's entity (the entity the scenario was authored against).
1228
+ */
1229
+ entity_id?: string | null;
1230
+ };
1231
+ /**
1232
+ * ComputeForecastResponse
1233
+ *
1234
+ * Response for the ``compute-forecast`` operation.
1235
+ */
1236
+ export type ComputeForecastResponse = {
1237
+ /**
1238
+ * Structure Id
1239
+ */
1240
+ structure_id: string;
1241
+ /**
1242
+ * Scenario Id
1243
+ *
1244
+ * The scenario key every emitted FactSet carries — the forecast block's own structure id.
1245
+ */
1246
+ scenario_id: string;
1247
+ /**
1248
+ * Entity Id
1249
+ */
1250
+ entity_id: string;
1251
+ /**
1252
+ * Base Period
1253
+ *
1254
+ * Seed month the walk projected from.
1255
+ */
1256
+ base_period: string;
1257
+ /**
1258
+ * Months
1259
+ *
1260
+ * Forward months requested.
1261
+ */
1262
+ months: number;
1263
+ /**
1264
+ * Months Computed
1265
+ */
1266
+ months_computed?: Array<ForecastMonthLite>;
1267
+ /**
1268
+ * Skipped
1269
+ */
1270
+ skipped?: Array<SkippedForecastLite>;
1271
+ /**
1272
+ * Diagnostics
1273
+ *
1274
+ * Articulation notes — a missing cash/earnings anchor, schedule contributions with no base-set landing spot, an absent cash-flow structure. Informational; the walk still computed.
1275
+ */
1276
+ diagnostics?: Array<string>;
1277
+ };
1195
1278
  /**
1196
1279
  * ComputeMetricsRequest
1197
1280
  *
@@ -1229,6 +1312,12 @@ export type ComputeMetricsRequest = {
1229
1312
  * Entity to compute for. Defaults to the graph's earliest-created entity (the primary entity for single-entity graphs).
1230
1313
  */
1231
1314
  entity_id?: string | null;
1315
+ /**
1316
+ * Scenario Id
1317
+ *
1318
+ * Compute on a scenario slice: operands bind that scenario's facts (actuals as the fallback across the seam) and the standing metric set is stamped with the scenario. None (the default) computes actuals only. Pass a forecast block's structure id after compute-forecast to extend the metric series into its forward months.
1319
+ */
1320
+ scenario_id?: string | null;
1232
1321
  };
1233
1322
  /**
1234
1323
  * ComputeMetricsResponse
@@ -2013,6 +2102,54 @@ export type CreateEventHandlerRequest = {
2013
2102
  [key: string]: unknown;
2014
2103
  };
2015
2104
  };
2105
+ /**
2106
+ * CreateForecastRequest
2107
+ *
2108
+ * Create a forecast block — the authored scenario container.
2109
+ *
2110
+ * ``base_period`` defaults to the fiscal calendar's
2111
+ * ``closed_through_period`` (else the newest actual report month) —
2112
+ * the walk projects forward from the last closed actuals. The resolved
2113
+ * value is stored in the mechanics so recompute is deterministic.
2114
+ */
2115
+ export type CreateForecastRequest = {
2116
+ /**
2117
+ * Name
2118
+ *
2119
+ * Human-readable scenario name.
2120
+ */
2121
+ name: string;
2122
+ /**
2123
+ * Scenario Kind
2124
+ *
2125
+ * What kind of scenario this is — metadata for display/filtering, not machinery. All kinds compute identically.
2126
+ */
2127
+ scenario_kind?: 'budget' | 'forecast' | 'projection';
2128
+ /**
2129
+ * Horizon Months
2130
+ *
2131
+ * Forward months to project past the base period.
2132
+ */
2133
+ horizon_months?: number;
2134
+ /**
2135
+ * Base Period
2136
+ *
2137
+ * Seed month (``YYYY-MM``) the walk projects forward from. Defaults to the fiscal calendar's closed-through period, else the newest actual report month. Resolved and stored at create time.
2138
+ */
2139
+ base_period?: string | null;
2140
+ /**
2141
+ * Levers
2142
+ *
2143
+ * Lever assertions — at least one.
2144
+ */
2145
+ levers: Array<LeverAssertionRequest>;
2146
+ /**
2147
+ * Entity Id
2148
+ *
2149
+ * Entity the scenario belongs to. Defaults to the graph's earliest-created entity (single-entity convention).
2150
+ */
2151
+ entity_id?: string | null;
2152
+ };
2016
2153
  /**
2017
2154
  * CreateGraphRequest
2018
2155
  *
@@ -2069,6 +2206,8 @@ export type CreateInformationBlockRequest = ({
2069
2206
  } & CreateScheduleArm) | ({
2070
2207
  block_type: 'rollforward';
2071
2208
  } & CreateRollforwardArm) | ({
2209
+ block_type: 'forecast';
2210
+ } & CreateForecastArm) | ({
2072
2211
  block_type: 'balance_sheet' | 'cash_flow_statement' | 'comprehensive_income' | 'equity_statement' | 'income_statement' | 'metric' | 'regulatory_disclosure';
2073
2212
  } & CreateLegacyArm);
2074
2213
  /**
@@ -3055,6 +3194,23 @@ export type DeleteFileOp = {
3055
3194
  */
3056
3195
  cascade?: boolean;
3057
3196
  };
3197
+ /**
3198
+ * DeleteForecastRequest
3199
+ *
3200
+ * Delete a forecast block.
3201
+ *
3202
+ * Removes the scenario's entire parallel universe: the lever FactSet
3203
+ * AND every computed scenario FactSet (the forward statement/metric
3204
+ * months keyed by this scenario). Actuals are never touched.
3205
+ */
3206
+ export type DeleteForecastRequest = {
3207
+ /**
3208
+ * Structure Id
3209
+ *
3210
+ * Structure ID of the forecast block.
3211
+ */
3212
+ structure_id: string;
3213
+ };
3058
3214
  /**
3059
3215
  * DeleteGraphOp
3060
3216
  *
@@ -3100,6 +3256,8 @@ export type DeleteInformationBlockRequest = ({
3100
3256
  } & DeleteScheduleArm) | ({
3101
3257
  block_type: 'rollforward';
3102
3258
  } & DeleteRollforwardArm) | ({
3259
+ block_type: 'forecast';
3260
+ } & DeleteForecastArm) | ({
3103
3261
  block_type: 'balance_sheet' | 'cash_flow_statement' | 'comprehensive_income' | 'equity_statement' | 'income_statement' | 'metric' | 'regulatory_disclosure';
3104
3262
  } & DeleteLegacyArm);
3105
3263
  /**
@@ -4465,7 +4623,7 @@ export type FactSetLite = {
4465
4623
  /**
4466
4624
  * Factset Type
4467
4625
  *
4468
- * 'report' | 'schedule' | 'custom' | 'disclosure'. Enum closure enforced by the ``public.fact_sets`` CHECK constraint.
4626
+ * 'report' | 'schedule' | 'custom' | 'disclosure' | 'metric'. Enum closure enforced by the ``public.fact_sets`` CHECK constraint.
4469
4627
  */
4470
4628
  factset_type: string;
4471
4629
  /**
@@ -4478,6 +4636,12 @@ export type FactSetLite = {
4478
4636
  * Back-pointer to the ``reports`` table while ``report_id`` still lives on facts. Drops out once the retirement migration lands.
4479
4637
  */
4480
4638
  report_id?: string | null;
4639
+ /**
4640
+ * Scenario Id
4641
+ *
4642
+ * Scenario axis (the forecast engine). NULL = actuals; non-NULL names the owning forecast block whose parallel universe this set belongs to.
4643
+ */
4644
+ scenario_id?: string | null;
4481
4645
  /**
4482
4646
  * Provenance
4483
4647
  *
@@ -4795,6 +4959,114 @@ export type FiscalPeriodSummary = {
4795
4959
  */
4796
4960
  closed_at?: string | null;
4797
4961
  };
4962
+ /**
4963
+ * ForecastMechanics
4964
+ *
4965
+ * Authored scenario container for ``block_type='forecast'`` (FP&A F-1).
4966
+ *
4967
+ * The block IS the scenario: its structure id is the ``scenario_id``
4968
+ * every derived forward FactSet carries (NULL = actuals). The authored
4969
+ * surface is exactly this — scenario identity, horizon, base period,
4970
+ * lever assertions; everything downstream is derived by
4971
+ * ``compute-forecast`` (levers → driven rs-gaap anchors via the
4972
+ * rs-driver Derive rules → carry-forward for unmodeled IS lines →
4973
+ * calc-DAG subtotals), landing in the EXISTING statement/metric block
4974
+ * types stamped with the scenario. Reads directly from the typed
4975
+ * ``structures.artifact_mechanics`` JSONB column.
4976
+ */
4977
+ export type ForecastMechanics = {
4978
+ /**
4979
+ * Kind
4980
+ */
4981
+ kind?: 'forecast';
4982
+ /**
4983
+ * Scenario Kind
4984
+ *
4985
+ * Scenario kind — display/filter metadata, not machinery.
4986
+ */
4987
+ scenario_kind?: 'budget' | 'forecast' | 'projection';
4988
+ /**
4989
+ * Horizon Months
4990
+ *
4991
+ * Forward months projected past the base period.
4992
+ */
4993
+ horizon_months: number;
4994
+ /**
4995
+ * Base Period
4996
+ *
4997
+ * Seed month (``YYYY-MM``) the walk projects forward from — resolved at create time (request → fiscal calendar closed-through → newest actual report month) and stored so recompute is deterministic.
4998
+ */
4999
+ base_period: string;
5000
+ /**
5001
+ * Levers
5002
+ *
5003
+ * Expanded lever assertions (authoring order).
5004
+ */
5005
+ levers: Array<LeverAssertionLite>;
5006
+ /**
5007
+ * Computed Months
5008
+ *
5009
+ * Number of forward months with computed scenario FactSets. Runtime state filled at envelope-build time — 0 until the first compute-forecast run.
5010
+ */
5011
+ computed_months?: number;
5012
+ };
5013
+ /**
5014
+ * ForecastMonthLite
5015
+ *
5016
+ * One computed forward month in a ``compute-forecast`` response.
5017
+ */
5018
+ export type ForecastMonthLite = {
5019
+ /**
5020
+ * Period
5021
+ *
5022
+ * Month key (``YYYY-MM``).
5023
+ */
5024
+ period: string;
5025
+ /**
5026
+ * Period Start
5027
+ */
5028
+ period_start: string;
5029
+ /**
5030
+ * Period End
5031
+ */
5032
+ period_end: string;
5033
+ /**
5034
+ * Income Statement Fact Set Id
5035
+ *
5036
+ * Scenario IS FactSet upserted for the month.
5037
+ */
5038
+ income_statement_fact_set_id?: string | null;
5039
+ /**
5040
+ * Balance Sheet Fact Set Id
5041
+ *
5042
+ * Scenario BS FactSet upserted for the month — the full roll: carry-forward, rule-driven working capital, schedule movements, RE roll, balancing cash (A = L + E by construction).
5043
+ */
5044
+ balance_sheet_fact_set_id?: string | null;
5045
+ /**
5046
+ * Cash Flow Fact Set Id
5047
+ *
5048
+ * Scenario CF FactSet upserted for the month — indirect-method, derived from BS deltas + NI, reconciled to the balancing ΔCash.
5049
+ */
5050
+ cash_flow_fact_set_id?: string | null;
5051
+ /**
5052
+ * Computed Count
5053
+ *
5054
+ * Number of facts emitted for the month across all sets.
5055
+ */
5056
+ computed_count?: number;
5057
+ /**
5058
+ * Verification Passed
5059
+ *
5060
+ * Whether every rule evaluated against the month's scenario sets passed (None = no rules ran for the month).
5061
+ */
5062
+ verification_passed?: boolean | null;
5063
+ /**
5064
+ * Verification Failures
5065
+ *
5066
+ * Failed/errored rule messages for the month (capped).
5067
+ */
5068
+ verification_failures?: Array<string>;
5069
+ };
4798
5070
  /**
4799
5071
  * ForgetOp
4800
5072
  *
@@ -6605,6 +6877,85 @@ export type LedgerEntityResponse = {
6605
6877
  */
6606
6878
  updated_at?: string | null;
6607
6879
  };
6880
+ /**
6881
+ * LeverAssertionLite
6882
+ *
6883
+ * One lever's persisted assertion inside ``ForecastMechanics``.
6884
+ *
6885
+ * The create handler expands the wire-level assertion (uniform ``value``
6886
+ * + per-month overrides) into the explicit ``values_by_period`` map so
6887
+ * compute never interpolates — every asserted month is stated. The
6888
+ * values are duplicated as authored facts in the scenario's lever
6889
+ * FactSet (rules for mechanics, **facts for values** — the facts are
6890
+ * what ``compute-forecast`` binds); this mechanics copy is the
6891
+ * operator-legible round-trip shape.
6892
+ */
6893
+ export type LeverAssertionLite = {
6894
+ /**
6895
+ * Qname
6896
+ *
6897
+ * rs-driver lever element qname.
6898
+ */
6899
+ qname: string;
6900
+ /**
6901
+ * Element Id
6902
+ *
6903
+ * Resolved tenant element id.
6904
+ */
6905
+ element_id: string;
6906
+ /**
6907
+ * Item Type
6908
+ *
6909
+ * Format family from the catalog (percent | days | ...).
6910
+ */
6911
+ item_type?: string | null;
6912
+ /**
6913
+ * Values By Period
6914
+ *
6915
+ * Expanded per-month assertions keyed by ``YYYY-MM``.
6916
+ */
6917
+ values_by_period: {
6918
+ [key: string]: number;
6919
+ };
6920
+ };
6921
+ /**
6922
+ * LeverAssertionRequest
6923
+ *
6924
+ * One lever's asserted values for the scenario.
6925
+ *
6926
+ * ``qname`` must resolve to an ``rs-driver:*`` catalog element (the
6927
+ * create handler rejects anything else). Value conventions follow the
6928
+ * catalog: percent levers are decimals per month (0.03 = 3%/month),
6929
+ * days levers are day counts.
6930
+ *
6931
+ * ``value`` is a uniform fill across the whole horizon;
6932
+ * ``values_by_period`` overrides individual months (``"YYYY-MM"``
6933
+ * keys). At least one of the two must be provided. Months covered by
6934
+ * neither carry no assertion — the lever's rule is inactive for that
6935
+ * month and its target falls to the engine's carry-forward default.
6936
+ */
6937
+ export type LeverAssertionRequest = {
6938
+ /**
6939
+ * Qname
6940
+ *
6941
+ * QName of the rs-driver lever element (e.g. ``rs-driver:RevenueGrowthRate``).
6942
+ */
6943
+ qname: string;
6944
+ /**
6945
+ * Value
6946
+ *
6947
+ * Uniform value asserted for every month of the horizon.
6948
+ */
6949
+ value?: number | null;
6950
+ /**
6951
+ * Values By Period
6952
+ *
6953
+ * Per-month overrides keyed by ``YYYY-MM``. Wins over ``value`` for the months it names.
6954
+ */
6955
+ values_by_period?: {
6956
+ [key: string]: number;
6957
+ } | null;
6958
+ };
6608
6959
  /**
6609
6960
  * LineItemMetadataPredicate
6610
6961
  *
@@ -7502,6 +7853,51 @@ export type OperationEnvelopeClosePeriodResponse = {
7502
7853
  */
7503
7854
  idempotentReplay?: boolean;
7504
7855
  };
7856
+ /**
7857
+ * OperationEnvelope[ComputeForecastResponse]
7858
+ */
7859
+ export type OperationEnvelopeComputeForecastResponse = {
7860
+ /**
7861
+ * Operation
7862
+ *
7863
+ * Kebab-case operation name
7864
+ */
7865
+ operation: string;
7866
+ /**
7867
+ * Operationid
7868
+ *
7869
+ * op_-prefixed ULID for audit and SSE correlation
7870
+ */
7871
+ operationId: string;
7872
+ /**
7873
+ * Status
7874
+ *
7875
+ * Operation lifecycle state
7876
+ */
7877
+ status: 'completed' | 'pending' | 'failed';
7878
+ /**
7879
+ * Command-specific result payload
7880
+ */
7881
+ result?: ComputeForecastResponse | null;
7882
+ /**
7883
+ * At
7884
+ *
7885
+ * ISO-8601 UTC timestamp
7886
+ */
7887
+ at: string;
7888
+ /**
7889
+ * Createdby
7890
+ *
7891
+ * User ID that initiated the operation (null for legacy callers)
7892
+ */
7893
+ createdBy?: string | null;
7894
+ /**
7895
+ * Idempotentreplay
7896
+ *
7897
+ * True when this envelope came from the idempotency cache — the underlying command did not execute again. False on fresh executions.
7898
+ */
7899
+ idempotentReplay?: boolean;
7900
+ };
7505
7901
  /**
7506
7902
  * OperationEnvelope[ComputeMetricsResponse]
7507
7903
  */
@@ -10382,6 +10778,12 @@ export type RenderingPeriodLite = {
10382
10778
  * Label
10383
10779
  */
10384
10780
  label?: string | null;
10781
+ /**
10782
+ * Forecast
10783
+ *
10784
+ * True when this column comes from a forecast scenario's FactSet — the machine-readable seam marker (labels also carry a '(forecast)' suffix, but consumers should key styling off this flag, not label parsing). None/absent = an actuals column.
10785
+ */
10786
+ forecast?: boolean | null;
10385
10787
  };
10386
10788
  /**
10387
10789
  * RenderingRowLite
@@ -11804,6 +12206,38 @@ export type ShareResultItem = {
11804
12206
  */
11805
12207
  fact_count?: number;
11806
12208
  };
12209
+ /**
12210
+ * SkippedForecastLite
12211
+ *
12212
+ * One rule/month soft-skip in a ``compute-forecast`` response.
12213
+ *
12214
+ * A skipped rule never aborts the walk — its target falls back to the
12215
+ * carry-forward value for that month (when a prior value exists).
12216
+ */
12217
+ export type SkippedForecastLite = {
12218
+ /**
12219
+ * Rule Id
12220
+ */
12221
+ rule_id?: string | null;
12222
+ /**
12223
+ * Element Qname
12224
+ */
12225
+ element_qname?: string | null;
12226
+ /**
12227
+ * Period
12228
+ *
12229
+ * Month key (``YYYY-MM``) of the skip.
12230
+ */
12231
+ period: string;
12232
+ /**
12233
+ * Reason
12234
+ */
12235
+ reason: string;
12236
+ /**
12237
+ * Missing
12238
+ */
12239
+ missing?: Array<string>;
12240
+ };
11807
12241
  /**
11808
12242
  * SkippedMetricLite
11809
12243
  *
@@ -13477,6 +13911,47 @@ export type UpdateEventHandlerRequest = {
13477
13911
  [key: string]: unknown;
13478
13912
  };
13479
13913
  };
13914
+ /**
13915
+ * UpdateForecastRequest
13916
+ *
13917
+ * Update a forecast block in place.
13918
+ *
13919
+ * Mutable: name, scenario_kind, horizon_months, base_period, levers.
13920
+ * ``levers`` is a **full replace** when provided (partial lever edits
13921
+ * would make the asserted set ambiguous). Updating does NOT recompute —
13922
+ * previously computed scenario months go stale until the next
13923
+ * ``compute-forecast`` run (the compute-metrics drift semantics).
13924
+ */
13925
+ export type UpdateForecastRequest = {
13926
+ /**
13927
+ * Structure Id
13928
+ *
13929
+ * Structure ID of the forecast block.
13930
+ */
13931
+ structure_id: string;
13932
+ /**
13933
+ * Name
13934
+ */
13935
+ name?: string | null;
13936
+ /**
13937
+ * Scenario Kind
13938
+ */
13939
+ scenario_kind?: 'budget' | 'forecast' | 'projection' | null;
13940
+ /**
13941
+ * Horizon Months
13942
+ */
13943
+ horizon_months?: number | null;
13944
+ /**
13945
+ * Base Period
13946
+ */
13947
+ base_period?: string | null;
13948
+ /**
13949
+ * Levers
13950
+ *
13951
+ * Full replacement of the lever set when provided.
13952
+ */
13953
+ levers?: Array<LeverAssertionRequest> | null;
13954
+ };
13480
13955
  /**
13481
13956
  * UpdateInformationBlockRequest
13482
13957
  *
@@ -13491,6 +13966,8 @@ export type UpdateInformationBlockRequest = ({
13491
13966
  } & UpdateScheduleArm) | ({
13492
13967
  block_type: 'rollforward';
13493
13968
  } & UpdateRollforwardArm) | ({
13969
+ block_type: 'forecast';
13970
+ } & UpdateForecastArm) | ({
13494
13971
  block_type: 'balance_sheet' | 'cash_flow_statement' | 'comprehensive_income' | 'equity_statement' | 'income_statement' | 'metric' | 'regulatory_disclosure';
13495
13972
  } & UpdateLegacyArm);
13496
13973
  /**
@@ -14279,6 +14756,28 @@ export type ViewProjections = {
14279
14756
  rendering?: RenderingLite | null;
14280
14757
  chart?: ChartLite | null;
14281
14758
  };
14759
+ /**
14760
+ * _CreateForecastArm
14761
+ *
14762
+ * Create-information-block body for ``block_type="forecast"``.
14763
+ *
14764
+ * Carries a typed forecast payload — the authored scenario container:
14765
+ * scenario identity, horizon, base period, lever assertions on
14766
+ * ``rs-driver:*`` catalog elements. Run ``compute-forecast`` after
14767
+ * creating to derive the forward months.
14768
+ */
14769
+ export type CreateForecastArm = {
14770
+ /**
14771
+ * Block Type
14772
+ *
14773
+ * Discriminator value selecting this arm.
14774
+ */
14775
+ block_type: 'forecast';
14776
+ /**
14777
+ * Forecast creation payload.
14778
+ */
14779
+ payload: CreateForecastRequest;
14780
+ };
14282
14781
  /**
14283
14782
  * _CreateLegacyArm
14284
14783
  *
@@ -14352,6 +14851,26 @@ export type CreateScheduleArm = {
14352
14851
  */
14353
14852
  payload: CreateScheduleRequest;
14354
14853
  };
14854
+ /**
14855
+ * _DeleteForecastArm
14856
+ *
14857
+ * Delete-information-block body for ``block_type="forecast"``.
14858
+ *
14859
+ * Removes the scenario's entire parallel universe — the lever FactSet
14860
+ * and every computed scenario FactSet. Actuals are never touched.
14861
+ */
14862
+ export type DeleteForecastArm = {
14863
+ /**
14864
+ * Block Type
14865
+ *
14866
+ * Discriminator value selecting this arm.
14867
+ */
14868
+ block_type: 'forecast';
14869
+ /**
14870
+ * Forecast delete payload.
14871
+ */
14872
+ payload: DeleteForecastRequest;
14873
+ };
14355
14874
  /**
14356
14875
  * _DeleteLegacyArm
14357
14876
  *
@@ -14417,6 +14936,27 @@ export type DeleteScheduleArm = {
14417
14936
  */
14418
14937
  payload: DeleteScheduleRequest;
14419
14938
  };
14939
+ /**
14940
+ * _UpdateForecastArm
14941
+ *
14942
+ * Update-information-block body for ``block_type="forecast"``.
14943
+ *
14944
+ * Mutable: name, scenario_kind, horizon_months, base_period, levers
14945
+ * (full replace). Updating does not recompute — run ``compute-forecast``
14946
+ * to refresh the scenario's derived months.
14947
+ */
14948
+ export type UpdateForecastArm = {
14949
+ /**
14950
+ * Block Type
14951
+ *
14952
+ * Discriminator value selecting this arm.
14953
+ */
14954
+ block_type: 'forecast';
14955
+ /**
14956
+ * Forecast update payload.
14957
+ */
14958
+ payload: UpdateForecastRequest;
14959
+ };
14420
14960
  /**
14421
14961
  * _UpdateLegacyArm
14422
14962
  *
@@ -21372,6 +21912,65 @@ export type ComputeMetricsResponses = {
21372
21912
  200: OperationEnvelopeComputeMetricsResponse;
21373
21913
  };
21374
21914
  export type ComputeMetricsResponse2 = ComputeMetricsResponses[keyof ComputeMetricsResponses];
21915
+ export type ComputeForecastData = {
21916
+ body: ComputeForecastRequest;
21917
+ headers?: {
21918
+ /**
21919
+ * Idempotency-Key
21920
+ */
21921
+ 'Idempotency-Key'?: string | null;
21922
+ };
21923
+ path: {
21924
+ /**
21925
+ * Graph Id
21926
+ */
21927
+ graph_id: string;
21928
+ };
21929
+ query?: never;
21930
+ url: '/extensions/roboledger/{graph_id}/operations/compute-forecast';
21931
+ };
21932
+ export type ComputeForecastErrors = {
21933
+ /**
21934
+ * Invalid request
21935
+ */
21936
+ 400: ErrorResponse;
21937
+ /**
21938
+ * Authentication required
21939
+ */
21940
+ 401: ErrorResponse;
21941
+ /**
21942
+ * Access denied
21943
+ */
21944
+ 403: ErrorResponse;
21945
+ /**
21946
+ * Resource not found
21947
+ */
21948
+ 404: ErrorResponse;
21949
+ /**
21950
+ * Idempotency-Key conflict — key reused with different body
21951
+ */
21952
+ 409: ErrorResponse;
21953
+ /**
21954
+ * Validation error
21955
+ */
21956
+ 422: ErrorResponse;
21957
+ /**
21958
+ * Rate limit exceeded
21959
+ */
21960
+ 429: ErrorResponse;
21961
+ /**
21962
+ * Internal server error
21963
+ */
21964
+ 500: ErrorResponse;
21965
+ };
21966
+ export type ComputeForecastError = ComputeForecastErrors[keyof ComputeForecastErrors];
21967
+ export type ComputeForecastResponses = {
21968
+ /**
21969
+ * Successful Response
21970
+ */
21971
+ 200: OperationEnvelopeComputeForecastResponse;
21972
+ };
21973
+ export type ComputeForecastResponse2 = ComputeForecastResponses[keyof ComputeForecastResponses];
21375
21974
  export type BindTextBlockData = {
21376
21975
  body: BindTextBlockRequest;
21377
21976
  headers?: {