@ai-sdk/harness-acp 1.0.30 → 1.0.32

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.
@@ -4,8 +4,8 @@
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "dependencies": {
7
- "@agentclientprotocol/sdk": "1.2.1",
8
- "@modelcontextprotocol/sdk": "1.29.0",
7
+ "@agentclientprotocol/sdk": "1.4.0",
8
+ "@modelcontextprotocol/sdk": "1.30.0",
9
9
  "ws": "8.21.0",
10
10
  "zod": "4.4.3"
11
11
  }
@@ -9,11 +9,11 @@ importers:
9
9
  .:
10
10
  dependencies:
11
11
  '@agentclientprotocol/sdk':
12
- specifier: 1.2.1
13
- version: 1.2.1(zod@4.4.3)
12
+ specifier: 1.4.0
13
+ version: 1.4.0(zod@4.4.3)
14
14
  '@modelcontextprotocol/sdk':
15
- specifier: 1.29.0
16
- version: 1.29.0(zod@4.4.3)
15
+ specifier: 1.30.0
16
+ version: 1.30.0(zod@4.4.3)
17
17
  ws:
18
18
  specifier: 8.21.0
19
19
  version: 8.21.0
@@ -23,19 +23,19 @@ importers:
23
23
 
24
24
  packages:
25
25
 
26
- '@agentclientprotocol/sdk@1.2.1':
27
- resolution: {integrity: sha512-jwYUdOQR7tc+Zfch53VL4JJyUNK/46q03uUTYb+PjECsmnNl94XFXOfYLJ8RBpMNidXd1rpOAVgb0vqD98xImA==}
26
+ '@agentclientprotocol/sdk@1.4.0':
27
+ resolution: {integrity: sha512-/eufudw+aFY1LKLolT6yFE6UMmYRl7fMJ/DEONSIyR6wI3slHWITBsANRGqXEY8FRzqUxwh7QEaGiZHcJPVThg==}
28
28
  peerDependencies:
29
29
  zod: ^3.25.0 || ^4.0.0
30
30
 
31
- '@hono/node-server@1.19.14':
32
- resolution: {integrity: sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==}
33
- engines: {node: '>=18.14.1'}
31
+ '@hono/node-server@2.1.1':
32
+ resolution: {integrity: sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==}
33
+ engines: {node: '>=20'}
34
34
  peerDependencies:
35
35
  hono: ^4
36
36
 
37
- '@modelcontextprotocol/sdk@1.29.0':
38
- resolution: {integrity: sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==}
37
+ '@modelcontextprotocol/sdk@1.30.0':
38
+ resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==}
39
39
  engines: {node: '>=18'}
40
40
  peerDependencies:
41
41
  '@cfworker/json-schema': ^4.1.1
@@ -83,8 +83,8 @@ packages:
83
83
  resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==}
84
84
  engines: {node: '>= 0.6'}
85
85
 
86
- content-type@2.0.0:
87
- resolution: {integrity: sha512-j/O/d7GcZCyNl7/hwZAb606rzqkyvaDctLmckbxLzHvFBzTJHuGEdodATcP3yIRoDrLHkIATJuvzbFlp/ki2cQ==}
86
+ content-type@2.1.0:
87
+ resolution: {integrity: sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==}
88
88
  engines: {node: '>=18'}
89
89
 
90
90
  cookie-signature@1.2.2:
@@ -146,16 +146,16 @@ packages:
146
146
  resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
147
147
  engines: {node: '>= 0.6'}
148
148
 
149
- eventsource-parser@3.1.0:
150
- resolution: {integrity: sha512-kJezFj9YFAMLeORyi7aCLxLbD5/qWMQnoMVlVPyHIll7lgRJCc3JVln9Vgl9nwQi0YkMnhdGTMNn7CkRRAptMg==}
149
+ eventsource-parser@3.1.1:
150
+ resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==}
151
151
  engines: {node: '>=18.0.0'}
152
152
 
153
153
  eventsource@3.0.7:
154
154
  resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==}
155
155
  engines: {node: '>=18.0.0'}
156
156
 
157
- express-rate-limit@8.6.0:
158
- resolution: {integrity: sha512-XKJXDsASUOo0LLtFwW5hCcQGH0N4WQc/Rn8/Pvoia+TJFOkkFPvrtW9lZOeeNcxQJspvOIERMwiRLsVFlhHEkA==}
157
+ express-rate-limit@8.6.2:
158
+ resolution: {integrity: sha512-YH4ru+eOJxQABscKFfRCy9R7x9QFGdezclVMwwgFFndzS2Xnm0uo6B0ABZsLhcpeptGv2qvuJVWlQr9gQZoC3A==}
159
159
  engines: {node: '>= 16'}
160
160
  peerDependencies:
161
161
  express: '>= 4.11'
@@ -167,8 +167,8 @@ packages:
167
167
  fast-deep-equal@3.1.3:
168
168
  resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
169
169
 
170
- fast-uri@3.1.4:
171
- resolution: {integrity: sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==}
170
+ fast-uri@3.1.6:
171
+ resolution: {integrity: sha512-7Ical1vFEMr0onbVzEDIreM22I4khW+fzyQPwvAFWBp1iwdshSZRsL4jjRvPG9JP1uiqMHRto+YU6R2/CzDz5Q==}
172
172
 
173
173
  finalhandler@2.1.1:
174
174
  resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==}
@@ -205,8 +205,8 @@ packages:
205
205
  resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==}
206
206
  engines: {node: '>= 0.4'}
207
207
 
208
- hono@4.12.31:
209
- resolution: {integrity: sha512-zJIHFrl6bq3RDd2YusFNCDlM8qUprxKswyi/OPzPyzKDdyBXDqWx8bZlZ7R+saTdSTatUmb3O7K4SspGPaEOQg==}
208
+ hono@4.13.4:
209
+ resolution: {integrity: sha512-AGEwKIyRMHRv1t8Wjwa3LHxQ61X5CqrdFT+4BRNTpqS5aJNnpl5WLjADb7vFlJzI/8uK7T5QLVApCMQKNa3LgQ==}
210
210
  engines: {node: '>=16.9.0'}
211
211
 
212
212
  http-errors@2.0.1:
@@ -220,8 +220,8 @@ packages:
220
220
  inherits@2.0.4:
221
221
  resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
222
222
 
223
- ip-address@10.2.0:
224
- resolution: {integrity: sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==}
223
+ ip-address@10.5.0:
224
+ resolution: {integrity: sha512-R5SnVLJmgYYvf2F2ZgwSBnelz5G4q5AxIC277GDfUaNbrZKNANcBC7RHqYYePlszf4kBolVkJauG0ZjHHFh55g==}
225
225
  engines: {node: '>= 12'}
226
226
 
227
227
  ipaddr.js@1.9.1:
@@ -234,8 +234,8 @@ packages:
234
234
  isexe@2.0.0:
235
235
  resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
236
236
 
237
- jose@6.2.4:
238
- resolution: {integrity: sha512-N8acGzVsQy6M/fjFcxtysNc4Q379TcM5dM/qKkNtsHFji88yANnXTr7BLeP75iPnFwBfQzM/jg2BZ9+HZrHCZA==}
237
+ jose@6.2.10:
238
+ resolution: {integrity: sha512-iiW7J9qRFlGxvCOIBDBDxFePQSn7ZMAnrYGhrrOo6siO/MIqwfyilLR27pkfDgUk+raLuzADS8A3S/KLBisc0g==}
239
239
 
240
240
  json-schema-traverse@1.0.0:
241
241
  resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
@@ -247,8 +247,8 @@ packages:
247
247
  resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==}
248
248
  engines: {node: '>= 0.4'}
249
249
 
250
- media-typer@1.1.0:
251
- resolution: {integrity: sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==}
250
+ media-typer@1.1.1:
251
+ resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==}
252
252
  engines: {node: '>= 0.8'}
253
253
 
254
254
  merge-descriptors@2.0.0:
@@ -266,9 +266,9 @@ packages:
266
266
  ms@2.1.3:
267
267
  resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
268
268
 
269
- negotiator@1.0.0:
270
- resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
271
- engines: {node: '>= 0.6'}
269
+ negotiator@1.1.0:
270
+ resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==}
271
+ engines: {node: '>=18'}
272
272
 
273
273
  object-assign@4.1.1:
274
274
  resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
@@ -412,28 +412,28 @@ packages:
412
412
 
413
413
  snapshots:
414
414
 
415
- '@agentclientprotocol/sdk@1.2.1(zod@4.4.3)':
415
+ '@agentclientprotocol/sdk@1.4.0(zod@4.4.3)':
416
416
  dependencies:
417
417
  zod: 4.4.3
418
418
 
419
- '@hono/node-server@1.19.14(hono@4.12.31)':
419
+ '@hono/node-server@2.1.1(hono@4.13.4)':
420
420
  dependencies:
421
- hono: 4.12.31
421
+ hono: 4.13.4
422
422
 
423
- '@modelcontextprotocol/sdk@1.29.0(zod@4.4.3)':
423
+ '@modelcontextprotocol/sdk@1.30.0(zod@4.4.3)':
424
424
  dependencies:
425
- '@hono/node-server': 1.19.14(hono@4.12.31)
425
+ '@hono/node-server': 2.1.1(hono@4.13.4)
426
426
  ajv: 8.20.0
427
427
  ajv-formats: 3.0.1(ajv@8.20.0)
428
428
  content-type: 1.0.5
429
429
  cors: 2.8.6
430
430
  cross-spawn: 7.0.6
431
431
  eventsource: 3.0.7
432
- eventsource-parser: 3.1.0
432
+ eventsource-parser: 3.1.1
433
433
  express: 5.2.1
434
- express-rate-limit: 8.6.0(express@5.2.1)
435
- hono: 4.12.31
436
- jose: 6.2.4
434
+ express-rate-limit: 8.6.2(express@5.2.1)
435
+ hono: 4.13.4
436
+ jose: 6.2.10
437
437
  json-schema-typed: 8.0.2
438
438
  pkce-challenge: 5.0.1
439
439
  raw-body: 3.0.2
@@ -445,7 +445,7 @@ snapshots:
445
445
  accepts@2.0.0:
446
446
  dependencies:
447
447
  mime-types: 3.0.2
448
- negotiator: 1.0.0
448
+ negotiator: 1.1.0
449
449
 
450
450
  ajv-formats@3.0.1(ajv@8.20.0):
451
451
  optionalDependencies:
@@ -454,14 +454,14 @@ snapshots:
454
454
  ajv@8.20.0:
455
455
  dependencies:
456
456
  fast-deep-equal: 3.1.3
457
- fast-uri: 3.1.4
457
+ fast-uri: 3.1.6
458
458
  json-schema-traverse: 1.0.0
459
459
  require-from-string: 2.0.2
460
460
 
461
461
  body-parser@2.3.0:
462
462
  dependencies:
463
463
  bytes: 3.1.2
464
- content-type: 2.0.0
464
+ content-type: 2.1.0
465
465
  debug: 4.4.3
466
466
  http-errors: 2.0.1
467
467
  iconv-lite: 0.7.3
@@ -488,7 +488,7 @@ snapshots:
488
488
 
489
489
  content-type@1.0.5: {}
490
490
 
491
- content-type@2.0.0: {}
491
+ content-type@2.1.0: {}
492
492
 
493
493
  cookie-signature@1.2.2: {}
494
494
 
@@ -533,17 +533,17 @@ snapshots:
533
533
 
534
534
  etag@1.8.1: {}
535
535
 
536
- eventsource-parser@3.1.0: {}
536
+ eventsource-parser@3.1.1: {}
537
537
 
538
538
  eventsource@3.0.7:
539
539
  dependencies:
540
- eventsource-parser: 3.1.0
540
+ eventsource-parser: 3.1.1
541
541
 
542
- express-rate-limit@8.6.0(express@5.2.1):
542
+ express-rate-limit@8.6.2(express@5.2.1):
543
543
  dependencies:
544
544
  debug: 4.4.3
545
545
  express: 5.2.1
546
- ip-address: 10.2.0
546
+ ip-address: 10.5.0
547
547
  transitivePeerDependencies:
548
548
  - supports-color
549
549
 
@@ -582,7 +582,7 @@ snapshots:
582
582
 
583
583
  fast-deep-equal@3.1.3: {}
584
584
 
585
- fast-uri@3.1.4: {}
585
+ fast-uri@3.1.6: {}
586
586
 
587
587
  finalhandler@2.1.1:
588
588
  dependencies:
@@ -627,7 +627,7 @@ snapshots:
627
627
  dependencies:
628
628
  function-bind: 1.1.2
629
629
 
630
- hono@4.12.31: {}
630
+ hono@4.13.4: {}
631
631
 
632
632
  http-errors@2.0.1:
633
633
  dependencies:
@@ -643,7 +643,7 @@ snapshots:
643
643
 
644
644
  inherits@2.0.4: {}
645
645
 
646
- ip-address@10.2.0: {}
646
+ ip-address@10.5.0: {}
647
647
 
648
648
  ipaddr.js@1.9.1: {}
649
649
 
@@ -651,7 +651,7 @@ snapshots:
651
651
 
652
652
  isexe@2.0.0: {}
653
653
 
654
- jose@6.2.4: {}
654
+ jose@6.2.10: {}
655
655
 
656
656
  json-schema-traverse@1.0.0: {}
657
657
 
@@ -659,7 +659,7 @@ snapshots:
659
659
 
660
660
  math-intrinsics@1.1.0: {}
661
661
 
662
- media-typer@1.1.0: {}
662
+ media-typer@1.1.1: {}
663
663
 
664
664
  merge-descriptors@2.0.0: {}
665
665
 
@@ -671,7 +671,9 @@ snapshots:
671
671
 
672
672
  ms@2.1.3: {}
673
673
 
674
- negotiator@1.0.0: {}
674
+ negotiator@1.1.0:
675
+ dependencies:
676
+ content-type: 2.1.0
675
677
 
676
678
  object-assign@4.1.1: {}
677
679
 
@@ -793,8 +795,8 @@ snapshots:
793
795
 
794
796
  type-is@2.1.0:
795
797
  dependencies:
796
- content-type: 2.0.0
797
- media-typer: 1.1.0
798
+ content-type: 2.1.0
799
+ media-typer: 1.1.1
798
800
  mime-types: 3.0.2
799
801
 
800
802
  unpipe@1.0.0: {}
package/dist/index.d.ts CHANGED
@@ -145,6 +145,13 @@ type ACPProviderAuthentication = {
145
145
  readonly env: Readonly<Record<string, ACPProfileValue>>;
146
146
  };
147
147
  };
148
+ type ACPModelMapping = {
149
+ readonly type: 'session-config-option';
150
+ readonly path: string;
151
+ } | {
152
+ readonly type: 'session-model';
153
+ readonly path: string;
154
+ };
148
155
  type ACPCredentialBrokering = ({ env, sandboxEnv, }: {
149
156
  env: Readonly<Record<string, string>>;
150
157
  sandboxEnv?: Readonly<Record<string, string>>;
@@ -199,7 +206,15 @@ type ACPV1Settings = {
199
206
  */
200
207
  readonly env?: Readonly<Record<string, string>>;
201
208
  readonly authentication?: ACPAuthentication;
209
+ readonly clientCapabilities?: Readonly<Record<string, ACPSerializableValue>>;
202
210
  readonly providerAuthentication?: ACPProviderAuthentication;
211
+ /**
212
+ * Maps the HarnessAgent model identifier to an ACP session operation.
213
+ */
214
+ readonly modelMapping: ACPModelMapping;
215
+ /**
216
+ * @deprecated Use `model` on `HarnessAgent` instead.
217
+ */
203
218
  readonly modelId?: string;
204
219
  /**
205
220
  * Native skills directory relative to the ACP implementation's home
@@ -208,7 +223,8 @@ type ACPV1Settings = {
208
223
  readonly skillsDirectory?: string;
209
224
  /**
210
225
  * Routes HarnessAgent instructions to a runtime-native system or developer
211
- * prompt. When omitted, instructions are prepended to the first user prompt.
226
+ * prompt. Changed instructions are prepended to the next user prompt when
227
+ * ACP does not expose a native per-turn instruction update.
212
228
  */
213
229
  readonly instructionMapping?: ACPInstructionMapping;
214
230
  /**
@@ -266,7 +282,15 @@ type ACPHarnessSettings<TBuiltinTools extends ToolSet = {}> = {
266
282
  readonly credentialForwarding?: ACPV1Settings['credentialForwarding'];
267
283
  readonly env?: ACPV1Settings['env'];
268
284
  readonly authentication?: ACPV1Settings['authentication'];
285
+ readonly clientCapabilities?: ACPV1Settings['clientCapabilities'];
269
286
  readonly providerAuthentication?: ACPV1Settings['providerAuthentication'];
287
+ /**
288
+ * Maps the HarnessAgent model identifier to an ACP session operation.
289
+ */
290
+ readonly modelMapping: ACPV1Settings['modelMapping'];
291
+ /**
292
+ * @deprecated Use `model` on `HarnessAgent` instead.
293
+ */
270
294
  readonly modelId?: ACPV1Settings['modelId'];
271
295
  readonly skillsDirectory?: ACPV1Settings['skillsDirectory'];
272
296
  readonly instructionMapping?: ACPV1Settings['instructionMapping'];
@@ -279,4 +303,4 @@ declare function createACP<TBuiltinTools extends ToolSet = {}>(settings: ACPHarn
279
303
 
280
304
  declare const VERSION: string;
281
305
 
282
- export { type ACPAnnotations, type ACPAudioContent, type ACPAuthentication, type ACPAuthenticationMode, type ACPBlobResourceContents, type ACPClientApp, type ACPContentBlock, type ACPCredentialBrokering, type ACPEmbeddedResource, type ACPHarnessSettings, type ACPImageContent, type ACPInstallCommandSource, type ACPInstructionMapping, type ACPMetadata, type ACPNpmLockedSource, type ACPNpmSimpleSource, type ACPOutputSchemaMapping, type ACPPermissionModeMapping, type ACPPermissionModeTarget, type ACPProfileValue, type ACPProviderAuthentication, type ACPResourceLink, type ACPRole, type ACPSerializablePrimitive, type ACPSerializableValue, type ACPSource, type ACPTextContent, type ACPTextResourceContents, type ACPToolCall, type ACPToolCallContent, type ACPToolCallLocation, type ACPToolCallStatus, type ACPToolKind, type ACPV1Settings, type ACPValueSource, VERSION, createACP };
306
+ export { type ACPAnnotations, type ACPAudioContent, type ACPAuthentication, type ACPAuthenticationMode, type ACPBlobResourceContents, type ACPClientApp, type ACPContentBlock, type ACPCredentialBrokering, type ACPEmbeddedResource, type ACPHarnessSettings, type ACPImageContent, type ACPInstallCommandSource, type ACPInstructionMapping, type ACPMetadata, type ACPModelMapping, type ACPNpmLockedSource, type ACPNpmSimpleSource, type ACPOutputSchemaMapping, type ACPPermissionModeMapping, type ACPPermissionModeTarget, type ACPProfileValue, type ACPProviderAuthentication, type ACPResourceLink, type ACPRole, type ACPSerializablePrimitive, type ACPSerializableValue, type ACPSource, type ACPTextContent, type ACPTextResourceContents, type ACPToolCall, type ACPToolCallContent, type ACPToolCallLocation, type ACPToolCallStatus, type ACPToolKind, type ACPV1Settings, type ACPValueSource, VERSION, createACP };