@warmio/contracts 1.2.0 → 3.0.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 (55) hide show
  1. package/README.md +3 -3
  2. package/dist/api/endpoints.d.ts +34 -48
  3. package/dist/api/endpoints.d.ts.map +1 -1
  4. package/dist/api/endpoints.js +36 -56
  5. package/dist/api/endpoints.js.map +1 -1
  6. package/dist/generated/base-openapi.d.ts +1 -1
  7. package/dist/generated/base-openapi.d.ts.map +1 -1
  8. package/dist/generated/base-openapi.js +1 -1
  9. package/dist/generated/base-openapi.js.map +1 -1
  10. package/dist/generated/mcp-package-release-metadata.d.ts +7 -0
  11. package/dist/generated/mcp-package-release-metadata.d.ts.map +1 -0
  12. package/dist/generated/mcp-package-release-metadata.js +7 -0
  13. package/dist/generated/mcp-package-release-metadata.js.map +1 -0
  14. package/dist/generated/private-mcp-tool-descriptors.d.ts +5 -47
  15. package/dist/generated/private-mcp-tool-descriptors.d.ts.map +1 -1
  16. package/dist/generated/private-mcp-tool-descriptors.js +7 -55
  17. package/dist/generated/private-mcp-tool-descriptors.js.map +1 -1
  18. package/dist/generated/warm-app-api-manifest.d.ts +1230 -0
  19. package/dist/generated/warm-app-api-manifest.d.ts.map +1 -0
  20. package/dist/generated/warm-app-api-manifest.js +1841 -0
  21. package/dist/generated/warm-app-api-manifest.js.map +1 -0
  22. package/dist/index.d.ts +0 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +0 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/manifest.d.ts +434 -1189
  27. package/dist/manifest.d.ts.map +1 -1
  28. package/dist/manifest.js +21 -34
  29. package/dist/manifest.js.map +1 -1
  30. package/dist/mcp/distribution.d.ts +221 -71
  31. package/dist/mcp/distribution.d.ts.map +1 -1
  32. package/dist/mcp/distribution.js +41 -47
  33. package/dist/mcp/distribution.js.map +1 -1
  34. package/dist/mcp/tools.d.ts +10 -23
  35. package/dist/mcp/tools.d.ts.map +1 -1
  36. package/dist/mcp/tools.js +8 -45
  37. package/dist/mcp/tools.js.map +1 -1
  38. package/dist/openapi/base.yaml +34 -60
  39. package/dist/openapi/build-openapi.d.ts +1 -0
  40. package/dist/openapi/build-openapi.d.ts.map +1 -1
  41. package/dist/openapi/build-openapi.js +75 -16
  42. package/dist/openapi/build-openapi.js.map +1 -1
  43. package/dist/schemas/index.d.ts +1 -0
  44. package/dist/schemas/index.d.ts.map +1 -1
  45. package/dist/schemas/index.js +1 -0
  46. package/dist/schemas/index.js.map +1 -1
  47. package/dist/schemas/public-api.d.ts +1350 -0
  48. package/dist/schemas/public-api.d.ts.map +1 -0
  49. package/dist/schemas/public-api.js +175 -0
  50. package/dist/schemas/public-api.js.map +1 -0
  51. package/package.json +1 -8
  52. package/dist/public-discovery.d.ts +0 -116
  53. package/dist/public-discovery.d.ts.map +0 -1
  54. package/dist/public-discovery.js +0 -91
  55. package/dist/public-discovery.js.map +0 -1
package/README.md CHANGED
@@ -9,9 +9,9 @@ import { buildOpenApiYaml } from '@warmio/contracts/openapi';
9
9
  ```
10
10
 
11
11
  `@warmio/contracts/manifest` is intentionally safe for docs, MCP, app, and edge consumers that need
12
- API, product, package-distribution, auth, rate-limit, endpoint, or MCP facts. Authenticated/local MCP
13
- definitions are exported from the root or `@warmio/contracts/mcp`; public discovery MCP tools remain
14
- owned by the edge worker.
12
+ API, package-distribution, auth, rate-limit, endpoint, or MCP facts. Authenticated/local MCP
13
+ definitions are exported from the root or `@warmio/contracts/mcp`; public discovery MCP contracts
14
+ are intentionally absent.
15
15
 
16
16
  Warm publishes this package from `jasonstockman/warm-app`. Warm is pre-public-user, so package
17
17
  versions coordinate exact internal dependency updates rather than promise backwards compatibility.
@@ -4,51 +4,35 @@ export declare const PUBLIC_DOCS_ORIGIN = "https://warm.io";
4
4
  export declare const PUBLIC_LLMS_TXT_PATH = "/llms.txt";
5
5
  export declare const OPENAPI_PATH = "/openapi.yaml";
6
6
  export declare const DEVELOPERS_PATH = "/developers";
7
- export declare const PUBLIC_DISCOVERY_MCP_PATH = "/mcp";
8
7
  export declare const VERIFY_PATH = "/api/verify";
9
- /** The complete public API-key audience contract. Every key, MCP, and discovery consumer derives from this registry. */
10
- export declare const apiAudienceRegistry: {
8
+ /** The one non-expiring account API key used by the public API and local MCP package. */
9
+ export declare const WARM_API_KEY_PREFIX: 'warm_';
10
+ export declare const WARM_API_KEY_RATE_LIMIT_PER_HOUR: 500;
11
+ export declare const apiKeyAuthScheme: {
12
+ readonly bearer_prefix: "warm_";
13
+ readonly challenge: 'Bearer';
14
+ readonly description: 'Warm API keys grant full access to the public API and local MCP tools.';
15
+ readonly methods: readonly ['Bearer'];
16
+ readonly scheme: 'bearer';
17
+ };
18
+ /**
19
+ * The credential capabilities accepted by each public endpoint class.
20
+ * JWTs are intentionally limited to the read-only class.
21
+ */
22
+ export declare const apiAuthorizationCapabilities: {
11
23
  readonly automation: {
12
- readonly auth: {
13
- readonly bearer_prefix: 'warm_auto_';
14
- readonly challenge: 'Bearer';
15
- readonly description: 'Automation routes require an automation API key.';
16
- readonly methods: readonly ['Bearer'];
17
- };
18
- readonly expires_in_days: 90;
19
- readonly mcp_mode: 'automation';
20
- readonly rate_limit_per_hour: 500;
21
- readonly scopes: readonly ['financial:read', 'automation:invoke'];
24
+ readonly acceptedAuthKinds: readonly ['api_key'];
25
+ readonly auditEventType: 'api_automation';
26
+ readonly openApiDescription: 'Automation endpoints require a Warm API key.';
22
27
  };
23
- readonly context: {
24
- readonly auth: {
25
- readonly bearer_prefix: 'warm_ctx_';
26
- readonly challenge: 'Bearer';
27
- readonly description: 'Read/export routes accept a Warm API key or signed-in access token.';
28
- readonly methods: readonly ['Bearer'];
29
- };
30
- readonly expires_in_days: null;
31
- readonly mcp_mode: 'context';
32
- readonly rate_limit_per_hour: 200;
33
- readonly scopes: readonly ['financial:read'];
28
+ readonly read_only: {
29
+ readonly acceptedAuthKinds: readonly ['api_key', 'supabase_jwt'];
30
+ readonly auditEventType: 'api_export';
31
+ readonly openApiDescription: 'Read endpoints accept a Warm API key or signed-in JWT.';
34
32
  };
35
33
  };
36
- export type ApiClientAudience = keyof typeof apiAudienceRegistry;
37
- export type ApiClientScope = (typeof apiAudienceRegistry)[ApiClientAudience]['scopes'][number];
38
- export declare const API_CLIENT_AUDIENCES: [ApiClientAudience, ...ApiClientAudience[]];
39
- export declare const API_CLIENT_SCOPES: ApiClientScope[];
40
- export declare const API_CLIENT_PRESETS: { readonly [Audience in ApiClientAudience]: {
41
- readonly expires_in_days: (typeof apiAudienceRegistry)[Audience]['expires_in_days'];
42
- readonly rate_limit_per_hour: (typeof apiAudienceRegistry)[Audience]['rate_limit_per_hour'];
43
- readonly scopes: (typeof apiAudienceRegistry)[Audience]['scopes'];
44
- }; };
45
- export declare const apiKeyPrefixesByAudience: { readonly [Audience in ApiClientAudience]: (typeof apiAudienceRegistry)[Audience]['auth']['bearer_prefix']; };
46
- export declare const apiAuthSchemes: { readonly [Audience in ApiClientAudience]: (typeof apiAudienceRegistry)[Audience]['auth'] & {
47
- readonly scheme: 'bearer';
48
- }; };
49
- export declare const apiRateLimits: { readonly [Audience in ApiClientAudience]: {
50
- readonly requests_per_hour: number;
51
- }; };
34
+ export type ApiEndpointAuthorization = keyof typeof apiAuthorizationCapabilities;
35
+ export type ApiAuthorizationCapability = (typeof apiAuthorizationCapabilities)[ApiEndpointAuthorization];
52
36
  export declare const automationOperationDescriptors: readonly [{
53
37
  readonly operation_id: "budgets.list";
54
38
  readonly method: "GET";
@@ -430,52 +414,54 @@ export declare const automationOperationDescriptors: readonly [{
430
414
  }];
431
415
  export type AutomationOperationId = (typeof automationOperationDescriptors)[number]['operation_id'];
432
416
  export declare const apiEndpointManifest: readonly [{
433
- readonly audience: 'context';
417
+ readonly authorization: 'read_only';
434
418
  readonly method: 'GET';
435
419
  readonly operation_id: 'verifyApiAccess';
436
420
  readonly path: "/api/verify";
437
421
  readonly summary: 'Verify API credentials';
438
422
  }, {
439
- readonly audience: 'context';
423
+ readonly authorization: 'read_only';
440
424
  readonly method: 'GET';
441
425
  readonly operation_id: 'getDatasetExport';
442
426
  readonly path: '/api/export';
443
427
  readonly summary: 'Get a typed dataset export';
444
428
  }, {
445
- readonly audience: 'context';
429
+ readonly authorization: 'read_only';
446
430
  readonly method: 'GET';
447
431
  readonly operation_id: 'getFinancialContext';
448
432
  readonly path: '/api/financial-context';
449
433
  readonly summary: 'Get compact financial context';
450
434
  }, {
451
- readonly audience: 'context';
435
+ readonly authorization: 'read_only';
452
436
  readonly method: 'GET';
453
437
  readonly operation_id: 'getFinancialContextTransactions';
454
438
  readonly path: '/api/financial-context/transactions';
455
439
  readonly summary: 'Get financial-context transactions';
456
440
  }, {
457
- readonly audience: 'context';
441
+ readonly authorization: 'read_only';
458
442
  readonly method: 'GET';
459
443
  readonly operation_id: 'getFinancialContextMeta';
460
444
  readonly path: '/api/financial-context/meta';
461
445
  readonly summary: 'Get financial-context metadata';
462
446
  }, {
463
- readonly audience: 'automation';
447
+ readonly authorization: 'automation';
464
448
  readonly method: 'POST';
465
449
  readonly operation_id: 'searchOperations';
466
450
  readonly path: '/api/automation/operations/search';
467
451
  readonly summary: 'Search supported automation operations';
468
452
  }, {
469
- readonly audience: 'automation';
453
+ readonly authorization: 'automation';
470
454
  readonly method: 'POST';
471
455
  readonly operation_id: 'describeOperation';
472
456
  readonly path: '/api/automation/operations/describe';
473
457
  readonly summary: 'Describe one supported operation';
474
458
  }, {
475
- readonly audience: 'automation';
459
+ readonly authorization: 'automation';
476
460
  readonly method: 'POST';
477
461
  readonly operation_id: 'invokeOperation';
478
462
  readonly path: '/api/automation/operations/invoke';
479
463
  readonly summary: 'Invoke one supported operation';
480
464
  }];
465
+ export type ApiEndpointOperationId = (typeof apiEndpointManifest)[number]['operation_id'];
466
+ export declare function apiEndpointAuthorizationFor(operationId: ApiEndpointOperationId): ApiAuthorizationCapability;
481
467
  //# sourceMappingURL=endpoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoints.d.ts","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,wBAAwB,CAAC;AAChD,eAAO,MAAM,gBAAgB,oBAAoB,CAAC;AAClD,eAAO,MAAM,kBAAkB,oBAAmB,CAAC;AACnD,eAAO,MAAM,oBAAoB,cAAc,CAAC;AAChD,eAAO,MAAM,YAAY,kBAAkB,CAAC;AAC5C,eAAO,MAAM,eAAe,gBAAgB,CAAC;AAC7C,eAAO,MAAM,WAAW,gBAAgB,CAAC;AAEzC,yFAAyF;AACzF,eAAO,MAAM,mBAAmB,EAAG,OAAgB,CAAC;AACpD,eAAO,MAAM,gCAAgC,EAAG,GAAY,CAAC;AAC7D,eAAO,MAAM,gBAAgB;aAC3B,aAAa;aACb,SAAS,EAAE,QAAQ;aACnB,WAAW,EAAE,wEAAwE;aACrF,OAAO,YAAG,QAAQ;aAClB,MAAM,EAAE,QAAQ;CACR,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,4BAA4B;aACvC,UAAU;iBACR,iBAAiB,YAAG,SAAS;iBAC7B,cAAc,EAAE,gBAAgB;iBAChC,kBAAkB,EAAE,8CAA8C;;aAEpE,SAAS;iBACP,iBAAiB,YAAG,SAAS,EAAE,cAAc;iBAC7C,cAAc,EAAE,YAAY;iBAC5B,kBAAkB,EAAE,wDAAwD;;CAEtE,CAAC;AAEX,MAAM,MAAM,wBAAwB,GAAG,MAAM,OAAO,4BAA4B,CAAC;AACjF,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,4BAA4B,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAmBlE,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiTkB,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,8BAA8B,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;AAEpG,eAAO,MAAM,mBAAmB;4BAEb,WAAW;qBAClB,KAAK;2BACC,iBAAiB;;sBAEtB,wBAAwB;;4BAGlB,WAAW;qBAClB,KAAK;2BACC,kBAAkB;mBAC1B,aAAa;sBACV,4BAA4B;;4BAGtB,WAAW;qBAClB,KAAK;2BACC,qBAAqB;mBAC7B,wBAAwB;sBACrB,+BAA+B;;4BAGzB,WAAW;qBAClB,KAAK;2BACC,iCAAiC;mBACzC,qCAAqC;sBAClC,oCAAoC;;4BAG9B,WAAW;qBAClB,KAAK;2BACC,yBAAyB;mBACjC,6BAA6B;sBAC1B,gCAAgC;;4BAG1B,YAAY;qBACnB,MAAM;2BACA,kBAAkB;mBAC1B,mCAAmC;sBAChC,wCAAwC;;4BAGlC,YAAY;qBACnB,MAAM;2BACA,mBAAmB;mBAC3B,qCAAqC;sBAClC,kCAAkC;;4BAG5B,YAAY;qBACnB,MAAM;2BACA,iBAAiB;mBACzB,mCAAmC;sBAChC,gCAAgC;EAEQ,CAAC;AAEtD,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;AAE1F,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,sBAAsB,GAClC,0BAA0B,CAI5B"}
@@ -4,59 +4,33 @@ export const PUBLIC_DOCS_ORIGIN = DISCOVERY_ORIGIN;
4
4
  export const PUBLIC_LLMS_TXT_PATH = '/llms.txt';
5
5
  export const OPENAPI_PATH = '/openapi.yaml';
6
6
  export const DEVELOPERS_PATH = '/developers';
7
- export const PUBLIC_DISCOVERY_MCP_PATH = '/mcp';
8
7
  export const VERIFY_PATH = '/api/verify';
9
- /** The complete public API-key audience contract. Every key, MCP, and discovery consumer derives from this registry. */
10
- export const apiAudienceRegistry = {
8
+ /** The one non-expiring account API key used by the public API and local MCP package. */
9
+ export const WARM_API_KEY_PREFIX = 'warm_';
10
+ export const WARM_API_KEY_RATE_LIMIT_PER_HOUR = 500;
11
+ export const apiKeyAuthScheme = {
12
+ bearer_prefix: WARM_API_KEY_PREFIX,
13
+ challenge: 'Bearer',
14
+ description: 'Warm API keys grant full access to the public API and local MCP tools.',
15
+ methods: ['Bearer'],
16
+ scheme: 'bearer',
17
+ };
18
+ /**
19
+ * The credential capabilities accepted by each public endpoint class.
20
+ * JWTs are intentionally limited to the read-only class.
21
+ */
22
+ export const apiAuthorizationCapabilities = {
11
23
  automation: {
12
- auth: {
13
- bearer_prefix: 'warm_auto_',
14
- challenge: 'Bearer',
15
- description: 'Automation routes require an automation API key.',
16
- methods: ['Bearer'],
17
- },
18
- expires_in_days: 90,
19
- mcp_mode: 'automation',
20
- rate_limit_per_hour: 500,
21
- scopes: ['financial:read', 'automation:invoke'],
24
+ acceptedAuthKinds: ['api_key'],
25
+ auditEventType: 'api_automation',
26
+ openApiDescription: 'Automation endpoints require a Warm API key.',
22
27
  },
23
- context: {
24
- auth: {
25
- bearer_prefix: 'warm_ctx_',
26
- challenge: 'Bearer',
27
- description: 'Read/export routes accept a Warm API key or signed-in access token.',
28
- methods: ['Bearer'],
29
- },
30
- expires_in_days: null,
31
- mcp_mode: 'context',
32
- rate_limit_per_hour: 200,
33
- scopes: ['financial:read'],
28
+ read_only: {
29
+ acceptedAuthKinds: ['api_key', 'supabase_jwt'],
30
+ auditEventType: 'api_export',
31
+ openApiDescription: 'Read endpoints accept a Warm API key or signed-in JWT.',
34
32
  },
35
33
  };
36
- export const API_CLIENT_AUDIENCES = Object.keys(apiAudienceRegistry);
37
- export const API_CLIENT_SCOPES = [
38
- ...new Set(Object.values(apiAudienceRegistry).flatMap(({ scopes }) => scopes)),
39
- ];
40
- export const API_CLIENT_PRESETS = Object.fromEntries(Object.entries(apiAudienceRegistry).map(([audience, definition]) => [
41
- audience,
42
- {
43
- expires_in_days: definition.expires_in_days,
44
- rate_limit_per_hour: definition.rate_limit_per_hour,
45
- scopes: definition.scopes,
46
- },
47
- ]));
48
- export const apiKeyPrefixesByAudience = Object.fromEntries(Object.entries(apiAudienceRegistry).map(([audience, definition]) => [
49
- audience,
50
- definition.auth.bearer_prefix,
51
- ]));
52
- export const apiAuthSchemes = Object.fromEntries(Object.entries(apiAudienceRegistry).map(([audience, definition]) => [
53
- audience,
54
- { ...definition.auth, scheme: 'bearer' },
55
- ]));
56
- export const apiRateLimits = Object.fromEntries(Object.entries(apiAudienceRegistry).map(([audience, definition]) => [
57
- audience,
58
- { requests_per_hour: definition.rate_limit_per_hour },
59
- ]));
60
34
  const operation = (descriptor) => ({
61
35
  ...descriptor,
62
36
  confirmation_required: descriptor.method !== 'GET',
@@ -370,60 +344,66 @@ export const automationOperationDescriptors = [
370
344
  ];
371
345
  export const apiEndpointManifest = [
372
346
  {
373
- audience: 'context',
347
+ authorization: 'read_only',
374
348
  method: 'GET',
375
349
  operation_id: 'verifyApiAccess',
376
350
  path: VERIFY_PATH,
377
351
  summary: 'Verify API credentials',
378
352
  },
379
353
  {
380
- audience: 'context',
354
+ authorization: 'read_only',
381
355
  method: 'GET',
382
356
  operation_id: 'getDatasetExport',
383
357
  path: '/api/export',
384
358
  summary: 'Get a typed dataset export',
385
359
  },
386
360
  {
387
- audience: 'context',
361
+ authorization: 'read_only',
388
362
  method: 'GET',
389
363
  operation_id: 'getFinancialContext',
390
364
  path: '/api/financial-context',
391
365
  summary: 'Get compact financial context',
392
366
  },
393
367
  {
394
- audience: 'context',
368
+ authorization: 'read_only',
395
369
  method: 'GET',
396
370
  operation_id: 'getFinancialContextTransactions',
397
371
  path: '/api/financial-context/transactions',
398
372
  summary: 'Get financial-context transactions',
399
373
  },
400
374
  {
401
- audience: 'context',
375
+ authorization: 'read_only',
402
376
  method: 'GET',
403
377
  operation_id: 'getFinancialContextMeta',
404
378
  path: '/api/financial-context/meta',
405
379
  summary: 'Get financial-context metadata',
406
380
  },
407
381
  {
408
- audience: 'automation',
382
+ authorization: 'automation',
409
383
  method: 'POST',
410
384
  operation_id: 'searchOperations',
411
385
  path: '/api/automation/operations/search',
412
386
  summary: 'Search supported automation operations',
413
387
  },
414
388
  {
415
- audience: 'automation',
389
+ authorization: 'automation',
416
390
  method: 'POST',
417
391
  operation_id: 'describeOperation',
418
392
  path: '/api/automation/operations/describe',
419
393
  summary: 'Describe one supported operation',
420
394
  },
421
395
  {
422
- audience: 'automation',
396
+ authorization: 'automation',
423
397
  method: 'POST',
424
398
  operation_id: 'invokeOperation',
425
399
  path: '/api/automation/operations/invoke',
426
400
  summary: 'Invoke one supported operation',
427
401
  },
428
402
  ];
403
+ export function apiEndpointAuthorizationFor(operationId) {
404
+ const endpoint = apiEndpointManifest.find((candidate) => candidate.operation_id === operationId);
405
+ if (!endpoint)
406
+ throw new Error(`Missing API endpoint authorization for ${operationId}.`);
407
+ return apiAuthorizationCapabilities[endpoint.authorization];
408
+ }
429
409
  //# sourceMappingURL=endpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../src/api/endpoints.ts"],"names":[],"mappings":"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"}