@spine-event-engine/server 2.0.0-snapshot.24 → 2.0.0-snapshot.25
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/README.md +38 -11
- package/REFERENCE.md +201 -130
- package/dist/agent/agent-acceptance-receipts.d.ts +69 -0
- package/dist/agent/agent-acceptance-receipts.d.ts.map +1 -0
- package/dist/agent/agent-acceptance-receipts.js +198 -0
- package/dist/agent/agent-acceptance-receipts.js.map +1 -0
- package/dist/agent/agent-execution-capacity.d.ts +37 -9
- package/dist/agent/agent-execution-capacity.d.ts.map +1 -1
- package/dist/agent/agent-execution-capacity.js +73 -15
- package/dist/agent/agent-execution-capacity.js.map +1 -1
- package/dist/agent/agent-history.d.ts +15 -10
- package/dist/agent/agent-history.d.ts.map +1 -1
- package/dist/agent/agent-history.js +26 -14
- package/dist/agent/agent-history.js.map +1 -1
- package/dist/agent/agent-live-ai-audit.d.ts +95 -0
- package/dist/agent/agent-live-ai-audit.d.ts.map +1 -0
- package/dist/agent/agent-live-ai-audit.js +290 -0
- package/dist/agent/agent-live-ai-audit.js.map +1 -0
- package/dist/agent/agent-live-ai-runtime.d.ts +300 -0
- package/dist/agent/agent-live-ai-runtime.d.ts.map +1 -0
- package/dist/agent/agent-live-ai-runtime.js +611 -0
- package/dist/agent/agent-live-ai-runtime.js.map +1 -0
- package/dist/agent/agent-live-audit.d.ts +67 -0
- package/dist/agent/agent-live-audit.d.ts.map +1 -0
- package/dist/agent/agent-live-audit.js +121 -0
- package/dist/agent/agent-live-audit.js.map +1 -0
- package/dist/agent/agent-live-budget.d.ts +84 -0
- package/dist/agent/agent-live-budget.d.ts.map +1 -0
- package/dist/agent/agent-live-budget.js +161 -0
- package/dist/agent/agent-live-budget.js.map +1 -0
- package/dist/agent/agent-live-fault.d.ts +18 -0
- package/dist/agent/agent-live-fault.d.ts.map +1 -0
- package/dist/agent/{agent-execution-fault.js → agent-live-fault.js} +7 -7
- package/dist/agent/agent-live-fault.js.map +1 -0
- package/dist/agent/agent-live-inputs.d.ts +74 -0
- package/dist/agent/agent-live-inputs.d.ts.map +1 -0
- package/dist/{bus/saved-dispatcher-binding.js → agent/agent-live-inputs.js} +2 -14
- package/dist/agent/agent-live-inputs.js.map +1 -0
- package/dist/agent/agent-live-interaction-events.d.ts +46 -0
- package/dist/agent/agent-live-interaction-events.d.ts.map +1 -0
- package/dist/agent/agent-live-interaction-events.js +104 -0
- package/dist/agent/agent-live-interaction-events.js.map +1 -0
- package/dist/agent/agent-live-mcp-controls.d.ts +129 -0
- package/dist/agent/agent-live-mcp-controls.d.ts.map +1 -0
- package/dist/agent/agent-live-mcp-controls.js +228 -0
- package/dist/agent/agent-live-mcp-controls.js.map +1 -0
- package/dist/agent/agent-live-mcp-host.d.ts +88 -0
- package/dist/agent/agent-live-mcp-host.d.ts.map +1 -0
- package/dist/agent/{agent-mcp-host.js → agent-live-mcp-host.js} +1 -1
- package/dist/agent/agent-live-mcp-host.js.map +1 -0
- package/dist/agent/{agent-mcp-runtime.d.ts → agent-live-mcp-runtime.d.ts} +6 -6
- package/dist/agent/agent-live-mcp-runtime.d.ts.map +1 -0
- package/dist/agent/{agent-mcp-runtime.js → agent-live-mcp-runtime.js} +13 -42
- package/dist/agent/agent-live-mcp-runtime.js.map +1 -0
- package/dist/agent/agent-live-read-runtime.d.ts +61 -0
- package/dist/agent/agent-live-read-runtime.d.ts.map +1 -0
- package/dist/agent/agent-live-read-runtime.js +121 -0
- package/dist/agent/agent-live-read-runtime.js.map +1 -0
- package/dist/agent/agent-model-selection.d.ts +21 -34
- package/dist/agent/agent-model-selection.d.ts.map +1 -1
- package/dist/agent/agent-model-selection.js +61 -78
- package/dist/agent/agent-model-selection.js.map +1 -1
- package/dist/bus/command-bus.d.ts +14 -18
- package/dist/bus/command-bus.d.ts.map +1 -1
- package/dist/bus/command-bus.js +31 -48
- package/dist/bus/command-bus.js.map +1 -1
- package/dist/bus/event-bus.d.ts +17 -4
- package/dist/bus/event-bus.d.ts.map +1 -1
- package/dist/bus/event-bus.js +42 -12
- package/dist/bus/event-bus.js.map +1 -1
- package/dist/context/bounded-context.d.ts +140 -87
- package/dist/context/bounded-context.d.ts.map +1 -1
- package/dist/context/bounded-context.js +702 -329
- package/dist/context/bounded-context.js.map +1 -1
- package/dist/context/entity-inbox.d.ts +7 -2
- package/dist/context/entity-inbox.d.ts.map +1 -1
- package/dist/context/entity-inbox.js +22 -13
- package/dist/context/entity-inbox.js.map +1 -1
- package/dist/context/local-inbox-handoff.d.ts +34 -34
- package/dist/context/local-inbox-handoff.d.ts.map +1 -1
- package/dist/context/local-inbox-handoff.js +108 -150
- package/dist/context/local-inbox-handoff.js.map +1 -1
- package/dist/context/projection-handoff.d.ts +2 -2
- package/dist/context/projection-handoff.d.ts.map +1 -1
- package/dist/context/projection-handoff.js +10 -8
- package/dist/context/projection-handoff.js.map +1 -1
- package/dist/context/tenant-index.d.ts +36 -31
- package/dist/context/tenant-index.d.ts.map +1 -1
- package/dist/context/tenant-index.js +123 -125
- package/dist/context/tenant-index.js.map +1 -1
- package/dist/context/tenant-unknown-error.d.ts +33 -0
- package/dist/context/tenant-unknown-error.d.ts.map +1 -0
- package/dist/context/tenant-unknown-error.js +75 -0
- package/dist/context/tenant-unknown-error.js.map +1 -0
- package/dist/delivery/agent-delivery-scope.d.ts +66 -0
- package/dist/delivery/agent-delivery-scope.d.ts.map +1 -0
- package/dist/delivery/agent-delivery-scope.js +44 -0
- package/dist/delivery/agent-delivery-scope.js.map +1 -0
- package/dist/delivery/delivery-builder.d.ts +25 -1
- package/dist/delivery/delivery-builder.d.ts.map +1 -1
- package/dist/delivery/delivery-builder.js +89 -0
- package/dist/delivery/delivery-builder.js.map +1 -1
- package/dist/delivery/delivery-monitor.d.ts +1 -1
- package/dist/delivery/delivery-monitor.js +1 -1
- package/dist/delivery/delivery-run-control.d.ts +6 -0
- package/dist/delivery/delivery-run-control.d.ts.map +1 -1
- package/dist/delivery/delivery-run-control.js +10 -0
- package/dist/delivery/delivery-run-control.js.map +1 -1
- package/dist/delivery/delivery-supervisor.d.ts.map +1 -1
- package/dist/delivery/delivery-supervisor.js +28 -4
- package/dist/delivery/delivery-supervisor.js.map +1 -1
- package/dist/delivery/delivery-tenant.d.ts +17 -0
- package/dist/delivery/delivery-tenant.d.ts.map +1 -0
- package/dist/delivery/delivery-tenant.js +50 -0
- package/dist/delivery/delivery-tenant.js.map +1 -0
- package/dist/delivery/delivery.d.ts +96 -2
- package/dist/delivery/delivery.d.ts.map +1 -1
- package/dist/delivery/delivery.js +693 -53
- package/dist/delivery/delivery.js.map +1 -1
- package/dist/delivery/inbox-records.d.ts.map +1 -1
- package/dist/delivery/inbox-records.js +9 -16
- package/dist/delivery/inbox-records.js.map +1 -1
- package/dist/delivery/inbox-storage.d.ts +6 -0
- package/dist/delivery/inbox-storage.d.ts.map +1 -1
- package/dist/delivery/inbox-storage.js +43 -6
- package/dist/delivery/inbox-storage.js.map +1 -1
- package/dist/delivery/inbox.d.ts.map +1 -1
- package/dist/delivery/inbox.js +3 -2
- package/dist/delivery/inbox.js.map +1 -1
- package/dist/delivery/reception-observation.d.ts +12 -4
- package/dist/delivery/reception-observation.d.ts.map +1 -1
- package/dist/delivery/reception-observation.js +14 -3
- package/dist/delivery/reception-observation.js.map +1 -1
- package/dist/delivery/sharded-work-registry.d.ts +6 -0
- package/dist/delivery/sharded-work-registry.d.ts.map +1 -1
- package/dist/delivery/sharded-work-registry.js +41 -4
- package/dist/delivery/sharded-work-registry.js.map +1 -1
- package/dist/entity/entity-storage-descriptor.d.ts.map +1 -1
- package/dist/entity/entity-storage-descriptor.js +7 -4
- package/dist/entity/entity-storage-descriptor.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/integration/external-messages.d.ts.map +1 -1
- package/dist/integration/external-messages.js +9 -15
- package/dist/integration/external-messages.js.map +1 -1
- package/dist/integration/integration-broker.d.ts.map +1 -1
- package/dist/integration/integration-broker.js +112 -6
- package/dist/integration/integration-broker.js.map +1 -1
- package/dist/integration/third-party-context.d.ts.map +1 -1
- package/dist/integration/third-party-context.js +7 -10
- package/dist/integration/third-party-context.js.map +1 -1
- package/dist/repository/primitive-id.js +26 -11
- package/dist/repository/primitive-id.js.map +1 -1
- package/dist/repository/repository.d.ts +32 -60
- package/dist/repository/repository.d.ts.map +1 -1
- package/dist/repository/repository.js +1446 -1787
- package/dist/repository/repository.js.map +1 -1
- package/dist/runtime/runtime.d.ts +13 -0
- package/dist/runtime/runtime.d.ts.map +1 -1
- package/dist/runtime/runtime.js +18 -0
- package/dist/runtime/runtime.js.map +1 -1
- package/dist/runtime/signal-metadata.d.ts.map +1 -1
- package/dist/runtime/signal-metadata.js +6 -6
- package/dist/runtime/signal-metadata.js.map +1 -1
- package/dist/runtime/signal-publisher.d.ts +0 -6
- package/dist/runtime/signal-publisher.d.ts.map +1 -1
- package/dist/runtime/signal-publisher.js +1 -9
- package/dist/runtime/signal-publisher.js.map +1 -1
- package/dist/runtime/standalone-handler-runtime.d.ts +0 -7
- package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -1
- package/dist/runtime/standalone-handler-runtime.js +13 -99
- package/dist/runtime/standalone-handler-runtime.js.map +1 -1
- package/dist/server/managed-delivery-gate.d.ts +34 -0
- package/dist/server/managed-delivery-gate.d.ts.map +1 -0
- package/dist/server/managed-delivery-gate.js +70 -0
- package/dist/server/managed-delivery-gate.js.map +1 -0
- package/dist/server/managed-server-application.d.ts.map +1 -1
- package/dist/server/managed-server-application.js +7 -4
- package/dist/server/managed-server-application.js.map +1 -1
- package/dist/server/server-environment.d.ts +203 -25
- package/dist/server/server-environment.d.ts.map +1 -1
- package/dist/server/server-environment.js +661 -133
- package/dist/server/server-environment.js.map +1 -1
- package/dist/server/server-log.d.ts +7 -0
- package/dist/server/server-log.d.ts.map +1 -1
- package/dist/server/server-log.js +14 -1
- package/dist/server/server-log.js.map +1 -1
- package/dist/server/server.d.ts +18 -32
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +50 -204
- package/dist/server/server.js.map +1 -1
- package/dist/services/spine-services.d.ts +1 -1
- package/dist/services/spine-services.d.ts.map +1 -1
- package/dist/services/spine-services.js +236 -335
- package/dist/services/spine-services.js.map +1 -1
- package/dist/stand/event-origin-filter.js +3 -3
- package/dist/stand/event-origin-filter.js.map +1 -1
- package/dist/stand/stand.d.ts +14 -0
- package/dist/stand/stand.d.ts.map +1 -1
- package/dist/stand/stand.js +53 -9
- package/dist/stand/stand.js.map +1 -1
- package/dist/stand/subscription-observer.d.ts.map +1 -1
- package/dist/stand/subscription-observer.js +54 -40
- package/dist/stand/subscription-observer.js.map +1 -1
- package/dist/stand/subscription-registry.d.ts +6 -2
- package/dist/stand/subscription-registry.d.ts.map +1 -1
- package/dist/stand/subscription-registry.js +15 -11
- package/dist/stand/subscription-registry.js.map +1 -1
- package/dist/stand/subscription-runtime.d.ts +5 -3
- package/dist/stand/subscription-runtime.d.ts.map +1 -1
- package/dist/stand/subscription-runtime.js +52 -9
- package/dist/stand/subscription-runtime.js.map +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +4 -3
- package/dist/testing/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/dist/agent/agent-admission.d.ts +0 -80
- package/dist/agent/agent-admission.d.ts.map +0 -1
- package/dist/agent/agent-admission.js +0 -127
- package/dist/agent/agent-admission.js.map +0 -1
- package/dist/agent/agent-ai-runtime.d.ts +0 -76
- package/dist/agent/agent-ai-runtime.d.ts.map +0 -1
- package/dist/agent/agent-ai-runtime.js +0 -1269
- package/dist/agent/agent-ai-runtime.js.map +0 -1
- package/dist/agent/agent-execution-fault.d.ts +0 -18
- package/dist/agent/agent-execution-fault.d.ts.map +0 -1
- package/dist/agent/agent-execution-fault.js.map +0 -1
- package/dist/agent/agent-execution-session.d.ts +0 -103
- package/dist/agent/agent-execution-session.d.ts.map +0 -1
- package/dist/agent/agent-execution-session.js +0 -238
- package/dist/agent/agent-execution-session.js.map +0 -1
- package/dist/agent/agent-interaction-audit.d.ts +0 -58
- package/dist/agent/agent-interaction-audit.d.ts.map +0 -1
- package/dist/agent/agent-interaction-audit.js +0 -114
- package/dist/agent/agent-interaction-audit.js.map +0 -1
- package/dist/agent/agent-interaction-events.d.ts +0 -40
- package/dist/agent/agent-interaction-events.d.ts.map +0 -1
- package/dist/agent/agent-interaction-events.js +0 -129
- package/dist/agent/agent-interaction-events.js.map +0 -1
- package/dist/agent/agent-mcp-budget.d.ts +0 -125
- package/dist/agent/agent-mcp-budget.d.ts.map +0 -1
- package/dist/agent/agent-mcp-budget.js +0 -566
- package/dist/agent/agent-mcp-budget.js.map +0 -1
- package/dist/agent/agent-mcp-host.d.ts +0 -125
- package/dist/agent/agent-mcp-host.d.ts.map +0 -1
- package/dist/agent/agent-mcp-host.js.map +0 -1
- package/dist/agent/agent-mcp-runtime.d.ts.map +0 -1
- package/dist/agent/agent-mcp-runtime.js.map +0 -1
- package/dist/agent/agent-read-runtime.d.ts +0 -70
- package/dist/agent/agent-read-runtime.d.ts.map +0 -1
- package/dist/agent/agent-read-runtime.js +0 -320
- package/dist/agent/agent-read-runtime.js.map +0 -1
- package/dist/agent/agent-revisions.d.ts +0 -35
- package/dist/agent/agent-revisions.d.ts.map +0 -1
- package/dist/agent/agent-revisions.js +0 -133
- package/dist/agent/agent-revisions.js.map +0 -1
- package/dist/agent/agent-scheduler.d.ts +0 -99
- package/dist/agent/agent-scheduler.d.ts.map +0 -1
- package/dist/agent/agent-scheduler.js +0 -398
- package/dist/agent/agent-scheduler.js.map +0 -1
- package/dist/bus/saved-dispatcher-binding.d.ts +0 -53
- package/dist/bus/saved-dispatcher-binding.d.ts.map +0 -1
- package/dist/bus/saved-dispatcher-binding.js.map +0 -1
- package/dist/delivery/delivery-run-coordinator.d.ts +0 -218
- package/dist/delivery/delivery-run-coordinator.d.ts.map +0 -1
- package/dist/delivery/delivery-run-coordinator.js +0 -609
- package/dist/delivery/delivery-run-coordinator.js.map +0 -1
- package/dist/delivery/parked-delivery-obligations.d.ts +0 -182
- package/dist/delivery/parked-delivery-obligations.d.ts.map +0 -1
- package/dist/delivery/parked-delivery-obligations.js +0 -390
- package/dist/delivery/parked-delivery-obligations.js.map +0 -1
- package/dist/server/environment-attachment.d.ts +0 -356
- package/dist/server/environment-attachment.d.ts.map +0 -1
- package/dist/server/environment-attachment.js +0 -2062
- package/dist/server/environment-attachment.js.map +0 -1
- package/dist/server/environment-delivery-records.d.ts +0 -77
- package/dist/server/environment-delivery-records.d.ts.map +0 -1
- package/dist/server/environment-delivery-records.js +0 -282
- package/dist/server/environment-delivery-records.js.map +0 -1
- package/dist/server/environment-delivery-worker.d.ts +0 -161
- package/dist/server/environment-delivery-worker.d.ts.map +0 -1
- package/dist/server/environment-delivery-worker.js +0 -973
- package/dist/server/environment-delivery-worker.js.map +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Any } from "@bufbuild/protobuf/wkt";
|
|
2
|
+
import type { CommandId, EventId } from "@spine-event-engine/proto";
|
|
3
|
+
import { type AgentAcceptanceReceipt } from "@spine-event-engine/proto/generated/spine/server/agent/acceptance_receipt_pb.js";
|
|
4
|
+
import { RecordSpec, StorageGroup, type StorageContext, type StorageFactory } from "@spine-event-engine/storage";
|
|
5
|
+
import type { DeliveryLabel } from "../delivery/inbox.js";
|
|
6
|
+
/**
|
|
7
|
+
* Declarative physical family shared by runtime use and explicit preparation.
|
|
8
|
+
*/
|
|
9
|
+
export declare const agentAcceptanceReceiptSpec: RecordSpec<string, AgentAcceptanceReceipt>;
|
|
10
|
+
/**
|
|
11
|
+
* Stable physical group for Agent acceptance evidence.
|
|
12
|
+
*/
|
|
13
|
+
export declare const agentAcceptanceReceiptGroup: StorageGroup;
|
|
14
|
+
/**
|
|
15
|
+
* Typed source and recipient of one Agent delivery.
|
|
16
|
+
*/
|
|
17
|
+
export interface AgentAcceptanceInput {
|
|
18
|
+
/**
|
|
19
|
+
* Generated Agent state type.
|
|
20
|
+
*/
|
|
21
|
+
readonly stateType: string;
|
|
22
|
+
/**
|
|
23
|
+
* Original typed recipient, including the exact Any type URL.
|
|
24
|
+
*/
|
|
25
|
+
readonly recipientId: Any;
|
|
26
|
+
/**
|
|
27
|
+
* Original typed Command or Event identifier.
|
|
28
|
+
*/
|
|
29
|
+
readonly source: {
|
|
30
|
+
readonly kind: "command";
|
|
31
|
+
readonly id: CommandId;
|
|
32
|
+
} | {
|
|
33
|
+
readonly kind: "event";
|
|
34
|
+
readonly id: EventId;
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Delivery route that selected the Agent.
|
|
38
|
+
*/
|
|
39
|
+
readonly action: DeliveryLabel;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Retains one atomic receipt handle per complete tenant boundary.
|
|
43
|
+
*
|
|
44
|
+
* @internal
|
|
45
|
+
*/
|
|
46
|
+
export declare class AgentAcceptanceReceipts {
|
|
47
|
+
#private;
|
|
48
|
+
/**
|
|
49
|
+
* Creates an inert receipt helper without opening storage.
|
|
50
|
+
*
|
|
51
|
+
* @param factory Provider factory used only when the first receipt is admitted.
|
|
52
|
+
*/
|
|
53
|
+
constructor(factory: StorageFactory);
|
|
54
|
+
/**
|
|
55
|
+
* Accepts one typed delivery atomically; only `true` may permit live execution.
|
|
56
|
+
*
|
|
57
|
+
* @param context Complete physical tenant scope.
|
|
58
|
+
* @param input Typed delivery identity.
|
|
59
|
+
* @returns Whether this attempt first established the immutable receipt.
|
|
60
|
+
*/
|
|
61
|
+
accept(context: StorageContext, input: AgentAcceptanceInput): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Closes retained handles after fencing new admissions and draining admitted CAS operations.
|
|
64
|
+
*
|
|
65
|
+
* @returns Repeatable completion after admitted CAS operations and all handles settle.
|
|
66
|
+
*/
|
|
67
|
+
close(): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=agent-acceptance-receipts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-acceptance-receipts.d.ts","sourceRoot":"","sources":["../../src/agent/agent-acceptance-receipts.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,iFAAiF,CAAC;AACzF,OAAO,EACL,UAAU,EACV,YAAY,EAEZ,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,MAAM,EAAE,sBAAsB,CAQ9E,CAAC;AAEL;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,YAAyD,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EACX;QAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAA;KAAE,GACpD;QAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED;;;;GAIG;AACH,qBAAa,uBAAuB;;IAWlC;;;;OAIG;gBACS,OAAO,EAAE,cAAc;IAInC;;;;;;OAMG;IACG,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAyBpF;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAwEvB"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
import { createHash } from "node:crypto";
|
|
15
|
+
import { clone, create } from "@bufbuild/protobuf";
|
|
16
|
+
import { AgentAcceptanceKeySchema, AgentAcceptanceReceiptSchema, } from "@spine-event-engine/proto/generated/spine/server/agent/acceptance_receipt_pb.js";
|
|
17
|
+
import { RecordSpec, StorageGroup, } from "@spine-event-engine/storage";
|
|
18
|
+
import { TenantBoundary } from "@spine-event-engine/storage/provider";
|
|
19
|
+
/**
|
|
20
|
+
* Declarative physical family shared by runtime use and explicit preparation.
|
|
21
|
+
*/
|
|
22
|
+
export const agentAcceptanceReceiptSpec = new RecordSpec({
|
|
23
|
+
idKind: "string",
|
|
24
|
+
recordType: AgentAcceptanceReceiptSchema,
|
|
25
|
+
extractId: (receipt) => {
|
|
26
|
+
if (receipt.key === undefined)
|
|
27
|
+
throw new TypeError("Agent receipt has no identity.");
|
|
28
|
+
return ReceiptIdentity.slot(receipt.key);
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Stable physical group for Agent acceptance evidence.
|
|
33
|
+
*/
|
|
34
|
+
export const agentAcceptanceReceiptGroup = new StorageGroup("spine_agent_acceptance");
|
|
35
|
+
/**
|
|
36
|
+
* Retains one atomic receipt handle per complete tenant boundary.
|
|
37
|
+
*
|
|
38
|
+
* @internal
|
|
39
|
+
*/
|
|
40
|
+
export class AgentAcceptanceReceipts {
|
|
41
|
+
#factory;
|
|
42
|
+
#storages = new Map();
|
|
43
|
+
#active = 0;
|
|
44
|
+
#resolveIdle;
|
|
45
|
+
#closing;
|
|
46
|
+
/**
|
|
47
|
+
* Creates an inert receipt helper without opening storage.
|
|
48
|
+
*
|
|
49
|
+
* @param factory Provider factory used only when the first receipt is admitted.
|
|
50
|
+
*/
|
|
51
|
+
constructor(factory) {
|
|
52
|
+
this.#factory = factory;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Accepts one typed delivery atomically; only `true` may permit live execution.
|
|
56
|
+
*
|
|
57
|
+
* @param context Complete physical tenant scope.
|
|
58
|
+
* @param input Typed delivery identity.
|
|
59
|
+
* @returns Whether this attempt first established the immutable receipt.
|
|
60
|
+
*/
|
|
61
|
+
async accept(context, input) {
|
|
62
|
+
if (this.#closing !== undefined)
|
|
63
|
+
throw new Error("Agent acceptance receipts are closed.");
|
|
64
|
+
this.#active++;
|
|
65
|
+
try {
|
|
66
|
+
const key = clone(AgentAcceptanceKeySchema, this.#key(input));
|
|
67
|
+
const slot = ReceiptIdentity.slot(key);
|
|
68
|
+
const storage = this.#storage(context);
|
|
69
|
+
if (!storage.atomicCompareAndSet)
|
|
70
|
+
throw new Error("Agent acceptance requires atomic compare-and-set storage.");
|
|
71
|
+
if (await storage.compareAndSet(slot, undefined, create(AgentAcceptanceReceiptSchema, { key })))
|
|
72
|
+
return true;
|
|
73
|
+
const previous = await storage.read(slot);
|
|
74
|
+
if (previous?.key === undefined)
|
|
75
|
+
throw new Error("Agent acceptance receipt is missing after lost CAS.");
|
|
76
|
+
if (ReceiptIdentity.text(previous.key) !== ReceiptIdentity.text(key))
|
|
77
|
+
throw new Error("Agent acceptance receipt identity conflict.");
|
|
78
|
+
return false;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
this.#active--;
|
|
82
|
+
if (this.#active === 0)
|
|
83
|
+
this.#resolveIdle?.();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Closes retained handles after fencing new admissions and draining admitted CAS operations.
|
|
88
|
+
*
|
|
89
|
+
* @returns Repeatable completion after admitted CAS operations and all handles settle.
|
|
90
|
+
*/
|
|
91
|
+
close() {
|
|
92
|
+
if (this.#closing !== undefined)
|
|
93
|
+
return this.#closing;
|
|
94
|
+
const idle = this.#active === 0
|
|
95
|
+
? Promise.resolve()
|
|
96
|
+
: new Promise((resolve) => {
|
|
97
|
+
this.#resolveIdle = () => {
|
|
98
|
+
resolve();
|
|
99
|
+
};
|
|
100
|
+
});
|
|
101
|
+
this.#closing = idle.then(() => {
|
|
102
|
+
this.#closeStorages();
|
|
103
|
+
});
|
|
104
|
+
return this.#closing;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Constructs one generated identity without changing the supplied type URL.
|
|
108
|
+
* @param input Typed delivery identity.
|
|
109
|
+
* @returns Its generated complete identity evidence.
|
|
110
|
+
*/
|
|
111
|
+
#key(input) {
|
|
112
|
+
if (input.stateType.trim().length === 0 || input.recipientId.typeUrl.length === 0)
|
|
113
|
+
throw new TypeError("Agent acceptance requires a state type and typed recipient.");
|
|
114
|
+
return create(AgentAcceptanceKeySchema, {
|
|
115
|
+
stateType: input.stateType,
|
|
116
|
+
recipientId: input.recipientId,
|
|
117
|
+
source: input.source.kind === "command"
|
|
118
|
+
? { case: "command", value: input.source.id }
|
|
119
|
+
: { case: "event", value: input.source.id },
|
|
120
|
+
action: input.action,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Finds or creates one handle for a complete physical tenant scope.
|
|
125
|
+
* @param context Complete physical scope.
|
|
126
|
+
* @returns Retained atomic record handle.
|
|
127
|
+
*/
|
|
128
|
+
#storage(context) {
|
|
129
|
+
const boundary = TenantBoundary.of(context);
|
|
130
|
+
const retained = this.#storages.get(boundary.key);
|
|
131
|
+
if (retained !== undefined)
|
|
132
|
+
return retained;
|
|
133
|
+
const selected = boundary.tenantId === undefined
|
|
134
|
+
? { name: context.name, multitenant: false }
|
|
135
|
+
: { name: context.name, multitenant: true, tenantId: boundary.tenantId };
|
|
136
|
+
const storage = this.#factory.createRecordStorage(selected, agentAcceptanceReceiptSpec, agentAcceptanceReceiptGroup);
|
|
137
|
+
this.#storages.set(boundary.key, storage);
|
|
138
|
+
return storage;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Attempts every retained close and preserves all cleanup failures.
|
|
142
|
+
*/
|
|
143
|
+
#closeStorages() {
|
|
144
|
+
const errors = [];
|
|
145
|
+
for (const storage of this.#storages.values()) {
|
|
146
|
+
try {
|
|
147
|
+
storage.close();
|
|
148
|
+
}
|
|
149
|
+
catch (error) {
|
|
150
|
+
errors.push(error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
this.#storages.clear();
|
|
154
|
+
if (errors.length !== 0)
|
|
155
|
+
throw new AggregateError(errors, "Agent receipt cleanup failed.");
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Encodes one complete typed identity for provider slots and collision checks.
|
|
160
|
+
*/
|
|
161
|
+
const ReceiptIdentity = Object.freeze({
|
|
162
|
+
/**
|
|
163
|
+
* Encodes declared identity fields with stable framing and exact Any bytes.
|
|
164
|
+
*
|
|
165
|
+
* @param key Complete generated identity evidence.
|
|
166
|
+
* @returns Stable v1 tuple text for slot derivation and collision checking.
|
|
167
|
+
*/
|
|
168
|
+
text(key) {
|
|
169
|
+
const recipient = key.recipientId;
|
|
170
|
+
const source = key.source;
|
|
171
|
+
const sourceId = source.case === "command"
|
|
172
|
+
? source.value.uuid
|
|
173
|
+
: source.case === "event"
|
|
174
|
+
? source.value.value
|
|
175
|
+
: undefined;
|
|
176
|
+
if (!key.stateType || !recipient?.typeUrl || !sourceId || !key.action)
|
|
177
|
+
throw new TypeError("Agent acceptance receipt has incomplete identity.");
|
|
178
|
+
return JSON.stringify([
|
|
179
|
+
"spine.server.agent.AgentAcceptanceKey/v1",
|
|
180
|
+
key.stateType,
|
|
181
|
+
recipient.typeUrl,
|
|
182
|
+
Buffer.from(recipient.value).toString("base64"),
|
|
183
|
+
source.case,
|
|
184
|
+
sourceId,
|
|
185
|
+
key.action,
|
|
186
|
+
]);
|
|
187
|
+
},
|
|
188
|
+
/**
|
|
189
|
+
* Calculates the fixed provider slot from the complete typed identity.
|
|
190
|
+
*
|
|
191
|
+
* @param key Complete generated identity evidence.
|
|
192
|
+
* @returns Versioned 67-character record slot.
|
|
193
|
+
*/
|
|
194
|
+
slot(key) {
|
|
195
|
+
return `v1:${createHash("sha256").update(this.text(key), "utf8").digest("hex")}`;
|
|
196
|
+
},
|
|
197
|
+
});
|
|
198
|
+
//# sourceMappingURL=agent-acceptance-receipts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-acceptance-receipts.js","sourceRoot":"","sources":["../../src/agent/agent-acceptance-receipts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,23 @@
|
|
|
1
1
|
import type { AiRegistry } from "@spine-event-engine/ai";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
/**
|
|
3
|
+
* A local slot retained before an Agent receipt is accepted.
|
|
4
|
+
*/
|
|
5
|
+
export interface AgentCapacityReservation {
|
|
6
|
+
/**
|
|
7
|
+
* Settles after this reservation releases or its admitted turn finishes.
|
|
8
|
+
*/
|
|
9
|
+
readonly completed: Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Starts work after Inbox acknowledgement and the Agent turn become available.
|
|
12
|
+
*
|
|
13
|
+
* @param onRun Callback to run after capacity admission.
|
|
14
|
+
* @returns Completion after admitted Agent work finishes.
|
|
15
|
+
*/
|
|
16
|
+
run(onRun: () => Promise<void>): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Clears a slot when receipt or acknowledgement admission does not complete.
|
|
19
|
+
*/
|
|
20
|
+
release(): void;
|
|
6
21
|
}
|
|
7
22
|
/**
|
|
8
23
|
* Schedules active Agent transitions and resident waiting hints across one AI registry.
|
|
@@ -32,12 +47,25 @@ export declare class AgentExecutionCapacity {
|
|
|
32
47
|
*/
|
|
33
48
|
full(): boolean;
|
|
34
49
|
/**
|
|
35
|
-
*
|
|
50
|
+
* Observes released Agent identities and available registry capacity.
|
|
51
|
+
*
|
|
52
|
+
* @param onAvailable Callback invoked when capacity becomes available.
|
|
53
|
+
* @returns A callback that removes this capacity listener.
|
|
54
|
+
*/
|
|
55
|
+
onAvailable(onAvailable: (key: string) => void): () => void;
|
|
56
|
+
/**
|
|
57
|
+
* Captures the current release generation for gap-free rechecking.
|
|
58
|
+
*
|
|
59
|
+
* @returns The current release generation for gap-free rechecking.
|
|
60
|
+
*/
|
|
61
|
+
availabilityGeneration(): number;
|
|
62
|
+
/**
|
|
63
|
+
* Acquires bounded resident capacity before a durable Agent receipt attempt.
|
|
36
64
|
*
|
|
37
|
-
* @param
|
|
38
|
-
* @
|
|
65
|
+
* @param key Physical or logical identity key.
|
|
66
|
+
* @param signal Signal or cancellation signal for this operation.
|
|
67
|
+
* @returns A capacity reservation or undefined when admission is unavailable.
|
|
39
68
|
*/
|
|
40
|
-
|
|
69
|
+
reserve(key: string, signal: AbortSignal): AgentCapacityReservation | undefined;
|
|
41
70
|
}
|
|
42
|
-
export {};
|
|
43
71
|
//# sourceMappingURL=agent-execution-capacity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-execution-capacity.d.ts","sourceRoot":"","sources":["../../src/agent/agent-execution-capacity.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,
|
|
1
|
+
{"version":3,"file":"agent-execution-capacity.d.ts","sourceRoot":"","sources":["../../src/agent/agent-execution-capacity.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAElC;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/C;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAcD;;GAEG;AACH,qBAAa,sBAAsB;;IAkB/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAR1B;;;;;OAKG;gBAEgB,UAAU,CAAC,EAAE,MAAM,YAAA,EACnB,MAAM,CAAC,EAAE,MAAM,YAAA;IASlC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,GAAG,sBAAsB;IAYxD;;;;OAIG;IACH,IAAI,IAAI,OAAO;IASf;;;;;OAKG;IACH,WAAW,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAO3D;;;;OAIG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;;;;;OAMG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,wBAAwB,GAAG,SAAS;CA8GhF"}
|
|
@@ -22,6 +22,8 @@ export class AgentExecutionCapacity {
|
|
|
22
22
|
#entries = new Map();
|
|
23
23
|
#active = new Set();
|
|
24
24
|
#waiting = [];
|
|
25
|
+
#listeners = new Set();
|
|
26
|
+
#availabilityGeneration = 0;
|
|
25
27
|
/**
|
|
26
28
|
* Creates a registry gate with optional active and resident waiting limits.
|
|
27
29
|
*
|
|
@@ -62,17 +64,39 @@ export class AgentExecutionCapacity {
|
|
|
62
64
|
this.#waiting.length >= this.queued);
|
|
63
65
|
}
|
|
64
66
|
/**
|
|
65
|
-
*
|
|
67
|
+
* Observes released Agent identities and available registry capacity.
|
|
66
68
|
*
|
|
67
|
-
* @param
|
|
68
|
-
* @returns
|
|
69
|
+
* @param onAvailable Callback invoked when capacity becomes available.
|
|
70
|
+
* @returns A callback that removes this capacity listener.
|
|
69
71
|
*/
|
|
70
|
-
|
|
71
|
-
|
|
72
|
+
onAvailable(onAvailable) {
|
|
73
|
+
this.#listeners.add(onAvailable);
|
|
74
|
+
return () => {
|
|
75
|
+
this.#listeners.delete(onAvailable);
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Captures the current release generation for gap-free rechecking.
|
|
80
|
+
*
|
|
81
|
+
* @returns The current release generation for gap-free rechecking.
|
|
82
|
+
*/
|
|
83
|
+
availabilityGeneration() {
|
|
84
|
+
return this.#availabilityGeneration;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Acquires bounded resident capacity before a durable Agent receipt attempt.
|
|
88
|
+
*
|
|
89
|
+
* @param key Physical or logical identity key.
|
|
90
|
+
* @param signal Signal or cancellation signal for this operation.
|
|
91
|
+
* @returns A capacity reservation or undefined when admission is unavailable.
|
|
92
|
+
*/
|
|
93
|
+
reserve(key, signal) {
|
|
94
|
+
if (signal.aborted || this.#entries.has(key) || this.full())
|
|
72
95
|
return undefined;
|
|
73
96
|
const completion = Promise.withResolvers();
|
|
74
97
|
const entry = {
|
|
75
|
-
|
|
98
|
+
key,
|
|
99
|
+
signal,
|
|
76
100
|
completion,
|
|
77
101
|
started: false,
|
|
78
102
|
settled: false,
|
|
@@ -83,21 +107,39 @@ export class AgentExecutionCapacity {
|
|
|
83
107
|
this.#entries.set(entry.key, entry);
|
|
84
108
|
entry.signal.addEventListener("abort", entry.onAbort, { once: true });
|
|
85
109
|
if (this.concurrent === undefined || this.#active.size < this.concurrent)
|
|
86
|
-
this.#
|
|
110
|
+
this.#active.add(entry);
|
|
87
111
|
else
|
|
88
112
|
this.#waiting.push(entry);
|
|
89
|
-
return
|
|
113
|
+
return {
|
|
114
|
+
completed: entry.completion.promise,
|
|
115
|
+
run: (onRun) => this.#run(entry, onRun),
|
|
116
|
+
release: () => {
|
|
117
|
+
this.#cancelWaiting(entry);
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Starts a reserved descriptor only when it has an active slot.
|
|
123
|
+
*/
|
|
124
|
+
#run(entry, onRun) {
|
|
125
|
+
if (entry.settled || entry.run !== undefined)
|
|
126
|
+
throw new Error("Agent capacity reservation is no longer available.");
|
|
127
|
+
entry.run = onRun;
|
|
128
|
+
if (this.#active.has(entry))
|
|
129
|
+
this.#start(entry);
|
|
130
|
+
return entry.completion.promise;
|
|
90
131
|
}
|
|
91
132
|
/**
|
|
92
133
|
* Starts a retained descriptor only after it receives an active slot.
|
|
93
134
|
*/
|
|
94
135
|
#start(entry) {
|
|
136
|
+
if (entry.run === undefined || entry.started || entry.settled)
|
|
137
|
+
return;
|
|
95
138
|
entry.started = true;
|
|
96
|
-
this.#active.add(entry);
|
|
97
139
|
void Promise.resolve()
|
|
98
140
|
.then(() => {
|
|
99
141
|
if (!entry.signal.aborted)
|
|
100
|
-
return entry.run();
|
|
142
|
+
return entry.run?.();
|
|
101
143
|
})
|
|
102
144
|
.then(() => {
|
|
103
145
|
this.#finish(entry);
|
|
@@ -111,10 +153,15 @@ export class AgentExecutionCapacity {
|
|
|
111
153
|
#cancelWaiting(entry) {
|
|
112
154
|
if (entry.started || entry.settled)
|
|
113
155
|
return;
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
156
|
+
if (this.#active.has(entry))
|
|
157
|
+
this.#finish(entry);
|
|
158
|
+
else {
|
|
159
|
+
const index = this.#waiting.indexOf(entry);
|
|
160
|
+
if (index >= 0)
|
|
161
|
+
this.#waiting.splice(index, 1);
|
|
162
|
+
this.#settle(entry);
|
|
163
|
+
this.#notifyAvailable(entry.key);
|
|
164
|
+
}
|
|
118
165
|
}
|
|
119
166
|
/**
|
|
120
167
|
* Releases a finished slot once, then starts the oldest eligible hint.
|
|
@@ -127,9 +174,20 @@ export class AgentExecutionCapacity {
|
|
|
127
174
|
while ((this.concurrent === undefined || this.#active.size < this.concurrent) &&
|
|
128
175
|
this.#waiting.length > 0) {
|
|
129
176
|
const next = this.#waiting.shift();
|
|
130
|
-
if (next !== undefined && !next.settled)
|
|
177
|
+
if (next !== undefined && !next.settled) {
|
|
178
|
+
this.#active.add(next);
|
|
131
179
|
this.#start(next);
|
|
180
|
+
}
|
|
132
181
|
}
|
|
182
|
+
this.#notifyAvailable(entry.key);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Wakes eligibility observers after active and queued positions settle.
|
|
186
|
+
*/
|
|
187
|
+
#notifyAvailable(key) {
|
|
188
|
+
this.#availabilityGeneration += 1;
|
|
189
|
+
for (const listener of this.#listeners)
|
|
190
|
+
listener(key);
|
|
133
191
|
}
|
|
134
192
|
/**
|
|
135
193
|
* Removes one reservation and completes its bounded wait promise.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-execution-capacity.js","sourceRoot":"","sources":["../../src/agent/agent-execution-capacity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-execution-capacity.js","sourceRoot":"","sources":["../../src/agent/agent-execution-capacity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAmCrE,MAAM,UAAU,GAAG,IAAI,OAAO,EAAsC,CAAC;AAErE;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAkBd;IACA;IAlBV,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE9C,OAAO,GAAG,IAAI,GAAG,EAAmB,CAAC;IAErC,QAAQ,GAAsB,EAAE,CAAC;IAEjC,UAAU,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEvD,uBAAuB,GAAG,CAAC,CAAC;IAE5B;;;;;OAKG;IACH,YACmB,UAAmB,EACnB,MAAe;QADf,eAAU,GAAV,UAAU,CAAS;QACnB,WAAM,GAAN,MAAM,CAAS;QAEhC,IACE,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;YACnF,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,CAAC;YAEvE,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,CAAC,QAAoB;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,QAAQ,CAAC;QAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,sBAAsB,CACxC,OAAO,CAAC,oBAAoB,EAC5B,OAAO,CAAC,gBAAgB,CACzB,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,IAAI;QACF,OAAO,CACL,IAAI,CAAC,UAAU,KAAK,SAAS;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU;YACpC,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,WAAkC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAsB;QACpB,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,GAAW,EAAE,MAAmB;QACtC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,EAAa,CAAC;QACtD,MAAM,KAAK,GAAoB;YAC7B,GAAG;YACH,MAAM;YACN,UAAU;YACV,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU;YACtE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;;YACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO;YACnC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YACvC,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAsB,EAAE,KAA0B;QACrD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS;YAC1C,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAsB;QAC3B,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QACtE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,OAAO,CAAC,OAAO,EAAE;aACnB,IAAI,CAAC,GAAG,EAAE;YACT,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;QAClD,CAAC,CAAC;aACD,IAAI,CACH,GAAG,EAAE;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,CAAC,CACF,CAAC;IACN,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAsB;QACnC,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;aAC5C,CAAC;YACJ,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,KAAK,IAAI,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAsB,EAAE,KAAe;QAC7C,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO;QAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,OACE,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EACxB,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,GAAW;QAC1B,IAAI,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAClC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAsB,EAAE,KAAe;QAC7C,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;YACxD,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF"}
|
|
@@ -24,16 +24,15 @@ export interface AgentHistoryScope {
|
|
|
24
24
|
readonly entity: string;
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* Reads a current indexed provider page through one live Agent interceptor.
|
|
28
28
|
*
|
|
29
29
|
* @param scope Exact repository and Agent scope.
|
|
30
|
-
* @param view Indexed history view.
|
|
31
30
|
* @param request Public read request.
|
|
32
31
|
* @param live Loads the current provider page only when needed.
|
|
33
32
|
* @param maxBytes Optional response-byte ceiling for this read.
|
|
34
|
-
* @returns The
|
|
33
|
+
* @returns The current complete provider page.
|
|
35
34
|
*/
|
|
36
|
-
export type
|
|
35
|
+
export type AgentHistoryReadInterceptor = (scope: AgentHistoryScope, request: HistoryRead, live: () => Promise<AgentHistoryPage>, maxBytes: number | undefined) => Promise<AgentHistoryPage>;
|
|
37
36
|
/**
|
|
38
37
|
* Repository binding for an Agent's mandatory indexed history.
|
|
39
38
|
*
|
|
@@ -49,17 +48,23 @@ export interface AgentHistoryBinding<Id> {
|
|
|
49
48
|
*/
|
|
50
49
|
readonly entityId: Id;
|
|
51
50
|
/**
|
|
52
|
-
* Full cursor and
|
|
51
|
+
* Full cursor and read scope.
|
|
53
52
|
*/
|
|
54
53
|
readonly scope: AgentHistoryScope;
|
|
55
54
|
/**
|
|
56
|
-
* Optional
|
|
55
|
+
* Optional live read interceptor.
|
|
57
56
|
*/
|
|
58
|
-
readonly
|
|
57
|
+
readonly interceptRead?: AgentHistoryReadInterceptor;
|
|
59
58
|
/**
|
|
60
59
|
* Optional maximum serialized entry bytes in one response.
|
|
61
60
|
*/
|
|
62
61
|
readonly maxBytes?: number;
|
|
62
|
+
/**
|
|
63
|
+
* Admits the complete protected page, including interceptor and provider work.
|
|
64
|
+
* @param onRead Complete page read to admit.
|
|
65
|
+
* @returns Its result after all work settles.
|
|
66
|
+
*/
|
|
67
|
+
readonly onAdmit?: (onRead: () => Promise<HistoryPage<AgentHistoryEntry>>) => Promise<HistoryPage<AgentHistoryEntry>>;
|
|
63
68
|
}
|
|
64
69
|
/**
|
|
65
70
|
* Internal accessors shared by the Agent base and repository runtime.
|
|
@@ -74,13 +79,13 @@ export interface AgentHistoryReadAccess {
|
|
|
74
79
|
*/
|
|
75
80
|
bind<Id>(entity: object, binding: AgentHistoryBinding<Id>): void;
|
|
76
81
|
/**
|
|
77
|
-
* Binds a
|
|
82
|
+
* Binds a read interceptor for the current handler invocation.
|
|
78
83
|
*
|
|
79
84
|
* @param entity Agent with an existing repository history binding.
|
|
80
|
-
* @param
|
|
85
|
+
* @param interceptRead Intercepts current provider reads during the handler.
|
|
81
86
|
* @returns Callback that restores the original history binding after the handler finishes.
|
|
82
87
|
*/
|
|
83
|
-
|
|
88
|
+
withReadInterceptor(entity: object, interceptRead: AgentHistoryReadInterceptor): () => void;
|
|
84
89
|
/**
|
|
85
90
|
* Reads all categories.
|
|
86
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-history.d.ts","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,uBAAuB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACtB,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED
|
|
1
|
+
{"version":3,"file":"agent-history.d.ts","sourceRoot":"","sources":["../../src/agent/agent-history.ts"],"names":[],"mappings":"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"}
|