@acme-engine/core 0.1.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.
Files changed (137) hide show
  1. package/dist/common.d.ts +40 -0
  2. package/dist/common.d.ts.map +1 -0
  3. package/dist/common.js +2 -0
  4. package/dist/common.js.map +1 -0
  5. package/dist/contracts.d.ts +65 -0
  6. package/dist/contracts.d.ts.map +1 -0
  7. package/dist/contracts.js +2 -0
  8. package/dist/contracts.js.map +1 -0
  9. package/dist/errors.d.ts +24 -0
  10. package/dist/errors.d.ts.map +1 -0
  11. package/dist/errors.js +20 -0
  12. package/dist/errors.js.map +1 -0
  13. package/dist/evaluation.d.ts +14 -0
  14. package/dist/evaluation.d.ts.map +1 -0
  15. package/dist/evaluation.js +2 -0
  16. package/dist/evaluation.js.map +1 -0
  17. package/dist/execution-engine.d.ts +30 -0
  18. package/dist/execution-engine.d.ts.map +1 -0
  19. package/dist/execution-engine.js +885 -0
  20. package/dist/execution-engine.js.map +1 -0
  21. package/dist/execution-identity.d.ts +35 -0
  22. package/dist/execution-identity.d.ts.map +1 -0
  23. package/dist/execution-identity.js +177 -0
  24. package/dist/execution-identity.js.map +1 -0
  25. package/dist/execution-status.d.ts +2 -0
  26. package/dist/execution-status.d.ts.map +1 -0
  27. package/dist/execution-status.js +2 -0
  28. package/dist/execution-status.js.map +1 -0
  29. package/dist/execution-types.d.ts +58 -0
  30. package/dist/execution-types.d.ts.map +1 -0
  31. package/dist/execution-types.js +2 -0
  32. package/dist/execution-types.js.map +1 -0
  33. package/dist/hashing.d.ts +6 -0
  34. package/dist/hashing.d.ts.map +1 -0
  35. package/dist/hashing.js +73 -0
  36. package/dist/hashing.js.map +1 -0
  37. package/dist/index.d.ts +34 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +33 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/memory-engine.d.ts +13 -0
  42. package/dist/memory-engine.d.ts.map +1 -0
  43. package/dist/memory-engine.js +591 -0
  44. package/dist/memory-engine.js.map +1 -0
  45. package/dist/memory.d.ts +151 -0
  46. package/dist/memory.d.ts.map +1 -0
  47. package/dist/memory.js +2 -0
  48. package/dist/memory.js.map +1 -0
  49. package/dist/model-call-usage.d.ts +40 -0
  50. package/dist/model-call-usage.d.ts.map +1 -0
  51. package/dist/model-call-usage.js +0 -0
  52. package/dist/model-call-usage.js.map +1 -0
  53. package/dist/model-execution-engine.d.ts +16 -0
  54. package/dist/model-execution-engine.d.ts.map +1 -0
  55. package/dist/model-execution-engine.js +598 -0
  56. package/dist/model-execution-engine.js.map +1 -0
  57. package/dist/model-execution-identity.d.ts +16 -0
  58. package/dist/model-execution-identity.d.ts.map +1 -0
  59. package/dist/model-execution-identity.js +84 -0
  60. package/dist/model-execution-identity.js.map +1 -0
  61. package/dist/model-execution-types.d.ts +66 -0
  62. package/dist/model-execution-types.d.ts.map +1 -0
  63. package/dist/model-execution-types.js +8 -0
  64. package/dist/model-execution-types.js.map +1 -0
  65. package/dist/model-gateway-router.d.ts +11 -0
  66. package/dist/model-gateway-router.d.ts.map +1 -0
  67. package/dist/model-gateway-router.js +69 -0
  68. package/dist/model-gateway-router.js.map +1 -0
  69. package/dist/model-request-hash.d.ts +5 -0
  70. package/dist/model-request-hash.d.ts.map +1 -0
  71. package/dist/model-request-hash.js +11 -0
  72. package/dist/model-request-hash.js.map +1 -0
  73. package/dist/model-response-hash.d.ts +5 -0
  74. package/dist/model-response-hash.d.ts.map +1 -0
  75. package/dist/model-response-hash.js +11 -0
  76. package/dist/model-response-hash.js.map +1 -0
  77. package/dist/model-validation.d.ts +11 -0
  78. package/dist/model-validation.d.ts.map +1 -0
  79. package/dist/model-validation.js +580 -0
  80. package/dist/model-validation.js.map +1 -0
  81. package/dist/model.d.ts +125 -0
  82. package/dist/model.d.ts.map +1 -0
  83. package/dist/model.js +4 -0
  84. package/dist/model.js.map +1 -0
  85. package/dist/modules.d.ts +83 -0
  86. package/dist/modules.d.ts.map +1 -0
  87. package/dist/modules.js +7 -0
  88. package/dist/modules.js.map +1 -0
  89. package/dist/outbox.d.ts +88 -0
  90. package/dist/outbox.d.ts.map +1 -0
  91. package/dist/outbox.js +180 -0
  92. package/dist/outbox.js.map +1 -0
  93. package/dist/payload-encryptor.d.ts +92 -0
  94. package/dist/payload-encryptor.d.ts.map +1 -0
  95. package/dist/payload-encryptor.js +173 -0
  96. package/dist/payload-encryptor.js.map +1 -0
  97. package/dist/registries.d.ts +5 -0
  98. package/dist/registries.d.ts.map +1 -0
  99. package/dist/registries.js +159 -0
  100. package/dist/registries.js.map +1 -0
  101. package/dist/repository-digest.d.ts +5 -0
  102. package/dist/repository-digest.d.ts.map +1 -0
  103. package/dist/repository-digest.js +25 -0
  104. package/dist/repository-digest.js.map +1 -0
  105. package/dist/repository-model-call.d.ts +43 -0
  106. package/dist/repository-model-call.d.ts.map +1 -0
  107. package/dist/repository-model-call.js +2 -0
  108. package/dist/repository-model-call.js.map +1 -0
  109. package/dist/repository-model-execution.d.ts +49 -0
  110. package/dist/repository-model-execution.d.ts.map +1 -0
  111. package/dist/repository-model-execution.js +2 -0
  112. package/dist/repository-model-execution.js.map +1 -0
  113. package/dist/repository.d.ts +260 -0
  114. package/dist/repository.d.ts.map +1 -0
  115. package/dist/repository.js +2 -0
  116. package/dist/repository.js.map +1 -0
  117. package/dist/response-pipeline.d.ts +3 -0
  118. package/dist/response-pipeline.d.ts.map +1 -0
  119. package/dist/response-pipeline.js +132 -0
  120. package/dist/response-pipeline.js.map +1 -0
  121. package/dist/state-engine.d.ts +19 -0
  122. package/dist/state-engine.d.ts.map +1 -0
  123. package/dist/state-engine.js +272 -0
  124. package/dist/state-engine.js.map +1 -0
  125. package/dist/state-projection.d.ts +5 -0
  126. package/dist/state-projection.d.ts.map +1 -0
  127. package/dist/state-projection.js +145 -0
  128. package/dist/state-projection.js.map +1 -0
  129. package/dist/state.d.ts +41 -0
  130. package/dist/state.d.ts.map +1 -0
  131. package/dist/state.js +2 -0
  132. package/dist/state.js.map +1 -0
  133. package/dist/stranded-execution.d.ts +59 -0
  134. package/dist/stranded-execution.d.ts.map +1 -0
  135. package/dist/stranded-execution.js +235 -0
  136. package/dist/stranded-execution.js.map +1 -0
  137. package/package.json +36 -0
@@ -0,0 +1,151 @@
1
+ import type { EntityId, ExecutionId, IsoTimestamp, JsonValue, ModelCallId, Namespace } from './common.js';
2
+ import type { ContractRef } from './contracts.js';
3
+ import type { DomainIssue } from './state.js';
4
+ export interface ProvenanceRef {
5
+ readonly executionId: ExecutionId;
6
+ readonly contract: ContractRef;
7
+ readonly modelCallId?: ModelCallId;
8
+ readonly documentKeys: readonly string[];
9
+ }
10
+ export interface MemoryCandidate {
11
+ readonly key: string;
12
+ readonly kind: string;
13
+ readonly schemaVersion: string;
14
+ readonly value: JsonValue;
15
+ readonly confidence?: number;
16
+ readonly source: ProvenanceRef;
17
+ }
18
+ export interface MemoryRecord {
19
+ readonly memoryId: string;
20
+ readonly namespace: Namespace;
21
+ readonly entityId: EntityId;
22
+ readonly identityKey: string;
23
+ readonly kind: string;
24
+ readonly schemaVersion: string;
25
+ readonly value: JsonValue;
26
+ readonly strength: number;
27
+ readonly status: 'active' | 'superseded' | 'contested' | 'forgotten';
28
+ readonly firstSeenAt: IsoTimestamp;
29
+ readonly lastSeenAt: IsoTimestamp;
30
+ readonly lastReinforcedAt: IsoTimestamp;
31
+ readonly provenance: readonly ProvenanceRef[];
32
+ readonly recordVersion: number;
33
+ }
34
+ export interface MemoryQuery {
35
+ readonly namespace: Namespace;
36
+ readonly entityId: EntityId;
37
+ readonly task: string;
38
+ readonly kinds?: readonly string[];
39
+ readonly text?: string;
40
+ readonly limit: number;
41
+ }
42
+ export interface RankedMemory {
43
+ readonly record: MemoryRecord;
44
+ readonly score: number;
45
+ readonly reasons: readonly string[];
46
+ }
47
+ export type MemoryLifecycleDecision = {
48
+ readonly action: 'retain';
49
+ } | {
50
+ readonly action: 'update-strength';
51
+ readonly strength: number;
52
+ } | {
53
+ readonly action: 'forget';
54
+ readonly reason: string;
55
+ };
56
+ export type MemoryLifecycleHook = 'execution-start' | 'execution-commit' | 'maintenance';
57
+ export type MemoryResolution = {
58
+ readonly candidateKey: string;
59
+ readonly action: 'create';
60
+ readonly value: JsonValue;
61
+ readonly strength: number;
62
+ } | {
63
+ readonly candidateKey: string;
64
+ readonly action: 'reinforce';
65
+ readonly memoryId: string;
66
+ readonly strength: number;
67
+ } | {
68
+ readonly candidateKey: string;
69
+ readonly action: 'merge';
70
+ readonly memoryId: string;
71
+ readonly value: JsonValue;
72
+ readonly strength: number;
73
+ } | {
74
+ readonly candidateKey: string;
75
+ readonly action: 'contradict';
76
+ readonly memoryIds: readonly string[];
77
+ readonly disposition: 'contest';
78
+ } | {
79
+ readonly candidateKey: string;
80
+ readonly action: 'contradict';
81
+ readonly memoryIds: readonly string[];
82
+ readonly disposition: 'reject-candidate';
83
+ } | {
84
+ readonly candidateKey: string;
85
+ readonly action: 'contradict';
86
+ readonly memoryIds: readonly string[];
87
+ readonly disposition: 'supersede-existing';
88
+ readonly replacement: {
89
+ readonly value: JsonValue;
90
+ readonly strength: number;
91
+ };
92
+ } | {
93
+ readonly candidateKey: string;
94
+ readonly action: 'ignore';
95
+ readonly reason: string;
96
+ };
97
+ export type AppliedMemoryResolution = Exclude<MemoryResolution, {
98
+ readonly action: 'ignore';
99
+ } | {
100
+ readonly action: 'contradict';
101
+ readonly disposition: 'reject-candidate';
102
+ }>;
103
+ export interface MemoryPrepareContext {
104
+ readonly namespace: Namespace;
105
+ readonly entityId: EntityId;
106
+ readonly executionId: ExecutionId;
107
+ readonly now: IsoTimestamp;
108
+ }
109
+ export interface MemoryLifecycleContext {
110
+ readonly namespace: Namespace;
111
+ readonly entityId: EntityId;
112
+ readonly now: IsoTimestamp;
113
+ }
114
+ export type MemoryMutation = {
115
+ readonly action: 'create';
116
+ readonly record: MemoryRecord;
117
+ } | {
118
+ readonly action: 'update';
119
+ readonly expectedRecordVersion: number;
120
+ readonly record: MemoryRecord;
121
+ };
122
+ export interface PreparedMemoryDecision {
123
+ readonly candidateKey: string;
124
+ readonly identityKey: string;
125
+ readonly resolution: MemoryResolution;
126
+ readonly affectedMemoryIds: readonly string[];
127
+ }
128
+ export interface PreparedMemory {
129
+ readonly decisions: readonly PreparedMemoryDecision[];
130
+ readonly mutations: readonly MemoryMutation[];
131
+ }
132
+ export interface PreparedMemoryLifecycleDecision {
133
+ readonly memoryId: string;
134
+ readonly decision: MemoryLifecycleDecision;
135
+ }
136
+ export interface PreparedMemoryLifecycle {
137
+ readonly decisions: readonly PreparedMemoryLifecycleDecision[];
138
+ readonly mutations: readonly MemoryMutation[];
139
+ }
140
+ export interface DomainMemoryPolicy {
141
+ validate(candidate: MemoryCandidate): readonly DomainIssue[];
142
+ identity(candidate: MemoryCandidate): string;
143
+ retrieve(query: MemoryQuery, records: readonly MemoryRecord[]): readonly RankedMemory[];
144
+ resolve(candidate: MemoryCandidate, existing: readonly MemoryRecord[], context: {
145
+ readonly now: IsoTimestamp;
146
+ }): MemoryResolution;
147
+ lifecycle(record: MemoryRecord, hook: MemoryLifecycleHook, context: {
148
+ readonly now: IsoTimestamp;
149
+ }): MemoryLifecycleDecision;
150
+ }
151
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":"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"}
package/dist/memory.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../src/memory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import type { ModelCallRecord } from './repository-model-call.js';
2
+ /**
3
+ * What a set of recorded provider calls actually consumed.
4
+ *
5
+ * ADR-0044 governs cost by measurement rather than by a campaign ceiling, so
6
+ * this reads recorded evidence and never estimates. Absent usage stays absent:
7
+ * a provider that reports no token counts produces `null`, never `0`, because
8
+ * a zero would read as a free call. `callsReportingUsage` says how much of the
9
+ * set the totals actually cover, so a partial total cannot be mistaken for a
10
+ * complete one.
11
+ */
12
+ export interface ModelCallUsageSummary {
13
+ readonly calls: number;
14
+ readonly succeeded: number;
15
+ readonly failed: number;
16
+ readonly ambiguous: number;
17
+ readonly pending: number;
18
+ readonly callsReportingUsage: number;
19
+ readonly inputTokens: number | null;
20
+ readonly outputTokens: number | null;
21
+ readonly totalTokens: number | null;
22
+ readonly estimatedCostMinor: number | null;
23
+ /** `null` when no call priced itself, or when priced calls disagree. */
24
+ readonly currency: string | null;
25
+ readonly models: readonly ModelCallUsageByModel[];
26
+ }
27
+ export interface ModelCallUsageByModel {
28
+ readonly provider: string;
29
+ readonly model: string;
30
+ readonly calls: number;
31
+ }
32
+ /**
33
+ * Summarize recorded calls. Pure: no clock, no I/O, no pricing table.
34
+ *
35
+ * Cost is reported only where the provider supplied it. Deriving cost from a
36
+ * local price list would report an estimate as evidence, which is exactly the
37
+ * confusion this replaces.
38
+ */
39
+ export declare function summarizeModelCallUsage(records: readonly ModelCallRecord[]): ModelCallUsageSummary;
40
+ //# sourceMappingURL=model-call-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-call-usage.d.ts","sourceRoot":"","sources":["../src/model-call-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAElE;;;;;;;;;GASG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAOD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,eAAe,EAAE,GAClC,qBAAqB,CAgFvB"}
Binary file
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-call-usage.js","sourceRoot":"","sources":["../src/model-call-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { Clock, Hashing, IdGenerator } from './common.js';
2
+ import { type ModelExecuteOptions, type ModelExecutionRequest, type ModelExecutionResult } from './model-execution-types.js';
3
+ import { type ModelGateway } from './model.js';
4
+ import type { ModelExecutionRepository } from './repository-model-execution.js';
5
+ export interface ModelExecutionEngineOptions {
6
+ readonly clock: Clock;
7
+ readonly ids: IdGenerator;
8
+ readonly gateway: ModelGateway;
9
+ readonly repository: ModelExecutionRepository;
10
+ readonly hashing?: Hashing;
11
+ }
12
+ export interface ModelExecutionEngine {
13
+ execute(request: ModelExecutionRequest, options?: ModelExecuteOptions): Promise<ModelExecutionResult>;
14
+ }
15
+ export declare function createModelExecutionEngine(options: ModelExecutionEngineOptions): ModelExecutionEngine;
16
+ //# sourceMappingURL=model-execution-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-execution-engine.d.ts","sourceRoot":"","sources":["../src/model-execution-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAa,MAAM,aAAa,CAAC;AAa1E,OAAO,EAGL,KAAK,mBAAmB,EAGxB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAEL,KAAK,YAAY,EAGlB,MAAM,YAAY,CAAC;AAUpB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;IAC9C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CACL,OAAO,EAAE,qBAAqB,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAClC;AA2sBD,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,oBAAoB,CAEtB"}