@adcp/sdk 15.3.0 → 15.5.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.
- package/dist/lib/advanced.d.mts +2 -2
- package/dist/lib/advanced.d.ts +2 -2
- package/dist/lib/advanced.js +8 -2
- package/dist/lib/advanced.mjs +8 -2
- package/dist/lib/core/AgentClient.d.mts +4 -0
- package/dist/lib/core/AgentClient.d.ts +4 -0
- package/dist/lib/core/AgentClient.js +8 -0
- package/dist/lib/core/AgentClient.mjs +8 -0
- package/dist/lib/core/SingleAgentClient.d.mts +154 -0
- package/dist/lib/core/SingleAgentClient.d.ts +154 -0
- package/dist/lib/core/SingleAgentClient.js +661 -23
- package/dist/lib/core/SingleAgentClient.mjs +666 -23
- package/dist/lib/core/agent-discovery-cache.d.mts +103 -0
- package/dist/lib/core/agent-discovery-cache.d.ts +103 -0
- package/dist/lib/core/agent-discovery-cache.js +121 -0
- package/dist/lib/core/agent-discovery-cache.mjs +92 -0
- package/dist/lib/index.d.mts +5 -3
- package/dist/lib/index.d.ts +5 -3
- package/dist/lib/index.js +7 -0
- package/dist/lib/index.mjs +6 -0
- package/dist/lib/protocols/index.d.mts +2 -2
- package/dist/lib/protocols/index.d.ts +2 -2
- package/dist/lib/protocols/index.js +1 -1
- package/dist/lib/protocols/index.mjs +1 -1
- package/dist/lib/protocols/mcp-call-context.d.mts +109 -0
- package/dist/lib/protocols/mcp-call-context.d.ts +109 -0
- package/dist/lib/protocols/mcp-call-context.js +221 -0
- package/dist/lib/protocols/mcp-call-context.mjs +186 -0
- package/dist/lib/protocols/mcp-modern.d.mts +9 -1
- package/dist/lib/protocols/mcp-modern.d.ts +9 -1
- package/dist/lib/protocols/mcp-modern.js +180 -104
- package/dist/lib/protocols/mcp-modern.mjs +193 -104
- package/dist/lib/protocols/mcp-scope.d.mts +15 -0
- package/dist/lib/protocols/mcp-scope.d.ts +15 -0
- package/dist/lib/protocols/mcp.d.mts +4 -2
- package/dist/lib/protocols/mcp.d.ts +4 -2
- package/dist/lib/protocols/mcp.js +178 -154
- package/dist/lib/protocols/mcp.mjs +189 -153
- package/dist/lib/protocols/transportDiagnostics.d.mts +33 -1
- package/dist/lib/protocols/transportDiagnostics.d.ts +33 -1
- package/dist/lib/protocols/transportDiagnostics.js +128 -12
- package/dist/lib/protocols/transportDiagnostics.mjs +128 -12
- package/dist/lib/reporting/gcs/index.d.mts +2 -0
- package/dist/lib/reporting/gcs/index.d.ts +2 -0
- package/dist/lib/reporting/gcs/index.js +3 -0
- package/dist/lib/reporting/gcs/index.mjs +2 -0
- package/dist/lib/reporting/gcs/row-provider.d.mts +32 -0
- package/dist/lib/reporting/gcs/row-provider.d.ts +32 -0
- package/dist/lib/reporting/gcs/row-provider.js +205 -0
- package/dist/lib/reporting/gcs/row-provider.mjs +188 -0
- package/dist/lib/reporting/ledger/change-feed.d.mts +41 -0
- package/dist/lib/reporting/ledger/change-feed.d.ts +41 -0
- package/dist/lib/reporting/ledger/change-feed.js +101 -0
- package/dist/lib/reporting/ledger/change-feed.mjs +74 -0
- package/dist/lib/reporting/ledger/handler.d.mts +6 -0
- package/dist/lib/reporting/ledger/handler.d.ts +6 -0
- package/dist/lib/reporting/ledger/handler.js +51 -8
- package/dist/lib/reporting/ledger/handler.mjs +50 -8
- package/dist/lib/reporting/ledger/index.d.mts +5 -0
- package/dist/lib/reporting/ledger/index.d.ts +5 -0
- package/dist/lib/reporting/ledger/index.js +11 -1
- package/dist/lib/reporting/ledger/index.mjs +5 -0
- package/dist/lib/reporting/ledger/lifecycle.js +3 -2
- package/dist/lib/reporting/ledger/lifecycle.mjs +3 -2
- package/dist/lib/reporting/ledger/managed-postgres.d.mts +2 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.ts +2 -0
- package/dist/lib/reporting/ledger/managed-postgres.js +26 -6
- package/dist/lib/reporting/ledger/managed-postgres.mjs +26 -6
- package/dist/lib/reporting/ledger/managed.d.mts +9 -0
- package/dist/lib/reporting/ledger/managed.d.ts +9 -0
- package/dist/lib/reporting/ledger/managed.js +18 -0
- package/dist/lib/reporting/ledger/managed.mjs +18 -0
- package/dist/lib/reporting/ledger/postgres.d.mts +179 -1
- package/dist/lib/reporting/ledger/postgres.d.ts +179 -1
- package/dist/lib/reporting/ledger/postgres.js +882 -19
- package/dist/lib/reporting/ledger/postgres.mjs +890 -19
- package/dist/lib/reporting/ledger/producer.js +13 -3
- package/dist/lib/reporting/ledger/producer.mjs +13 -3
- package/dist/lib/reporting/ledger/revision-metadata.d.mts +17 -0
- package/dist/lib/reporting/ledger/revision-metadata.d.ts +17 -0
- package/dist/lib/reporting/ledger/revision-metadata.js +71 -0
- package/dist/lib/reporting/ledger/revision-metadata.mjs +44 -0
- package/dist/lib/reporting/ledger/row-encoding.d.mts +128 -0
- package/dist/lib/reporting/ledger/row-encoding.d.ts +128 -0
- package/dist/lib/reporting/ledger/row-encoding.js +355 -0
- package/dist/lib/reporting/ledger/row-encoding.mjs +315 -0
- package/dist/lib/reporting/ledger/row-storage-errors.d.mts +7 -0
- package/dist/lib/reporting/ledger/row-storage-errors.d.ts +7 -0
- package/dist/lib/reporting/ledger/row-storage-errors.js +41 -0
- package/dist/lib/reporting/ledger/row-storage-errors.mjs +16 -0
- package/dist/lib/reporting/ledger/row-storage-migration.d.mts +41 -0
- package/dist/lib/reporting/ledger/row-storage-migration.d.ts +41 -0
- package/dist/lib/reporting/ledger/row-storage-migration.js +234 -0
- package/dist/lib/reporting/ledger/row-storage-migration.mjs +208 -0
- package/dist/lib/reporting/ledger/row-storage-object.d.mts +112 -0
- package/dist/lib/reporting/ledger/row-storage-object.d.ts +112 -0
- package/dist/lib/reporting/ledger/row-storage-object.js +281 -0
- package/dist/lib/reporting/ledger/row-storage-object.mjs +239 -0
- package/dist/lib/reporting/ledger/row-storage-provider-io.d.mts +51 -0
- package/dist/lib/reporting/ledger/row-storage-provider-io.d.ts +51 -0
- package/dist/lib/reporting/ledger/row-storage-provider-io.js +152 -0
- package/dist/lib/reporting/ledger/row-storage-provider-io.mjs +119 -0
- package/dist/lib/reporting/ledger/row-storage.d.mts +224 -0
- package/dist/lib/reporting/ledger/row-storage.d.ts +224 -0
- package/dist/lib/reporting/ledger/row-storage.js +692 -0
- package/dist/lib/reporting/ledger/row-storage.mjs +680 -0
- package/dist/lib/reporting/ledger/types.d.mts +45 -0
- package/dist/lib/reporting/ledger/types.d.ts +45 -0
- package/dist/lib/reporting/service/index.d.mts +41 -1
- package/dist/lib/reporting/service/index.d.ts +41 -1
- package/dist/lib/reporting/service/index.js +68 -1
- package/dist/lib/reporting/service/index.mjs +70 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/signing/agent-resolver/fetch-helpers.js +1 -1
- package/dist/lib/signing/agent-resolver/fetch-helpers.mjs +1 -1
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/version.d.mts +3 -3
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/dist/lib/version.mjs +3 -3
- package/docs/README.md +1 -1
- package/docs/TYPE-SUMMARY.md +35 -2
- package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +142 -0
- package/docs/guides/EXISTING-PLATFORM.md +43 -12
- package/docs/guides/REPORTING-LEDGER.md +209 -0
- package/docs/llms.txt +4 -2
- package/docs/migration-14.x-rc-worksheet.md +4 -4
- package/docs/recipes/verifying-inbound-webhooks.md +8 -0
- package/package.json +1 -1
|
@@ -198,6 +198,21 @@ export interface ReportingLedgerAdjustmentV1 {
|
|
|
198
198
|
}
|
|
199
199
|
export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
200
200
|
export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
201
|
+
export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
|
+
export interface ReportingRevisionRowsReadV1 {
|
|
203
|
+
reporting_revision_id: string;
|
|
204
|
+
account_id: string;
|
|
205
|
+
/** Zero-based ordinal of the first row to return. */
|
|
206
|
+
offset: number;
|
|
207
|
+
/** Maximum rows to return; at least 1. */
|
|
208
|
+
limit: number;
|
|
209
|
+
signal?: AbortSignal;
|
|
210
|
+
}
|
|
211
|
+
export interface ReportingRevisionRowsPageV1 {
|
|
212
|
+
rows: Record<string, unknown>[];
|
|
213
|
+
/** Total rows in the revision. */
|
|
214
|
+
total: number;
|
|
215
|
+
}
|
|
201
216
|
export type ReportingLedgerAdjustmentSnapshotV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
217
|
export interface ReportingLedgerConsumerStatusV1 {
|
|
203
218
|
consumerStatusId: string;
|
|
@@ -741,6 +756,14 @@ export interface ReportingLedgerStore {
|
|
|
741
756
|
}>;
|
|
742
757
|
getObligation(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerObligationV1 | null>;
|
|
743
758
|
listObligations(account_id?: string): Promise<ReportingLedgerObligationV1[]>;
|
|
759
|
+
/**
|
|
760
|
+
* Optional: periods whose ledger records were retired by retention. The
|
|
761
|
+
* planner treats them as already covered so it never re-creates them.
|
|
762
|
+
*/
|
|
763
|
+
listRetiredObligationOrdinals?(account_id?: string): Promise<{
|
|
764
|
+
configurationId: string;
|
|
765
|
+
periodOrdinal: number;
|
|
766
|
+
}[]>;
|
|
744
767
|
listLifecycleDueObligations(input: {
|
|
745
768
|
ledgerAsOf: string;
|
|
746
769
|
account_id?: string;
|
|
@@ -761,12 +784,34 @@ export interface ReportingLedgerStore {
|
|
|
761
784
|
}>;
|
|
762
785
|
/** Returns an exact row-bearing revision only when it belongs to the resolved account. */
|
|
763
786
|
getRevision(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionV1 | null>;
|
|
787
|
+
/**
|
|
788
|
+
* Optional row-free counterpart of `getRevision`, scoped to the resolved
|
|
789
|
+
* account. Exact-read handlers prefer it so they never load every row to
|
|
790
|
+
* serve one page.
|
|
791
|
+
*/
|
|
792
|
+
getRevisionMetadata?(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionMetadataV1 | null>;
|
|
793
|
+
/**
|
|
794
|
+
* Optional: one page of a revision's rows in ordinal order, only when the
|
|
795
|
+
* revision belongs to the resolved account. `total` is the revision's row
|
|
796
|
+
* count. Stores that keep rows outside the revision document verify every
|
|
797
|
+
* row they return against the committed binding before returning it.
|
|
798
|
+
*/
|
|
799
|
+
readRevisionRows?(input: ReportingRevisionRowsReadV1): Promise<ReportingRevisionRowsPageV1 | null>;
|
|
764
800
|
listRevisions(reporting_obligation_id: string): Promise<ReportingLedgerRevisionV1[]>;
|
|
801
|
+
/**
|
|
802
|
+
* Optional: every retained revision for one obligation without
|
|
803
|
+
* materializing rows. The producer, lifecycle reconciler and status ingest
|
|
804
|
+
* prefer it and otherwise fall back to `listRevisions` with rows dropped.
|
|
805
|
+
* When `account_id` is supplied, only that account's revisions are returned.
|
|
806
|
+
*/
|
|
807
|
+
listRevisionMetadata?(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerRevisionMetadataV1[]>;
|
|
765
808
|
commitAdjustment(adjustment: ReportingLedgerAdjustmentV1, lease: ReportingLedgerLeaseV1): Promise<{
|
|
766
809
|
inserted: boolean;
|
|
767
810
|
value: ReportingLedgerAdjustmentV1;
|
|
768
811
|
}>;
|
|
769
812
|
listAdjustments(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentV1[]>;
|
|
813
|
+
/** Optional row-free counterpart of `listAdjustments`, preferred when present. */
|
|
814
|
+
listAdjustmentMetadata?(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentMetadataV1[]>;
|
|
770
815
|
putConsumerStatus(status: ReportingLedgerConsumerStatusV1): Promise<{
|
|
771
816
|
inserted: boolean;
|
|
772
817
|
value: ReportingLedgerConsumerStatusV1;
|
|
@@ -198,6 +198,21 @@ export interface ReportingLedgerAdjustmentV1 {
|
|
|
198
198
|
}
|
|
199
199
|
export type ReportingLedgerRevisionSnapshotV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
200
200
|
export type ReportingLedgerRevisionMetadataV1 = Omit<ReportingLedgerRevisionV1, 'rows'>;
|
|
201
|
+
export type ReportingLedgerAdjustmentMetadataV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
|
+
export interface ReportingRevisionRowsReadV1 {
|
|
203
|
+
reporting_revision_id: string;
|
|
204
|
+
account_id: string;
|
|
205
|
+
/** Zero-based ordinal of the first row to return. */
|
|
206
|
+
offset: number;
|
|
207
|
+
/** Maximum rows to return; at least 1. */
|
|
208
|
+
limit: number;
|
|
209
|
+
signal?: AbortSignal;
|
|
210
|
+
}
|
|
211
|
+
export interface ReportingRevisionRowsPageV1 {
|
|
212
|
+
rows: Record<string, unknown>[];
|
|
213
|
+
/** Total rows in the revision. */
|
|
214
|
+
total: number;
|
|
215
|
+
}
|
|
201
216
|
export type ReportingLedgerAdjustmentSnapshotV1 = Omit<ReportingLedgerAdjustmentV1, 'rows'>;
|
|
202
217
|
export interface ReportingLedgerConsumerStatusV1 {
|
|
203
218
|
consumerStatusId: string;
|
|
@@ -741,6 +756,14 @@ export interface ReportingLedgerStore {
|
|
|
741
756
|
}>;
|
|
742
757
|
getObligation(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerObligationV1 | null>;
|
|
743
758
|
listObligations(account_id?: string): Promise<ReportingLedgerObligationV1[]>;
|
|
759
|
+
/**
|
|
760
|
+
* Optional: periods whose ledger records were retired by retention. The
|
|
761
|
+
* planner treats them as already covered so it never re-creates them.
|
|
762
|
+
*/
|
|
763
|
+
listRetiredObligationOrdinals?(account_id?: string): Promise<{
|
|
764
|
+
configurationId: string;
|
|
765
|
+
periodOrdinal: number;
|
|
766
|
+
}[]>;
|
|
744
767
|
listLifecycleDueObligations(input: {
|
|
745
768
|
ledgerAsOf: string;
|
|
746
769
|
account_id?: string;
|
|
@@ -761,12 +784,34 @@ export interface ReportingLedgerStore {
|
|
|
761
784
|
}>;
|
|
762
785
|
/** Returns an exact row-bearing revision only when it belongs to the resolved account. */
|
|
763
786
|
getRevision(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionV1 | null>;
|
|
787
|
+
/**
|
|
788
|
+
* Optional row-free counterpart of `getRevision`, scoped to the resolved
|
|
789
|
+
* account. Exact-read handlers prefer it so they never load every row to
|
|
790
|
+
* serve one page.
|
|
791
|
+
*/
|
|
792
|
+
getRevisionMetadata?(reporting_revision_id: string, account_id: string): Promise<ReportingLedgerRevisionMetadataV1 | null>;
|
|
793
|
+
/**
|
|
794
|
+
* Optional: one page of a revision's rows in ordinal order, only when the
|
|
795
|
+
* revision belongs to the resolved account. `total` is the revision's row
|
|
796
|
+
* count. Stores that keep rows outside the revision document verify every
|
|
797
|
+
* row they return against the committed binding before returning it.
|
|
798
|
+
*/
|
|
799
|
+
readRevisionRows?(input: ReportingRevisionRowsReadV1): Promise<ReportingRevisionRowsPageV1 | null>;
|
|
764
800
|
listRevisions(reporting_obligation_id: string): Promise<ReportingLedgerRevisionV1[]>;
|
|
801
|
+
/**
|
|
802
|
+
* Optional: every retained revision for one obligation without
|
|
803
|
+
* materializing rows. The producer, lifecycle reconciler and status ingest
|
|
804
|
+
* prefer it and otherwise fall back to `listRevisions` with rows dropped.
|
|
805
|
+
* When `account_id` is supplied, only that account's revisions are returned.
|
|
806
|
+
*/
|
|
807
|
+
listRevisionMetadata?(reporting_obligation_id: string, account_id?: string): Promise<ReportingLedgerRevisionMetadataV1[]>;
|
|
765
808
|
commitAdjustment(adjustment: ReportingLedgerAdjustmentV1, lease: ReportingLedgerLeaseV1): Promise<{
|
|
766
809
|
inserted: boolean;
|
|
767
810
|
value: ReportingLedgerAdjustmentV1;
|
|
768
811
|
}>;
|
|
769
812
|
listAdjustments(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentV1[]>;
|
|
813
|
+
/** Optional row-free counterpart of `listAdjustments`, preferred when present. */
|
|
814
|
+
listAdjustmentMetadata?(reporting_obligation_id: string): Promise<ReportingLedgerAdjustmentMetadataV1[]>;
|
|
770
815
|
putConsumerStatus(status: ReportingLedgerConsumerStatusV1): Promise<{
|
|
771
816
|
inserted: boolean;
|
|
772
817
|
value: ReportingLedgerConsumerStatusV1;
|
|
@@ -4,7 +4,7 @@ import type { DecisioningPlatform } from '../../server/decisioning/platform.mjs'
|
|
|
4
4
|
import type { ReliableReportingPlatform } from '../../server/decisioning/specialisms/reporting.mjs';
|
|
5
5
|
import type { ReportingDeliveryCapabilities, ReportingDeliveryOffering } from '../../types/tools.generated.mjs';
|
|
6
6
|
import { type CreatePostgresPersistentNotificationRuntimeOptions, type PostgresPersistentNotificationRuntime } from '../../server/notification-subscriptions/index.mjs';
|
|
7
|
-
import { REPORTING_LEDGER_MIGRATION, PostgresReportingLedgerStore, PostgresReportingManagedDeliveryStore, type CreateReportingProducerOptionsV1, type ReportingConsumerMismatchEscalationV1, type ReportingLedgerConfigurationV1, type ReportingLedgerStore, type ReportingProducerContactV1, type ReportingProducerV1, type ReportingManagedDeliveryAdapterV1, type ReportingManagedDeliveryRuntimeV1, type PostgresReportingManagedDeliveryStoreOptions, type PostgresReportingNotificationActivityOptions, type PostgresReportingNotificationActivityRuntime, type ReportingPgPool, type ReportingSourceWithReaderV1 } from '../ledger/index.mjs';
|
|
7
|
+
import { REPORTING_LEDGER_MIGRATION, PostgresReportingLedgerStore, PostgresReportingManagedDeliveryStore, type CreateReportingProducerOptionsV1, type ReportingConsumerMismatchEscalationV1, type ReportingLedgerConfigurationV1, type ReportingLedgerStore, type ReportingProducerContactV1, type ReportingProducerV1, type ReportingManagedDeliveryAdapterV1, type ReportingManagedDeliveryRuntimeV1, type PostgresReportingManagedDeliveryStoreOptions, type PostgresReportingNotificationActivityOptions, type PostgresReportingNotificationActivityRuntime, type ReportingPgPool, type ReportingRowStorageOptionsV1, type ReportingSourceWithReaderV1 } from '../ledger/index.mjs';
|
|
8
8
|
import { type PostgresReportingWebhookActivityV1 } from '../webhook-activity.mjs';
|
|
9
9
|
import type { InlineReportingReplayRetentionV1 } from '../source/index.mjs';
|
|
10
10
|
import { type InlineReportingDeliveryFetchV1, type ReportingSourceOfferingV1 } from '../source/index.mjs';
|
|
@@ -196,6 +196,35 @@ export type CreatePostgresReliableReportingProductionServiceOptionsV1<TCtxMeta =
|
|
|
196
196
|
publisherScope: string;
|
|
197
197
|
/** Explicit acknowledgement required by the authoritative Core store. */
|
|
198
198
|
acknowledgeIsolatedDatabase: true;
|
|
199
|
+
/**
|
|
200
|
+
* Store new revision rows as verified canonical JSONL chunks. Adds
|
|
201
|
+
* `REPORTING_ROW_STORAGE_MIGRATION` (PostgreSQL 13+) to `setup.migrations`
|
|
202
|
+
* and probes it before publishing capabilities.
|
|
203
|
+
*/
|
|
204
|
+
rowStorage?: boolean | ReportingRowStorageOptionsV1;
|
|
205
|
+
/**
|
|
206
|
+
* Opt in to period-aligned retention. Each scheduler pass retires whole
|
|
207
|
+
* periods once `max(statusRetentionDays, recordRetentionDays)` has elapsed
|
|
208
|
+
* since both the period end and its latest publication, deleting their
|
|
209
|
+
* rows and ledger records and leaving a tombstone. Abandoned row uploads
|
|
210
|
+
* and expired cursor snapshots are always swept.
|
|
211
|
+
*/
|
|
212
|
+
retention?: {
|
|
213
|
+
enabled: true;
|
|
214
|
+
recordRetentionDays?: number;
|
|
215
|
+
limit?: number;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Maintain the host change feed (`changesAfter`, `getCurrentRevision`,
|
|
219
|
+
* `listCurrentRevisions` on `stores.core`). Adds
|
|
220
|
+
* `REPORTING_LEDGER_CHANGES_MIGRATION` (PostgreSQL 13+); the scheduler prunes
|
|
221
|
+
* changes older than `changeRetentionDays` (default 30) unless a registered
|
|
222
|
+
* consumer updated within `maxFeedHoldDays` (default 7) still needs them.
|
|
223
|
+
*/
|
|
224
|
+
changeFeed?: boolean | {
|
|
225
|
+
changeRetentionDays?: number;
|
|
226
|
+
maxFeedHoldDays?: number;
|
|
227
|
+
};
|
|
199
228
|
notifications: ProductionNotificationOptions;
|
|
200
229
|
managedDelivery: {
|
|
201
230
|
adapter: ReportingManagedDeliveryAdapterV1;
|
|
@@ -273,3 +302,14 @@ export interface PostgresReliableReportingProductionServiceV1<TCtxMeta = Record<
|
|
|
273
302
|
*/
|
|
274
303
|
export declare function createPostgresReliableReportingProductionService<TCtxMeta = Record<string, unknown>>(options: CreatePostgresReliableReportingProductionServiceOptionsV1<TCtxMeta>): Promise<PostgresReliableReportingProductionServiceV1<TCtxMeta>>;
|
|
275
304
|
export * from './conformance.mjs';
|
|
305
|
+
/**
|
|
306
|
+
* A scheduled maintenance pass completed but could not process some items
|
|
307
|
+
* (for example, a retention period whose objects could not be deleted). The
|
|
308
|
+
* pass resumes them next time; repeated reports need operator attention.
|
|
309
|
+
*/
|
|
310
|
+
export declare class ReportingMaintenancePartialFailureError extends Error {
|
|
311
|
+
readonly task: string;
|
|
312
|
+
readonly failedCount: number;
|
|
313
|
+
readonly failedIds: readonly string[];
|
|
314
|
+
constructor(task: string, failedCount: number, failedIds: readonly string[]);
|
|
315
|
+
}
|
|
@@ -4,7 +4,7 @@ import type { DecisioningPlatform } from '../../server/decisioning/platform';
|
|
|
4
4
|
import type { ReliableReportingPlatform } from '../../server/decisioning/specialisms/reporting';
|
|
5
5
|
import type { ReportingDeliveryCapabilities, ReportingDeliveryOffering } from '../../types/tools.generated';
|
|
6
6
|
import { type CreatePostgresPersistentNotificationRuntimeOptions, type PostgresPersistentNotificationRuntime } from '../../server/notification-subscriptions';
|
|
7
|
-
import { REPORTING_LEDGER_MIGRATION, PostgresReportingLedgerStore, PostgresReportingManagedDeliveryStore, type CreateReportingProducerOptionsV1, type ReportingConsumerMismatchEscalationV1, type ReportingLedgerConfigurationV1, type ReportingLedgerStore, type ReportingProducerContactV1, type ReportingProducerV1, type ReportingManagedDeliveryAdapterV1, type ReportingManagedDeliveryRuntimeV1, type PostgresReportingManagedDeliveryStoreOptions, type PostgresReportingNotificationActivityOptions, type PostgresReportingNotificationActivityRuntime, type ReportingPgPool, type ReportingSourceWithReaderV1 } from '../ledger';
|
|
7
|
+
import { REPORTING_LEDGER_MIGRATION, PostgresReportingLedgerStore, PostgresReportingManagedDeliveryStore, type CreateReportingProducerOptionsV1, type ReportingConsumerMismatchEscalationV1, type ReportingLedgerConfigurationV1, type ReportingLedgerStore, type ReportingProducerContactV1, type ReportingProducerV1, type ReportingManagedDeliveryAdapterV1, type ReportingManagedDeliveryRuntimeV1, type PostgresReportingManagedDeliveryStoreOptions, type PostgresReportingNotificationActivityOptions, type PostgresReportingNotificationActivityRuntime, type ReportingPgPool, type ReportingRowStorageOptionsV1, type ReportingSourceWithReaderV1 } from '../ledger';
|
|
8
8
|
import { type PostgresReportingWebhookActivityV1 } from '../webhook-activity';
|
|
9
9
|
import type { InlineReportingReplayRetentionV1 } from '../source';
|
|
10
10
|
import { type InlineReportingDeliveryFetchV1, type ReportingSourceOfferingV1 } from '../source';
|
|
@@ -196,6 +196,35 @@ export type CreatePostgresReliableReportingProductionServiceOptionsV1<TCtxMeta =
|
|
|
196
196
|
publisherScope: string;
|
|
197
197
|
/** Explicit acknowledgement required by the authoritative Core store. */
|
|
198
198
|
acknowledgeIsolatedDatabase: true;
|
|
199
|
+
/**
|
|
200
|
+
* Store new revision rows as verified canonical JSONL chunks. Adds
|
|
201
|
+
* `REPORTING_ROW_STORAGE_MIGRATION` (PostgreSQL 13+) to `setup.migrations`
|
|
202
|
+
* and probes it before publishing capabilities.
|
|
203
|
+
*/
|
|
204
|
+
rowStorage?: boolean | ReportingRowStorageOptionsV1;
|
|
205
|
+
/**
|
|
206
|
+
* Opt in to period-aligned retention. Each scheduler pass retires whole
|
|
207
|
+
* periods once `max(statusRetentionDays, recordRetentionDays)` has elapsed
|
|
208
|
+
* since both the period end and its latest publication, deleting their
|
|
209
|
+
* rows and ledger records and leaving a tombstone. Abandoned row uploads
|
|
210
|
+
* and expired cursor snapshots are always swept.
|
|
211
|
+
*/
|
|
212
|
+
retention?: {
|
|
213
|
+
enabled: true;
|
|
214
|
+
recordRetentionDays?: number;
|
|
215
|
+
limit?: number;
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Maintain the host change feed (`changesAfter`, `getCurrentRevision`,
|
|
219
|
+
* `listCurrentRevisions` on `stores.core`). Adds
|
|
220
|
+
* `REPORTING_LEDGER_CHANGES_MIGRATION` (PostgreSQL 13+); the scheduler prunes
|
|
221
|
+
* changes older than `changeRetentionDays` (default 30) unless a registered
|
|
222
|
+
* consumer updated within `maxFeedHoldDays` (default 7) still needs them.
|
|
223
|
+
*/
|
|
224
|
+
changeFeed?: boolean | {
|
|
225
|
+
changeRetentionDays?: number;
|
|
226
|
+
maxFeedHoldDays?: number;
|
|
227
|
+
};
|
|
199
228
|
notifications: ProductionNotificationOptions;
|
|
200
229
|
managedDelivery: {
|
|
201
230
|
adapter: ReportingManagedDeliveryAdapterV1;
|
|
@@ -273,3 +302,14 @@ export interface PostgresReliableReportingProductionServiceV1<TCtxMeta = Record<
|
|
|
273
302
|
*/
|
|
274
303
|
export declare function createPostgresReliableReportingProductionService<TCtxMeta = Record<string, unknown>>(options: CreatePostgresReliableReportingProductionServiceOptionsV1<TCtxMeta>): Promise<PostgresReliableReportingProductionServiceV1<TCtxMeta>>;
|
|
275
304
|
export * from './conformance';
|
|
305
|
+
/**
|
|
306
|
+
* A scheduled maintenance pass completed but could not process some items
|
|
307
|
+
* (for example, a retention period whose objects could not be deleted). The
|
|
308
|
+
* pass resumes them next time; repeated reports need operator attention.
|
|
309
|
+
*/
|
|
310
|
+
export declare class ReportingMaintenancePartialFailureError extends Error {
|
|
311
|
+
readonly task: string;
|
|
312
|
+
readonly failedCount: number;
|
|
313
|
+
readonly failedIds: readonly string[];
|
|
314
|
+
constructor(task: string, failedCount: number, failedIds: readonly string[]);
|
|
315
|
+
}
|
|
@@ -19,6 +19,7 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
19
19
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
20
|
var service_exports = {};
|
|
21
21
|
__export(service_exports, {
|
|
22
|
+
ReportingMaintenancePartialFailureError: () => ReportingMaintenancePartialFailureError,
|
|
22
23
|
createPostgresReliableReportingProductionService: () => createPostgresReliableReportingProductionService,
|
|
23
24
|
createReliableReportingService: () => createReliableReportingService
|
|
24
25
|
});
|
|
@@ -369,7 +370,9 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
369
370
|
managedDelivery: true,
|
|
370
371
|
...options.obligatedConsumers ? { obligatedConsumers: options.obligatedConsumers } : {},
|
|
371
372
|
...options.consumerMismatchEscalation ? { consumerMismatchEscalation: options.consumerMismatchEscalation } : {},
|
|
372
|
-
notificationActivityPort: notificationActivity.port
|
|
373
|
+
notificationActivityPort: notificationActivity.port,
|
|
374
|
+
...options.rowStorage ? { rowStorage: options.rowStorage } : {},
|
|
375
|
+
...options.changeFeed ? { changeFeed: true } : {}
|
|
373
376
|
});
|
|
374
377
|
const managedStore = new import_ledger.PostgresReportingManagedDeliveryStore(options.db, {
|
|
375
378
|
...options.managedDelivery.store,
|
|
@@ -385,12 +388,15 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
385
388
|
const core = createReliableReportingService(coreOptions);
|
|
386
389
|
const migrations = Object.freeze([
|
|
387
390
|
import_ledger.REPORTING_LEDGER_MIGRATION,
|
|
391
|
+
...options.rowStorage ? [import_ledger.REPORTING_ROW_STORAGE_MIGRATION] : [],
|
|
392
|
+
...options.changeFeed ? [import_ledger.REPORTING_LEDGER_CHANGES_MIGRATION] : [],
|
|
388
393
|
import_ledger.REPORTING_MANAGED_DELIVERY_MIGRATION,
|
|
389
394
|
...notifications.migrations.all,
|
|
390
395
|
...notificationActivity.migrations.all,
|
|
391
396
|
...webhookActivity.migrations.all
|
|
392
397
|
]);
|
|
393
398
|
await options.applyMigrations?.(migrations);
|
|
399
|
+
await coreStore.readyRowStorage();
|
|
394
400
|
await notifications.probe();
|
|
395
401
|
await notificationActivity.probe();
|
|
396
402
|
await webhookActivity.probe();
|
|
@@ -500,6 +506,52 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
500
506
|
for (const result of pruneResults) {
|
|
501
507
|
if (result.status === "rejected" && !signal.aborted) await reportAuxiliaryError(scheduler, result.reason);
|
|
502
508
|
}
|
|
509
|
+
const ledgerMaintenance = [
|
|
510
|
+
["snapshot sweep", (0, import_ledger.sweepExpiredReportingLedgerState)(options.db, 1e3)],
|
|
511
|
+
["row upload sweep", coreStore.sweepRowWriteIntents({ limit: 100, signal })],
|
|
512
|
+
...options.changeFeed ? [
|
|
513
|
+
[
|
|
514
|
+
"change-feed pruning",
|
|
515
|
+
coreStore.pruneChanges(
|
|
516
|
+
typeof options.changeFeed === "object" ? {
|
|
517
|
+
...options.changeFeed.changeRetentionDays !== void 0 ? { changeRetentionDays: options.changeFeed.changeRetentionDays } : {},
|
|
518
|
+
...options.changeFeed.maxFeedHoldDays !== void 0 ? { maxFeedHoldDays: options.changeFeed.maxFeedHoldDays } : {}
|
|
519
|
+
} : {}
|
|
520
|
+
)
|
|
521
|
+
]
|
|
522
|
+
] : [],
|
|
523
|
+
...options.retention?.enabled ? [
|
|
524
|
+
[
|
|
525
|
+
"retention",
|
|
526
|
+
coreStore.retireExpiredPeriods({
|
|
527
|
+
statusRetentionDays: options.statusRetentionDays,
|
|
528
|
+
...options.retention.recordRetentionDays !== void 0 ? { recordRetentionDays: options.retention.recordRetentionDays } : {},
|
|
529
|
+
limit: options.retention.limit ?? 100,
|
|
530
|
+
signal
|
|
531
|
+
})
|
|
532
|
+
]
|
|
533
|
+
] : []
|
|
534
|
+
];
|
|
535
|
+
const maintenanceResults = await Promise.allSettled(ledgerMaintenance.map(([, task]) => task));
|
|
536
|
+
for (const [index, result] of maintenanceResults.entries()) {
|
|
537
|
+
const name = ledgerMaintenance[index][0];
|
|
538
|
+
if (result.status === "rejected") {
|
|
539
|
+
if (!signal.aborted) await reportAuxiliaryError(scheduler, result.reason);
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
const value = result.value;
|
|
543
|
+
const failed = Array.isArray(value?.failed) ? value.failed.length : typeof value?.failed === "number" ? value.failed : 0;
|
|
544
|
+
if (failed > 0 && !signal.aborted) {
|
|
545
|
+
await reportAuxiliaryError(
|
|
546
|
+
scheduler,
|
|
547
|
+
new ReportingMaintenancePartialFailureError(
|
|
548
|
+
name,
|
|
549
|
+
failed,
|
|
550
|
+
value?.failures?.length ? value.failures.map((entry) => `${entry.reporting_obligation_id} (${entry.cause})`) : Array.isArray(value?.failed) ? value.failed : []
|
|
551
|
+
)
|
|
552
|
+
);
|
|
553
|
+
}
|
|
554
|
+
}
|
|
503
555
|
const accountIds = rotate(await deploymentWideAccountIds(coreStore), auxiliaryRotation);
|
|
504
556
|
auxiliaryRotation += 1;
|
|
505
557
|
for (const accountId of accountIds) {
|
|
@@ -1147,8 +1199,23 @@ function deepFreeze(value) {
|
|
|
1147
1199
|
}
|
|
1148
1200
|
return value;
|
|
1149
1201
|
}
|
|
1202
|
+
class ReportingMaintenancePartialFailureError extends Error {
|
|
1203
|
+
constructor(task, failedCount, failedIds) {
|
|
1204
|
+
super(
|
|
1205
|
+
`Reporting ${task} could not process ${failedCount} item(s)${failedIds.length ? `: ${failedIds.slice(0, 20).join(", ")}` : ""}`
|
|
1206
|
+
);
|
|
1207
|
+
this.task = task;
|
|
1208
|
+
this.failedCount = failedCount;
|
|
1209
|
+
this.failedIds = failedIds;
|
|
1210
|
+
this.name = "ReportingMaintenancePartialFailureError";
|
|
1211
|
+
}
|
|
1212
|
+
task;
|
|
1213
|
+
failedCount;
|
|
1214
|
+
failedIds;
|
|
1215
|
+
}
|
|
1150
1216
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1151
1217
|
0 && (module.exports = {
|
|
1218
|
+
ReportingMaintenancePartialFailureError,
|
|
1152
1219
|
createPostgresReliableReportingProductionService,
|
|
1153
1220
|
createReliableReportingService,
|
|
1154
1221
|
...require('./conformance.js')
|
|
@@ -8,7 +8,10 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
REPORTING_LEDGER_MIGRATION,
|
|
10
10
|
REPORTING_MANAGED_DELIVERY_MIGRATION,
|
|
11
|
+
REPORTING_ROW_STORAGE_MIGRATION,
|
|
12
|
+
REPORTING_LEDGER_CHANGES_MIGRATION,
|
|
11
13
|
PostgresReportingLedgerStore,
|
|
14
|
+
sweepExpiredReportingLedgerState,
|
|
12
15
|
PostgresReportingManagedDeliveryStore,
|
|
13
16
|
createPostgresReportingNotificationActivityRuntime,
|
|
14
17
|
createPostgresReportingNotificationAttemptCheckpoint,
|
|
@@ -376,7 +379,9 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
376
379
|
managedDelivery: true,
|
|
377
380
|
...options.obligatedConsumers ? { obligatedConsumers: options.obligatedConsumers } : {},
|
|
378
381
|
...options.consumerMismatchEscalation ? { consumerMismatchEscalation: options.consumerMismatchEscalation } : {},
|
|
379
|
-
notificationActivityPort: notificationActivity.port
|
|
382
|
+
notificationActivityPort: notificationActivity.port,
|
|
383
|
+
...options.rowStorage ? { rowStorage: options.rowStorage } : {},
|
|
384
|
+
...options.changeFeed ? { changeFeed: true } : {}
|
|
380
385
|
});
|
|
381
386
|
const managedStore = new PostgresReportingManagedDeliveryStore(options.db, {
|
|
382
387
|
...options.managedDelivery.store,
|
|
@@ -392,12 +397,15 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
392
397
|
const core = createReliableReportingService(coreOptions);
|
|
393
398
|
const migrations = Object.freeze([
|
|
394
399
|
REPORTING_LEDGER_MIGRATION,
|
|
400
|
+
...options.rowStorage ? [REPORTING_ROW_STORAGE_MIGRATION] : [],
|
|
401
|
+
...options.changeFeed ? [REPORTING_LEDGER_CHANGES_MIGRATION] : [],
|
|
395
402
|
REPORTING_MANAGED_DELIVERY_MIGRATION,
|
|
396
403
|
...notifications.migrations.all,
|
|
397
404
|
...notificationActivity.migrations.all,
|
|
398
405
|
...webhookActivity.migrations.all
|
|
399
406
|
]);
|
|
400
407
|
await options.applyMigrations?.(migrations);
|
|
408
|
+
await coreStore.readyRowStorage();
|
|
401
409
|
await notifications.probe();
|
|
402
410
|
await notificationActivity.probe();
|
|
403
411
|
await webhookActivity.probe();
|
|
@@ -507,6 +515,52 @@ async function createPostgresReliableReportingProductionService(options) {
|
|
|
507
515
|
for (const result of pruneResults) {
|
|
508
516
|
if (result.status === "rejected" && !signal.aborted) await reportAuxiliaryError(scheduler, result.reason);
|
|
509
517
|
}
|
|
518
|
+
const ledgerMaintenance = [
|
|
519
|
+
["snapshot sweep", sweepExpiredReportingLedgerState(options.db, 1e3)],
|
|
520
|
+
["row upload sweep", coreStore.sweepRowWriteIntents({ limit: 100, signal })],
|
|
521
|
+
...options.changeFeed ? [
|
|
522
|
+
[
|
|
523
|
+
"change-feed pruning",
|
|
524
|
+
coreStore.pruneChanges(
|
|
525
|
+
typeof options.changeFeed === "object" ? {
|
|
526
|
+
...options.changeFeed.changeRetentionDays !== void 0 ? { changeRetentionDays: options.changeFeed.changeRetentionDays } : {},
|
|
527
|
+
...options.changeFeed.maxFeedHoldDays !== void 0 ? { maxFeedHoldDays: options.changeFeed.maxFeedHoldDays } : {}
|
|
528
|
+
} : {}
|
|
529
|
+
)
|
|
530
|
+
]
|
|
531
|
+
] : [],
|
|
532
|
+
...options.retention?.enabled ? [
|
|
533
|
+
[
|
|
534
|
+
"retention",
|
|
535
|
+
coreStore.retireExpiredPeriods({
|
|
536
|
+
statusRetentionDays: options.statusRetentionDays,
|
|
537
|
+
...options.retention.recordRetentionDays !== void 0 ? { recordRetentionDays: options.retention.recordRetentionDays } : {},
|
|
538
|
+
limit: options.retention.limit ?? 100,
|
|
539
|
+
signal
|
|
540
|
+
})
|
|
541
|
+
]
|
|
542
|
+
] : []
|
|
543
|
+
];
|
|
544
|
+
const maintenanceResults = await Promise.allSettled(ledgerMaintenance.map(([, task]) => task));
|
|
545
|
+
for (const [index, result] of maintenanceResults.entries()) {
|
|
546
|
+
const name = ledgerMaintenance[index][0];
|
|
547
|
+
if (result.status === "rejected") {
|
|
548
|
+
if (!signal.aborted) await reportAuxiliaryError(scheduler, result.reason);
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
551
|
+
const value = result.value;
|
|
552
|
+
const failed = Array.isArray(value?.failed) ? value.failed.length : typeof value?.failed === "number" ? value.failed : 0;
|
|
553
|
+
if (failed > 0 && !signal.aborted) {
|
|
554
|
+
await reportAuxiliaryError(
|
|
555
|
+
scheduler,
|
|
556
|
+
new ReportingMaintenancePartialFailureError(
|
|
557
|
+
name,
|
|
558
|
+
failed,
|
|
559
|
+
value?.failures?.length ? value.failures.map((entry) => `${entry.reporting_obligation_id} (${entry.cause})`) : Array.isArray(value?.failed) ? value.failed : []
|
|
560
|
+
)
|
|
561
|
+
);
|
|
562
|
+
}
|
|
563
|
+
}
|
|
510
564
|
const accountIds = rotate(await deploymentWideAccountIds(coreStore), auxiliaryRotation);
|
|
511
565
|
auxiliaryRotation += 1;
|
|
512
566
|
for (const accountId of accountIds) {
|
|
@@ -1155,7 +1209,22 @@ function deepFreeze(value) {
|
|
|
1155
1209
|
return value;
|
|
1156
1210
|
}
|
|
1157
1211
|
export * from "./conformance.mjs";
|
|
1212
|
+
class ReportingMaintenancePartialFailureError extends Error {
|
|
1213
|
+
constructor(task, failedCount, failedIds) {
|
|
1214
|
+
super(
|
|
1215
|
+
`Reporting ${task} could not process ${failedCount} item(s)${failedIds.length ? `: ${failedIds.slice(0, 20).join(", ")}` : ""}`
|
|
1216
|
+
);
|
|
1217
|
+
this.task = task;
|
|
1218
|
+
this.failedCount = failedCount;
|
|
1219
|
+
this.failedIds = failedIds;
|
|
1220
|
+
this.name = "ReportingMaintenancePartialFailureError";
|
|
1221
|
+
}
|
|
1222
|
+
task;
|
|
1223
|
+
failedCount;
|
|
1224
|
+
failedIds;
|
|
1225
|
+
}
|
|
1158
1226
|
export {
|
|
1227
|
+
ReportingMaintenancePartialFailureError,
|
|
1159
1228
|
createPostgresReliableReportingProductionService,
|
|
1160
1229
|
createReliableReportingService
|
|
1161
1230
|
};
|
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
"source_sha": "4e553ad955f83b49c7d221ab5c3ff78237ad02e3",
|
|
5
5
|
"source_tarball_sha256": "580656d6466ef9f0d1119985e6726c2efea718dc671e2ad30957fcb2fd54af0f",
|
|
6
6
|
"upstream_adcp_version": "2.5.3",
|
|
7
|
-
"synced_at": "2026-10-
|
|
7
|
+
"synced_at": "2026-10-09T05:22:53.040Z"
|
|
8
8
|
}
|
|
@@ -118,7 +118,7 @@ function classifyDiscoveryFailure(error) {
|
|
|
118
118
|
return { dns_error: "fetch_failed" };
|
|
119
119
|
}
|
|
120
120
|
function isPermanentDiscoveryFailure(detail) {
|
|
121
|
-
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500;
|
|
121
|
+
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500 && detail.http_status !== 408 && detail.http_status !== 429;
|
|
122
122
|
}
|
|
123
123
|
// Annotate the CommonJS export names for ESM import in node:
|
|
124
124
|
0 && (module.exports = {
|
|
@@ -91,7 +91,7 @@ function classifyDiscoveryFailure(error) {
|
|
|
91
91
|
return { dns_error: "fetch_failed" };
|
|
92
92
|
}
|
|
93
93
|
function isPermanentDiscoveryFailure(detail) {
|
|
94
|
-
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500;
|
|
94
|
+
return detail.dns_error === "ssrf_refused" || detail.http_status !== void 0 && detail.http_status >= 400 && detail.http_status < 500 && detail.http_status !== 408 && detail.http_status !== 429;
|
|
95
95
|
}
|
|
96
96
|
export {
|
|
97
97
|
DEFAULT_CONNECT_TIMEOUT_MS,
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "15.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "15.5.0";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "15.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "15.5.0";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
package/dist/lib/version.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "15.
|
|
4
|
+
export declare const LIBRARY_VERSION = "15.5.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "15.
|
|
36
|
+
readonly library: "15.5.0";
|
|
37
37
|
readonly adcp: "3.2.3";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-09T04:52:03.760Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* AdCP SDK library version
|
|
3
3
|
*/
|
|
4
|
-
export declare const LIBRARY_VERSION = "15.
|
|
4
|
+
export declare const LIBRARY_VERSION = "15.5.0";
|
|
5
5
|
/**
|
|
6
6
|
* AdCP specification version this library is built for
|
|
7
7
|
*/
|
|
@@ -33,10 +33,10 @@ export type AdcpVersion = (typeof COMPATIBLE_ADCP_VERSIONS)[number];
|
|
|
33
33
|
* Full version information
|
|
34
34
|
*/
|
|
35
35
|
export declare const VERSION_INFO: {
|
|
36
|
-
readonly library: "15.
|
|
36
|
+
readonly library: "15.5.0";
|
|
37
37
|
readonly adcp: "3.2.3";
|
|
38
38
|
readonly compatibleVersions: readonly ["v2.5", "v2.6", "v3", "3.0.0", "3.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5", "3.0.6", "3.0.7", "3.0.8", "3.0.9", "3.0.10", "3.0.11", "3.0.12", "3.0.13", "3.0.14", "3.0.15", "3.0.16", "3.0.17", "3.0.18", "3.0.19", "3.0.20", "3.0.21", "3.0.22", "3.0.23", "3.0.24", "3.0.25", "3.1.0", "3.1", "3.1.1", "3.1.2", "3.1.3", "3.1.4", "3.1.5", "3.1.6", "3.1.7", "3.1.8", "3.1.9", "3.1.10", "3.1.11", "3.1.12", "3.1.13", "3.1.14", "3.1.15", "3.1.16", "3.1.17", "3.1.18", "3.1.19", "3.1.20", "3.1.21", "3.1.22", "3.1.23", "3.1.24", "3.2.1", "3.2", "3.2.2", "3.2.3"];
|
|
39
|
-
readonly generatedAt: "2026-10-
|
|
39
|
+
readonly generatedAt: "2026-10-09T04:52:03.760Z";
|
|
40
40
|
};
|
|
41
41
|
/**
|
|
42
42
|
* Get the AdCP specification version this library is built for
|
package/dist/lib/version.js
CHANGED
|
@@ -31,7 +31,7 @@ __export(version_exports, {
|
|
|
31
31
|
toReleasePrecisionVersion: () => toReleasePrecisionVersion
|
|
32
32
|
});
|
|
33
33
|
module.exports = __toCommonJS(version_exports);
|
|
34
|
-
const LIBRARY_VERSION = "15.
|
|
34
|
+
const LIBRARY_VERSION = "15.5.0";
|
|
35
35
|
const ADCP_VERSION = "3.2.3";
|
|
36
36
|
const ADCP_MAJOR_VERSION = 3;
|
|
37
37
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -97,10 +97,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
97
97
|
"3.2.3"
|
|
98
98
|
];
|
|
99
99
|
const VERSION_INFO = {
|
|
100
|
-
library: "15.
|
|
100
|
+
library: "15.5.0",
|
|
101
101
|
adcp: "3.2.3",
|
|
102
102
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
103
|
-
generatedAt: "2026-10-
|
|
103
|
+
generatedAt: "2026-10-09T04:52:03.760Z"
|
|
104
104
|
};
|
|
105
105
|
function getAdcpVersion() {
|
|
106
106
|
return ADCP_VERSION;
|
package/dist/lib/version.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const LIBRARY_VERSION = "15.
|
|
1
|
+
const LIBRARY_VERSION = "15.5.0";
|
|
2
2
|
const ADCP_VERSION = "3.2.3";
|
|
3
3
|
const ADCP_MAJOR_VERSION = 3;
|
|
4
4
|
const COMPATIBLE_ADCP_VERSIONS = [
|
|
@@ -64,10 +64,10 @@ const COMPATIBLE_ADCP_VERSIONS = [
|
|
|
64
64
|
"3.2.3"
|
|
65
65
|
];
|
|
66
66
|
const VERSION_INFO = {
|
|
67
|
-
library: "15.
|
|
67
|
+
library: "15.5.0",
|
|
68
68
|
adcp: "3.2.3",
|
|
69
69
|
compatibleVersions: COMPATIBLE_ADCP_VERSIONS,
|
|
70
|
-
generatedAt: "2026-10-
|
|
70
|
+
generatedAt: "2026-10-09T04:52:03.760Z"
|
|
71
71
|
};
|
|
72
72
|
function getAdcpVersion() {
|
|
73
73
|
return ADCP_VERSION;
|
package/docs/README.md
CHANGED
|
@@ -23,7 +23,7 @@ list_products → buy_products → control_media_buy
|
|
|
23
23
|
|
|
24
24
|
Use the [buyer quick start](./guides/BUYER-QUICKSTART-3.2.md). For the complete
|
|
25
25
|
tool and type inventory, use [llms.txt](./llms.txt) and the
|
|
26
|
-
[type summary](./TYPE-SUMMARY.md).
|
|
26
|
+
[type summary](./TYPE-SUMMARY.md). For server-side callers that create a client per request, see [discovery caching and MCP session reuse](./guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md).
|
|
27
27
|
|
|
28
28
|
## Upgrade from SDK 14.0
|
|
29
29
|
|