@cdklabs/cdk-appmod-catalog-blueprints 1.5.0 → 1.6.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 (92) hide show
  1. package/.jsii +2537 -204
  2. package/lib/document-processing/adapter/adapter.d.ts +4 -2
  3. package/lib/document-processing/adapter/adapter.js +1 -1
  4. package/lib/document-processing/adapter/queued-s3-adapter.d.ts +9 -2
  5. package/lib/document-processing/adapter/queued-s3-adapter.js +29 -15
  6. package/lib/document-processing/agentic-document-processing.d.ts +4 -0
  7. package/lib/document-processing/agentic-document-processing.js +20 -10
  8. package/lib/document-processing/base-document-processing.d.ts +54 -2
  9. package/lib/document-processing/base-document-processing.js +136 -82
  10. package/lib/document-processing/bedrock-document-processing.d.ts +202 -2
  11. package/lib/document-processing/bedrock-document-processing.js +717 -77
  12. package/lib/document-processing/chunking-config.d.ts +614 -0
  13. package/lib/document-processing/chunking-config.js +5 -0
  14. package/lib/document-processing/default-document-processing-config.js +1 -1
  15. package/lib/document-processing/index.d.ts +1 -0
  16. package/lib/document-processing/index.js +2 -1
  17. package/lib/document-processing/resources/aggregation/handler.py +567 -0
  18. package/lib/document-processing/resources/aggregation/requirements.txt +7 -0
  19. package/lib/document-processing/resources/aggregation/test_handler.py +362 -0
  20. package/lib/document-processing/resources/cleanup/handler.py +276 -0
  21. package/lib/document-processing/resources/cleanup/requirements.txt +5 -0
  22. package/lib/document-processing/resources/cleanup/test_handler.py +436 -0
  23. package/lib/document-processing/resources/default-bedrock-invoke/index.py +85 -3
  24. package/lib/document-processing/resources/default-bedrock-invoke/test_index.py +622 -0
  25. package/lib/document-processing/resources/pdf-chunking/README.md +313 -0
  26. package/lib/document-processing/resources/pdf-chunking/chunking_strategies.py +460 -0
  27. package/lib/document-processing/resources/pdf-chunking/error_handling.py +491 -0
  28. package/lib/document-processing/resources/pdf-chunking/handler.py +958 -0
  29. package/lib/document-processing/resources/pdf-chunking/metrics.py +435 -0
  30. package/lib/document-processing/resources/pdf-chunking/requirements.txt +3 -0
  31. package/lib/document-processing/resources/pdf-chunking/strategy_selection.py +420 -0
  32. package/lib/document-processing/resources/pdf-chunking/structured_logging.py +457 -0
  33. package/lib/document-processing/resources/pdf-chunking/test_chunking_strategies.py +353 -0
  34. package/lib/document-processing/resources/pdf-chunking/test_error_handling.py +487 -0
  35. package/lib/document-processing/resources/pdf-chunking/test_handler.py +609 -0
  36. package/lib/document-processing/resources/pdf-chunking/test_integration.py +694 -0
  37. package/lib/document-processing/resources/pdf-chunking/test_metrics.py +532 -0
  38. package/lib/document-processing/resources/pdf-chunking/test_strategy_selection.py +471 -0
  39. package/lib/document-processing/resources/pdf-chunking/test_structured_logging.py +449 -0
  40. package/lib/document-processing/resources/pdf-chunking/test_token_estimation.py +374 -0
  41. package/lib/document-processing/resources/pdf-chunking/token_estimation.py +189 -0
  42. package/lib/document-processing/tests/agentic-document-processing-nag.test.js +4 -3
  43. package/lib/document-processing/tests/agentic-document-processing.test.js +488 -4
  44. package/lib/document-processing/tests/base-document-processing-nag.test.js +9 -2
  45. package/lib/document-processing/tests/base-document-processing-schema.test.d.ts +1 -0
  46. package/lib/document-processing/tests/base-document-processing-schema.test.js +337 -0
  47. package/lib/document-processing/tests/base-document-processing.test.js +114 -8
  48. package/lib/document-processing/tests/bedrock-document-processing-chunking-nag.test.d.ts +1 -0
  49. package/lib/document-processing/tests/bedrock-document-processing-chunking-nag.test.js +382 -0
  50. package/lib/document-processing/tests/bedrock-document-processing-nag.test.js +4 -3
  51. package/lib/document-processing/tests/bedrock-document-processing-security.test.d.ts +1 -0
  52. package/lib/document-processing/tests/bedrock-document-processing-security.test.js +389 -0
  53. package/lib/document-processing/tests/bedrock-document-processing.test.js +808 -8
  54. package/lib/document-processing/tests/chunking-config.test.d.ts +1 -0
  55. package/lib/document-processing/tests/chunking-config.test.js +238 -0
  56. package/lib/document-processing/tests/queued-s3-adapter-nag.test.js +9 -2
  57. package/lib/document-processing/tests/queued-s3-adapter.test.js +17 -6
  58. package/lib/framework/agents/base-agent.js +1 -1
  59. package/lib/framework/agents/batch-agent.js +1 -1
  60. package/lib/framework/agents/default-agent-config.js +1 -1
  61. package/lib/framework/bedrock/bedrock.js +1 -1
  62. package/lib/framework/custom-resource/default-runtimes.js +1 -1
  63. package/lib/framework/foundation/access-log.js +1 -1
  64. package/lib/framework/foundation/eventbridge-broker.js +1 -1
  65. package/lib/framework/foundation/network.js +1 -1
  66. package/lib/framework/tests/access-log.test.js +5 -2
  67. package/lib/framework/tests/batch-agent.test.js +5 -2
  68. package/lib/framework/tests/bedrock.test.js +5 -2
  69. package/lib/framework/tests/eventbridge-broker.test.js +5 -2
  70. package/lib/framework/tests/framework-nag.test.js +16 -8
  71. package/lib/framework/tests/network.test.js +9 -4
  72. package/lib/tsconfig.tsbuildinfo +1 -1
  73. package/lib/utilities/data-loader.js +1 -1
  74. package/lib/utilities/lambda-iam-utils.js +1 -1
  75. package/lib/utilities/observability/cloudfront-distribution-observability-property-injector.js +1 -1
  76. package/lib/utilities/observability/default-observability-config.js +1 -1
  77. package/lib/utilities/observability/lambda-observability-property-injector.js +1 -1
  78. package/lib/utilities/observability/log-group-data-protection-utils.js +1 -1
  79. package/lib/utilities/observability/powertools-config.d.ts +10 -1
  80. package/lib/utilities/observability/powertools-config.js +19 -3
  81. package/lib/utilities/observability/state-machine-observability-property-injector.js +1 -1
  82. package/lib/utilities/test-utils.d.ts +43 -0
  83. package/lib/utilities/test-utils.js +56 -0
  84. package/lib/utilities/tests/data-loader-nag.test.js +3 -2
  85. package/lib/utilities/tests/data-loader.test.js +3 -2
  86. package/lib/webapp/frontend-construct.js +1 -1
  87. package/lib/webapp/tests/frontend-construct-nag.test.js +3 -2
  88. package/lib/webapp/tests/frontend-construct.test.js +3 -2
  89. package/package.json +6 -5
  90. package/lib/document-processing/resources/default-error-handler/index.js +0 -46
  91. package/lib/document-processing/resources/default-pdf-processor/index.js +0 -46
  92. package/lib/document-processing/resources/default-pdf-validator/index.js +0 -36
package/.jsii CHANGED
@@ -4114,7 +4114,7 @@
4114
4114
  "stability": "experimental"
4115
4115
  },
4116
4116
  "homepage": "https://github.com/cdklabs/cdk-appmod-catalog-blueprints.git",
4117
- "jsiiVersion": "5.9.14 (build 9fc28bd)",
4117
+ "jsiiVersion": "5.9.22 (build b81c634)",
4118
4118
  "keywords": [
4119
4119
  "cdk"
4120
4120
  ],
@@ -4717,7 +4717,7 @@
4717
4717
  },
4718
4718
  "locationInModule": {
4719
4719
  "filename": "use-cases/document-processing/agentic-document-processing.ts",
4720
- "line": 17
4720
+ "line": 22
4721
4721
  },
4722
4722
  "parameters": [
4723
4723
  {
@@ -4751,13 +4751,13 @@
4751
4751
  "methods": [
4752
4752
  {
4753
4753
  "docs": {
4754
- "remarks": "Creates a Lambda function that invokes the configured Bedrock model to extract\nstructured data from the document. Uses the classification result from the\nprevious step to provide context for more accurate extraction.",
4754
+ "remarks": "Creates a Lambda function that invokes the configured Bedrock model to extract\nstructured data from the document. Uses the classification result from the\nprevious step to provide context for more accurate extraction.\n\nThis method caches the Lambda function to avoid creating duplicate resources,\nbut creates a new LambdaInvoke task each time to allow proper state chaining.",
4755
4755
  "stability": "experimental",
4756
4756
  "summary": "Implements the document extraction step using Amazon Bedrock."
4757
4757
  },
4758
4758
  "locationInModule": {
4759
4759
  "filename": "use-cases/document-processing/agentic-document-processing.ts",
4760
- "line": 21
4760
+ "line": 26
4761
4761
  },
4762
4762
  "name": "processingStep",
4763
4763
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockDocumentProcessing",
@@ -4820,6 +4820,203 @@
4820
4820
  ],
4821
4821
  "symbolId": "use-cases/document-processing/agentic-document-processing:AgenticDocumentProcessingProps"
4822
4822
  },
4823
+ "@cdklabs/cdk-appmod-catalog-blueprints.AggregatedResult": {
4824
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
4825
+ "datatype": true,
4826
+ "docs": {
4827
+ "remarks": "Combines classification and extraction results into final output.",
4828
+ "stability": "experimental",
4829
+ "summary": "Aggregated result from processing all chunks."
4830
+ },
4831
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.AggregatedResult",
4832
+ "kind": "interface",
4833
+ "locationInModule": {
4834
+ "filename": "use-cases/document-processing/chunking-config.ts",
4835
+ "line": 637
4836
+ },
4837
+ "name": "AggregatedResult",
4838
+ "properties": [
4839
+ {
4840
+ "abstract": true,
4841
+ "docs": {
4842
+ "stability": "experimental",
4843
+ "summary": "Summary of chunk processing results."
4844
+ },
4845
+ "immutable": true,
4846
+ "locationInModule": {
4847
+ "filename": "use-cases/document-processing/chunking-config.ts",
4848
+ "line": 664
4849
+ },
4850
+ "name": "chunksSummary",
4851
+ "type": {
4852
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunksSummary"
4853
+ }
4854
+ },
4855
+ {
4856
+ "abstract": true,
4857
+ "docs": {
4858
+ "stability": "experimental",
4859
+ "summary": "Final document classification (from majority vote or other strategy)."
4860
+ },
4861
+ "immutable": true,
4862
+ "locationInModule": {
4863
+ "filename": "use-cases/document-processing/chunking-config.ts",
4864
+ "line": 646
4865
+ },
4866
+ "name": "classification",
4867
+ "type": {
4868
+ "primitive": "string"
4869
+ }
4870
+ },
4871
+ {
4872
+ "abstract": true,
4873
+ "docs": {
4874
+ "remarks": "For majority vote: (count of majority / total chunks)",
4875
+ "stability": "experimental",
4876
+ "summary": "Confidence score for the classification (0-1)."
4877
+ },
4878
+ "immutable": true,
4879
+ "locationInModule": {
4880
+ "filename": "use-cases/document-processing/chunking-config.ts",
4881
+ "line": 652
4882
+ },
4883
+ "name": "classificationConfidence",
4884
+ "type": {
4885
+ "primitive": "number"
4886
+ }
4887
+ },
4888
+ {
4889
+ "abstract": true,
4890
+ "docs": {
4891
+ "stability": "experimental",
4892
+ "summary": "Document identifier."
4893
+ },
4894
+ "immutable": true,
4895
+ "locationInModule": {
4896
+ "filename": "use-cases/document-processing/chunking-config.ts",
4897
+ "line": 641
4898
+ },
4899
+ "name": "documentId",
4900
+ "type": {
4901
+ "primitive": "string"
4902
+ }
4903
+ },
4904
+ {
4905
+ "abstract": true,
4906
+ "docs": {
4907
+ "remarks": "Entities without page numbers are deduplicated by (type, value).\nEntities with page numbers are preserved even if duplicated.",
4908
+ "stability": "experimental",
4909
+ "summary": "Deduplicated entities from all chunks."
4910
+ },
4911
+ "immutable": true,
4912
+ "locationInModule": {
4913
+ "filename": "use-cases/document-processing/chunking-config.ts",
4914
+ "line": 659
4915
+ },
4916
+ "name": "entities",
4917
+ "type": {
4918
+ "collection": {
4919
+ "elementtype": {
4920
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.Entity"
4921
+ },
4922
+ "kind": "array"
4923
+ }
4924
+ }
4925
+ },
4926
+ {
4927
+ "abstract": true,
4928
+ "docs": {
4929
+ "remarks": "True if fewer than minSuccessThreshold chunks succeeded.",
4930
+ "stability": "experimental",
4931
+ "summary": "Indicates if result is partial due to chunk failures."
4932
+ },
4933
+ "immutable": true,
4934
+ "locationInModule": {
4935
+ "filename": "use-cases/document-processing/chunking-config.ts",
4936
+ "line": 670
4937
+ },
4938
+ "name": "partialResult",
4939
+ "type": {
4940
+ "primitive": "boolean"
4941
+ }
4942
+ }
4943
+ ],
4944
+ "symbolId": "use-cases/document-processing/chunking-config:AggregatedResult"
4945
+ },
4946
+ "@cdklabs/cdk-appmod-catalog-blueprints.AggregationRequest": {
4947
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
4948
+ "datatype": true,
4949
+ "docs": {
4950
+ "remarks": "Contains results from all processed chunks.",
4951
+ "stability": "experimental",
4952
+ "summary": "Request payload for aggregation Lambda."
4953
+ },
4954
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.AggregationRequest",
4955
+ "kind": "interface",
4956
+ "locationInModule": {
4957
+ "filename": "use-cases/document-processing/chunking-config.ts",
4958
+ "line": 590
4959
+ },
4960
+ "name": "AggregationRequest",
4961
+ "properties": [
4962
+ {
4963
+ "abstract": true,
4964
+ "docs": {
4965
+ "stability": "experimental",
4966
+ "summary": "Results from all processed chunks."
4967
+ },
4968
+ "immutable": true,
4969
+ "locationInModule": {
4970
+ "filename": "use-cases/document-processing/chunking-config.ts",
4971
+ "line": 599
4972
+ },
4973
+ "name": "chunkResults",
4974
+ "type": {
4975
+ "collection": {
4976
+ "elementtype": {
4977
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkResult"
4978
+ },
4979
+ "kind": "array"
4980
+ }
4981
+ }
4982
+ },
4983
+ {
4984
+ "abstract": true,
4985
+ "docs": {
4986
+ "stability": "experimental",
4987
+ "summary": "Document identifier."
4988
+ },
4989
+ "immutable": true,
4990
+ "locationInModule": {
4991
+ "filename": "use-cases/document-processing/chunking-config.ts",
4992
+ "line": 594
4993
+ },
4994
+ "name": "documentId",
4995
+ "type": {
4996
+ "primitive": "string"
4997
+ }
4998
+ },
4999
+ {
5000
+ "abstract": true,
5001
+ "docs": {
5002
+ "default": "'majority-vote'",
5003
+ "stability": "experimental",
5004
+ "summary": "Strategy to use for aggregation."
5005
+ },
5006
+ "immutable": true,
5007
+ "locationInModule": {
5008
+ "filename": "use-cases/document-processing/chunking-config.ts",
5009
+ "line": 605
5010
+ },
5011
+ "name": "aggregationStrategy",
5012
+ "optional": true,
5013
+ "type": {
5014
+ "primitive": "string"
5015
+ }
5016
+ }
5017
+ ],
5018
+ "symbolId": "use-cases/document-processing/chunking-config:AggregationRequest"
5019
+ },
4823
5020
  "@cdklabs/cdk-appmod-catalog-blueprints.BaseAgent": {
4824
5021
  "abstract": true,
4825
5022
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
@@ -5155,7 +5352,7 @@
5155
5352
  },
5156
5353
  "locationInModule": {
5157
5354
  "filename": "use-cases/document-processing/base-document-processing.ts",
5158
- "line": 458
5355
+ "line": 546
5159
5356
  },
5160
5357
  "name": "classificationStep",
5161
5358
  "protected": true,
@@ -5177,6 +5374,57 @@
5177
5374
  }
5178
5375
  }
5179
5376
  },
5377
+ {
5378
+ "abstract": true,
5379
+ "docs": {
5380
+ "remarks": "Concrete implementations can customize this to handle preprocessing results.\nFor example, BedrockDocumentProcessing uses this to add conditional branching\nfor chunked vs non-chunked documents.\n\nImplementations can call `createStandardProcessingWorkflow()` to reuse the\nstandard processing flow (Classification → Processing → Enrichment → PostProcessing).",
5381
+ "returns": "Step Functions chain for processing the document",
5382
+ "stability": "experimental",
5383
+ "summary": "Creates the processing workflow after preprocessing and initialization."
5384
+ },
5385
+ "locationInModule": {
5386
+ "filename": "use-cases/document-processing/base-document-processing.ts",
5387
+ "line": 339
5388
+ },
5389
+ "name": "createProcessingWorkflow",
5390
+ "protected": true,
5391
+ "returns": {
5392
+ "type": {
5393
+ "fqn": "aws-cdk-lib.aws_stepfunctions.IChainable"
5394
+ }
5395
+ }
5396
+ },
5397
+ {
5398
+ "docs": {
5399
+ "remarks": "This is the existing workflow: Classification → Processing → Enrichment → PostProcessing\nConcrete classes can call this method to reuse the standard flow when they don't\nneed custom workflow branching.",
5400
+ "returns": "Step Functions chain for standard processing",
5401
+ "stability": "experimental",
5402
+ "summary": "Creates the standard processing workflow (no preprocessing customization)."
5403
+ },
5404
+ "locationInModule": {
5405
+ "filename": "use-cases/document-processing/base-document-processing.ts",
5406
+ "line": 351
5407
+ },
5408
+ "name": "createStandardProcessingWorkflow",
5409
+ "parameters": [
5410
+ {
5411
+ "docs": {
5412
+ "summary": "Optional prefix for construct IDs to ensure uniqueness when called multiple times."
5413
+ },
5414
+ "name": "idPrefix",
5415
+ "optional": true,
5416
+ "type": {
5417
+ "primitive": "string"
5418
+ }
5419
+ }
5420
+ ],
5421
+ "protected": true,
5422
+ "returns": {
5423
+ "type": {
5424
+ "fqn": "aws-cdk-lib.aws_stepfunctions.IChainable"
5425
+ }
5426
+ }
5427
+ },
5180
5428
  {
5181
5429
  "abstract": true,
5182
5430
  "docs": {
@@ -5187,7 +5435,7 @@
5187
5435
  },
5188
5436
  "locationInModule": {
5189
5437
  "filename": "use-cases/document-processing/base-document-processing.ts",
5190
- "line": 478
5438
+ "line": 566
5191
5439
  },
5192
5440
  "name": "enrichmentStep",
5193
5441
  "protected": true,
@@ -5240,7 +5488,7 @@
5240
5488
  },
5241
5489
  "locationInModule": {
5242
5490
  "filename": "use-cases/document-processing/base-document-processing.ts",
5243
- "line": 446
5491
+ "line": 289
5244
5492
  },
5245
5493
  "name": "metrics",
5246
5494
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IObservable",
@@ -5265,7 +5513,7 @@
5265
5513
  },
5266
5514
  "locationInModule": {
5267
5515
  "filename": "use-cases/document-processing/base-document-processing.ts",
5268
- "line": 488
5516
+ "line": 576
5269
5517
  },
5270
5518
  "name": "postProcessingStep",
5271
5519
  "protected": true,
@@ -5288,6 +5536,64 @@
5288
5536
  }
5289
5537
  }
5290
5538
  },
5539
+ {
5540
+ "docs": {
5541
+ "default": "{} (no additional metadata)",
5542
+ "remarks": "This method is called during InitMetadata creation and allows subclasses to extend\nthe DynamoDB schema with their own fields without the base class knowing the details.\n\nThe base class provides the core document fields (DocumentId, ContentType, etc.),\nand subclasses can add their own fields (e.g., chunking metadata) by overriding this method.",
5543
+ "returns": "Record of additional DynamoDB attribute values to include in InitMetadata",
5544
+ "stability": "experimental",
5545
+ "summary": "Hook for concrete implementations to add preprocessing-specific metadata to DynamoDB."
5546
+ },
5547
+ "locationInModule": {
5548
+ "filename": "use-cases/document-processing/base-document-processing.ts",
5549
+ "line": 321
5550
+ },
5551
+ "name": "preprocessingMetadata",
5552
+ "protected": true,
5553
+ "returns": {
5554
+ "type": {
5555
+ "collection": {
5556
+ "elementtype": {
5557
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.DynamoAttributeValue"
5558
+ },
5559
+ "kind": "map"
5560
+ }
5561
+ }
5562
+ }
5563
+ },
5564
+ {
5565
+ "abstract": true,
5566
+ "docs": {
5567
+ "remarks": "This step runs BEFORE Init Metadata and can be used for:\n- Document chunking for large files\n- Document validation\n- Format conversion\n- Any other preprocessing needed before classification\n\nConcrete implementations can return undefined to skip preprocessing,\nmaintaining backward compatibility with existing workflows.",
5568
+ "returns": "Step Functions task for preprocessing, or undefined to skip this step",
5569
+ "stability": "experimental",
5570
+ "summary": "Defines the optional preprocessing step of the workflow."
5571
+ },
5572
+ "locationInModule": {
5573
+ "filename": "use-cases/document-processing/base-document-processing.ts",
5574
+ "line": 307
5575
+ },
5576
+ "name": "preprocessingStep",
5577
+ "protected": true,
5578
+ "returns": {
5579
+ "optional": true,
5580
+ "type": {
5581
+ "union": {
5582
+ "types": [
5583
+ {
5584
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke"
5585
+ },
5586
+ {
5587
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.BedrockInvokeModel"
5588
+ },
5589
+ {
5590
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.StepFunctionsStartExecution"
5591
+ }
5592
+ ]
5593
+ }
5594
+ }
5595
+ }
5596
+ },
5291
5597
  {
5292
5598
  "abstract": true,
5293
5599
  "docs": {
@@ -5298,7 +5604,7 @@
5298
5604
  },
5299
5605
  "locationInModule": {
5300
5606
  "filename": "use-cases/document-processing/base-document-processing.ts",
5301
- "line": 468
5607
+ "line": 556
5302
5608
  },
5303
5609
  "name": "processingStep",
5304
5610
  "protected": true,
@@ -5740,13 +6046,16 @@
5740
6046
  "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockDocumentProcessing",
5741
6047
  "initializer": {
5742
6048
  "docs": {
6049
+ "custom": {
6050
+ "throws": "Error if chunking configuration is invalid"
6051
+ },
5743
6052
  "remarks": "Initializes the Bedrock-powered document processing pipeline with AI classification\nand extraction capabilities. Creates Lambda functions with appropriate IAM roles\nfor Bedrock model invocation and S3 access.",
5744
6053
  "stability": "experimental",
5745
6054
  "summary": "Creates a new BedrockDocumentProcessing construct."
5746
6055
  },
5747
6056
  "locationInModule": {
5748
6057
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5749
- "line": 140
6058
+ "line": 255
5750
6059
  },
5751
6060
  "parameters": [
5752
6061
  {
@@ -5782,19 +6091,19 @@
5782
6091
  "kind": "class",
5783
6092
  "locationInModule": {
5784
6093
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5785
- "line": 92
6094
+ "line": 164
5786
6095
  },
5787
6096
  "methods": [
5788
6097
  {
5789
6098
  "docs": {
5790
- "remarks": "Creates a Lambda function that invokes the configured Bedrock model to classify\nthe document type. The function reads the document from S3 and sends it to\nBedrock with the classification prompt.",
6099
+ "remarks": "Creates a Lambda function that invokes the configured Bedrock model to classify\nthe document type. The function reads the document from S3 and sends it to\nBedrock with the classification prompt.\n\nThis method caches the Lambda function to avoid creating duplicate resources,\nbut creates a new LambdaInvoke task each time to allow proper state chaining.",
5791
6100
  "returns": "LambdaInvoke task configured for document classification",
5792
6101
  "stability": "experimental",
5793
6102
  "summary": "Implements the document classification step using Amazon Bedrock."
5794
6103
  },
5795
6104
  "locationInModule": {
5796
6105
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5797
- "line": 160
6106
+ "line": 365
5798
6107
  },
5799
6108
  "name": "classificationStep",
5800
6109
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
@@ -5817,6 +6126,26 @@
5817
6126
  }
5818
6127
  }
5819
6128
  },
6129
+ {
6130
+ "docs": {
6131
+ "remarks": "When chunking is enabled, creates a Choice State that:\n- Routes to chunked processing flow if document was chunked\n- Routes to standard processing flow if document was not chunked\n\nWhen chunking is disabled, returns the standard processing workflow.",
6132
+ "returns": "Step Functions chain for processing the document",
6133
+ "stability": "experimental",
6134
+ "summary": "Creates the processing workflow with conditional branching for chunked documents."
6135
+ },
6136
+ "locationInModule": {
6137
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6138
+ "line": 716
6139
+ },
6140
+ "name": "createProcessingWorkflow",
6141
+ "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
6142
+ "protected": true,
6143
+ "returns": {
6144
+ "type": {
6145
+ "fqn": "aws-cdk-lib.aws_stepfunctions.IChainable"
6146
+ }
6147
+ }
6148
+ },
5820
6149
  {
5821
6150
  "docs": {
5822
6151
  "remarks": "If an enrichment Lambda function is provided in the props, creates a LambdaInvoke\ntask to perform additional processing on the extracted data. This step is useful\nfor data validation, transformation, or integration with external systems.",
@@ -5826,7 +6155,7 @@
5826
6155
  },
5827
6156
  "locationInModule": {
5828
6157
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5829
- "line": 301
6158
+ "line": 532
5830
6159
  },
5831
6160
  "name": "enrichmentStep",
5832
6161
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
@@ -5856,7 +6185,7 @@
5856
6185
  },
5857
6186
  "locationInModule": {
5858
6187
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5859
- "line": 278
6188
+ "line": 508
5860
6189
  },
5861
6190
  "name": "generateLambdaRoleForBedrock",
5862
6191
  "parameters": [
@@ -5890,7 +6219,7 @@
5890
6219
  },
5891
6220
  "locationInModule": {
5892
6221
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5893
- "line": 321
6222
+ "line": 557
5894
6223
  },
5895
6224
  "name": "postProcessingStep",
5896
6225
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
@@ -5916,31 +6245,89 @@
5916
6245
  },
5917
6246
  {
5918
6247
  "docs": {
5919
- "remarks": "Creates a Lambda function that invokes the configured Bedrock model to extract\nstructured data from the document. Uses the classification result from the\nprevious step to provide context for more accurate extraction.",
5920
- "returns": "LambdaInvoke task configured for document extraction",
6248
+ "remarks": "When chunking is enabled, adds fields for:\n- ChunkingEnabled: string representation of boolean flag\n- ChunkingStrategy: strategy used (fixed-pages, token-based, hybrid)\n- TokenAnalysis: JSON string with token analysis results\n- ChunkMetadata: JSON string array with chunk information",
6249
+ "returns": "Record of DynamoDB attribute values for chunking metadata",
5921
6250
  "stability": "experimental",
5922
- "summary": "Implements the document extraction step using Amazon Bedrock."
6251
+ "summary": "Provides additional metadata fields for chunking to be stored in DynamoDB."
5923
6252
  },
5924
6253
  "locationInModule": {
5925
6254
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5926
- "line": 224
6255
+ "line": 684
5927
6256
  },
5928
- "name": "processingStep",
6257
+ "name": "preprocessingMetadata",
5929
6258
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
5930
6259
  "protected": true,
5931
6260
  "returns": {
5932
6261
  "type": {
5933
- "union": {
5934
- "types": [
5935
- {
5936
- "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke"
5937
- },
5938
- {
5939
- "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.BedrockInvokeModel"
5940
- },
5941
- {
5942
- "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.StepFunctionsStartExecution"
5943
- }
6262
+ "collection": {
6263
+ "elementtype": {
6264
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.DynamoAttributeValue"
6265
+ },
6266
+ "kind": "map"
6267
+ }
6268
+ }
6269
+ }
6270
+ },
6271
+ {
6272
+ "docs": {
6273
+ "remarks": "When chunking is enabled, creates a Lambda function that analyzes PDFs and\nsplits large documents into manageable chunks. The function:\n1. Analyzes the PDF to determine page count and token estimates\n2. Decides if chunking is needed based on configured thresholds\n3. If chunking is needed, splits the PDF and uploads chunks to S3",
6274
+ "returns": "LambdaInvoke task for PDF analysis and chunking, or undefined if chunking is disabled",
6275
+ "stability": "experimental",
6276
+ "summary": "Implements the optional preprocessing step for PDF chunking."
6277
+ },
6278
+ "locationInModule": {
6279
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6280
+ "line": 585
6281
+ },
6282
+ "name": "preprocessingStep",
6283
+ "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
6284
+ "protected": true,
6285
+ "returns": {
6286
+ "optional": true,
6287
+ "type": {
6288
+ "union": {
6289
+ "types": [
6290
+ {
6291
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke"
6292
+ },
6293
+ {
6294
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.BedrockInvokeModel"
6295
+ },
6296
+ {
6297
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.StepFunctionsStartExecution"
6298
+ }
6299
+ ]
6300
+ }
6301
+ }
6302
+ }
6303
+ },
6304
+ {
6305
+ "docs": {
6306
+ "remarks": "Creates a Lambda function that invokes the configured Bedrock model to extract\nstructured data from the document. Uses the classification result from the\nprevious step to provide context for more accurate extraction.\n\nThis method caches the Lambda function to avoid creating duplicate resources,\nbut creates a new LambdaInvoke task each time to allow proper state chaining.",
6307
+ "returns": "LambdaInvoke task configured for document extraction",
6308
+ "stability": "experimental",
6309
+ "summary": "Implements the document extraction step using Amazon Bedrock."
6310
+ },
6311
+ "locationInModule": {
6312
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6313
+ "line": 443
6314
+ },
6315
+ "name": "processingStep",
6316
+ "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.BaseDocumentProcessing",
6317
+ "protected": true,
6318
+ "returns": {
6319
+ "type": {
6320
+ "union": {
6321
+ "types": [
6322
+ {
6323
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.LambdaInvoke"
6324
+ },
6325
+ {
6326
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.BedrockInvokeModel"
6327
+ },
6328
+ {
6329
+ "fqn": "aws-cdk-lib.aws_stepfunctions_tasks.StepFunctionsStartExecution"
6330
+ }
5944
6331
  ]
5945
6332
  }
5946
6333
  }
@@ -5957,7 +6344,24 @@
5957
6344
  "immutable": true,
5958
6345
  "locationInModule": {
5959
6346
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5960
- "line": 93
6347
+ "line": 196
6348
+ },
6349
+ "name": "DEFAULT_AGGREGATION_PROMPT",
6350
+ "protected": true,
6351
+ "static": true,
6352
+ "type": {
6353
+ "primitive": "string"
6354
+ }
6355
+ },
6356
+ {
6357
+ "const": true,
6358
+ "docs": {
6359
+ "stability": "experimental"
6360
+ },
6361
+ "immutable": true,
6362
+ "locationInModule": {
6363
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6364
+ "line": 165
5961
6365
  },
5962
6366
  "name": "DEFAULT_CLASSIFICATION_PROMPT",
5963
6367
  "protected": true,
@@ -5974,7 +6378,7 @@
5974
6378
  "immutable": true,
5975
6379
  "locationInModule": {
5976
6380
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5977
- "line": 104
6381
+ "line": 176
5978
6382
  },
5979
6383
  "name": "DEFAULT_PROCESSING_PROMPT",
5980
6384
  "protected": true,
@@ -5991,7 +6395,7 @@
5991
6395
  "immutable": true,
5992
6396
  "locationInModule": {
5993
6397
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
5994
- "line": 125
6398
+ "line": 220
5995
6399
  },
5996
6400
  "name": "bedrockDocumentProcessingProps",
5997
6401
  "protected": true,
@@ -6007,7 +6411,7 @@
6007
6411
  "immutable": true,
6008
6412
  "locationInModule": {
6009
6413
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6010
- "line": 127
6414
+ "line": 222
6011
6415
  },
6012
6416
  "name": "stateMachine",
6013
6417
  "type": {
@@ -6032,10 +6436,49 @@
6032
6436
  "kind": "interface",
6033
6437
  "locationInModule": {
6034
6438
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6035
- "line": 23
6439
+ "line": 24
6036
6440
  },
6037
6441
  "name": "BedrockDocumentProcessingProps",
6038
6442
  "properties": [
6443
+ {
6444
+ "abstract": true,
6445
+ "docs": {
6446
+ "default": "DEFAULT_AGGREGATION_PROMPT",
6447
+ "remarks": "Used when chunking is enabled to merge processing results from all chunks\ninto a single coherent result.\n\nThe prompt receives the concatenated processing results from all chunks\nand should instruct the model to synthesize them into a unified output.",
6448
+ "stability": "experimental",
6449
+ "summary": "Custom prompt template for aggregating results from multiple chunks."
6450
+ },
6451
+ "immutable": true,
6452
+ "locationInModule": {
6453
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6454
+ "line": 72
6455
+ },
6456
+ "name": "aggregationPrompt",
6457
+ "optional": true,
6458
+ "type": {
6459
+ "primitive": "string"
6460
+ }
6461
+ },
6462
+ {
6463
+ "abstract": true,
6464
+ "docs": {
6465
+ "default": "undefined (uses default configuration when enableChunking is true)",
6466
+ "remarks": "Only applies when `enableChunking` is true. Allows customization of:\n- **Chunking strategy**: How documents are split (fixed-pages, token-based, or hybrid)\n- **Thresholds**: When to trigger chunking based on page count or token count\n- **Chunk size and overlap**: Control chunk boundaries and context preservation\n- **Processing mode**: Parallel (faster) or sequential (cost-optimized)\n- **Aggregation strategy**: How to combine results from multiple chunks\n\n## Default Configuration\n\nIf not provided, uses sensible defaults optimized for most use cases:\n- Strategy: `'hybrid'` (recommended - balances token and page limits)\n- Page threshold: 100 pages\n- Token threshold: 150,000 tokens\n- Processing mode: `'parallel'`\n- Max concurrency: 10\n- Aggregation strategy: `'majority-vote'`\n\n## Strategy Comparison\n\n| Strategy | Best For | Pros | Cons |\n|----------|----------|------|------|\n| `hybrid` | Most documents | Balances token/page limits | Slightly more complex |\n| `token-based` | Variable density | Respects model limits | Slower analysis |\n| `fixed-pages` | Uniform density | Simple, fast | May exceed token limits |",
6467
+ "see": "{@link ChunkingConfig } for detailed configuration options",
6468
+ "stability": "experimental",
6469
+ "summary": "Configuration for PDF chunking behavior."
6470
+ },
6471
+ "immutable": true,
6472
+ "locationInModule": {
6473
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6474
+ "line": 131
6475
+ },
6476
+ "name": "chunkingConfig",
6477
+ "optional": true,
6478
+ "type": {
6479
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfig"
6480
+ }
6481
+ },
6039
6482
  {
6040
6483
  "abstract": true,
6041
6484
  "docs": {
@@ -6045,7 +6488,7 @@
6045
6488
  "immutable": true,
6046
6489
  "locationInModule": {
6047
6490
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6048
- "line": 27
6491
+ "line": 28
6049
6492
  },
6050
6493
  "name": "classificationBedrockModel",
6051
6494
  "optional": true,
@@ -6064,7 +6507,7 @@
6064
6507
  "immutable": true,
6065
6508
  "locationInModule": {
6066
6509
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6067
- "line": 38
6510
+ "line": 39
6068
6511
  },
6069
6512
  "name": "classificationPrompt",
6070
6513
  "optional": true,
@@ -6072,6 +6515,25 @@
6072
6515
  "primitive": "string"
6073
6516
  }
6074
6517
  },
6518
+ {
6519
+ "abstract": true,
6520
+ "docs": {
6521
+ "default": "false",
6522
+ "remarks": "When enabled, documents exceeding configured thresholds will be automatically\nsplit into chunks, processed in parallel or sequentially, and results aggregated.\n\nThis feature is useful for:\n- Processing large PDFs (>100 pages)\n- Handling documents that exceed Bedrock token limits (~200K tokens)\n- Improving processing reliability for complex documents\n- Processing documents with variable content density\n\nThe chunking workflow:\n1. Analyzes PDF to determine page count and estimate token count\n2. Decides if chunking is needed based on configured thresholds\n3. If chunking is needed, splits PDF into chunks and uploads to S3\n4. Processes each chunk through classification and extraction\n5. Aggregates results using majority voting for classification\n6. Deduplicates entities across chunks\n7. Cleans up temporary chunk files from S3",
6523
+ "stability": "experimental",
6524
+ "summary": "Enable PDF chunking for large documents."
6525
+ },
6526
+ "immutable": true,
6527
+ "locationInModule": {
6528
+ "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6529
+ "line": 97
6530
+ },
6531
+ "name": "enableChunking",
6532
+ "optional": true,
6533
+ "type": {
6534
+ "primitive": "boolean"
6535
+ }
6536
+ },
6075
6537
  {
6076
6538
  "abstract": true,
6077
6539
  "docs": {
@@ -6082,7 +6544,7 @@
6082
6544
  "immutable": true,
6083
6545
  "locationInModule": {
6084
6546
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6085
- "line": 49
6547
+ "line": 50
6086
6548
  },
6087
6549
  "name": "enrichmentLambdaFunction",
6088
6550
  "optional": true,
@@ -6100,7 +6562,7 @@
6100
6562
  "immutable": true,
6101
6563
  "locationInModule": {
6102
6564
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6103
- "line": 54
6565
+ "line": 55
6104
6566
  },
6105
6567
  "name": "postProcessingLambdaFunction",
6106
6568
  "optional": true,
@@ -6117,7 +6579,7 @@
6117
6579
  "immutable": true,
6118
6580
  "locationInModule": {
6119
6581
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6120
- "line": 32
6582
+ "line": 33
6121
6583
  },
6122
6584
  "name": "processingBedrockModel",
6123
6585
  "optional": true,
@@ -6136,7 +6598,7 @@
6136
6598
  "immutable": true,
6137
6599
  "locationInModule": {
6138
6600
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6139
- "line": 44
6601
+ "line": 45
6140
6602
  },
6141
6603
  "name": "processingPrompt",
6142
6604
  "optional": true,
@@ -6154,7 +6616,7 @@
6154
6616
  "immutable": true,
6155
6617
  "locationInModule": {
6156
6618
  "filename": "use-cases/document-processing/bedrock-document-processing.ts",
6157
- "line": 59
6619
+ "line": 60
6158
6620
  },
6159
6621
  "name": "stepTimeouts",
6160
6622
  "optional": true,
@@ -6249,71 +6711,1280 @@
6249
6711
  "stability": "experimental"
6250
6712
  }
6251
6713
  },
6252
- "kind": "class",
6714
+ "kind": "class",
6715
+ "locationInModule": {
6716
+ "filename": "use-cases/framework/bedrock/bedrock.ts",
6717
+ "line": 42
6718
+ },
6719
+ "methods": [
6720
+ {
6721
+ "docs": {
6722
+ "stability": "experimental"
6723
+ },
6724
+ "locationInModule": {
6725
+ "filename": "use-cases/framework/bedrock/bedrock.ts",
6726
+ "line": 43
6727
+ },
6728
+ "name": "deriveActualModelId",
6729
+ "parameters": [
6730
+ {
6731
+ "name": "props",
6732
+ "optional": true,
6733
+ "type": {
6734
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelProps"
6735
+ }
6736
+ }
6737
+ ],
6738
+ "returns": {
6739
+ "type": {
6740
+ "primitive": "string"
6741
+ }
6742
+ },
6743
+ "static": true
6744
+ },
6745
+ {
6746
+ "docs": {
6747
+ "stability": "experimental"
6748
+ },
6749
+ "locationInModule": {
6750
+ "filename": "use-cases/framework/bedrock/bedrock.ts",
6751
+ "line": 48
6752
+ },
6753
+ "name": "generateModelIAMPermissions",
6754
+ "parameters": [
6755
+ {
6756
+ "name": "scope",
6757
+ "type": {
6758
+ "fqn": "constructs.Construct"
6759
+ }
6760
+ },
6761
+ {
6762
+ "name": "props",
6763
+ "optional": true,
6764
+ "type": {
6765
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelProps"
6766
+ }
6767
+ }
6768
+ ],
6769
+ "returns": {
6770
+ "type": {
6771
+ "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
6772
+ }
6773
+ },
6774
+ "static": true
6775
+ }
6776
+ ],
6777
+ "name": "BedrockModelUtils",
6778
+ "symbolId": "use-cases/framework/bedrock/bedrock:BedrockModelUtils"
6779
+ },
6780
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkClassificationResult": {
6781
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
6782
+ "datatype": true,
6783
+ "docs": {
6784
+ "stability": "experimental",
6785
+ "summary": "Classification result for a chunk."
6786
+ },
6787
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkClassificationResult",
6788
+ "kind": "interface",
6789
+ "locationInModule": {
6790
+ "filename": "use-cases/document-processing/chunking-config.ts",
6791
+ "line": 517
6792
+ },
6793
+ "name": "ChunkClassificationResult",
6794
+ "properties": [
6795
+ {
6796
+ "abstract": true,
6797
+ "docs": {
6798
+ "stability": "experimental"
6799
+ },
6800
+ "immutable": true,
6801
+ "locationInModule": {
6802
+ "filename": "use-cases/document-processing/chunking-config.ts",
6803
+ "line": 518
6804
+ },
6805
+ "name": "documentClassification",
6806
+ "type": {
6807
+ "primitive": "string"
6808
+ }
6809
+ },
6810
+ {
6811
+ "abstract": true,
6812
+ "docs": {
6813
+ "stability": "experimental"
6814
+ },
6815
+ "immutable": true,
6816
+ "locationInModule": {
6817
+ "filename": "use-cases/document-processing/chunking-config.ts",
6818
+ "line": 519
6819
+ },
6820
+ "name": "confidence",
6821
+ "optional": true,
6822
+ "type": {
6823
+ "primitive": "number"
6824
+ }
6825
+ }
6826
+ ],
6827
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkClassificationResult"
6828
+ },
6829
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkMetadata": {
6830
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
6831
+ "datatype": true,
6832
+ "docs": {
6833
+ "remarks": "Contains information about the chunk's position, size, and S3 location.",
6834
+ "stability": "experimental",
6835
+ "summary": "Metadata about a single chunk of a document."
6836
+ },
6837
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkMetadata",
6838
+ "kind": "interface",
6839
+ "locationInModule": {
6840
+ "filename": "use-cases/document-processing/chunking-config.ts",
6841
+ "line": 297
6842
+ },
6843
+ "name": "ChunkMetadata",
6844
+ "properties": [
6845
+ {
6846
+ "abstract": true,
6847
+ "docs": {
6848
+ "stability": "experimental",
6849
+ "summary": "S3 bucket containing the chunk file."
6850
+ },
6851
+ "immutable": true,
6852
+ "locationInModule": {
6853
+ "filename": "use-cases/document-processing/chunking-config.ts",
6854
+ "line": 338
6855
+ },
6856
+ "name": "bucket",
6857
+ "type": {
6858
+ "primitive": "string"
6859
+ }
6860
+ },
6861
+ {
6862
+ "abstract": true,
6863
+ "docs": {
6864
+ "remarks": "Format: {documentId}_chunk_{index}",
6865
+ "stability": "experimental",
6866
+ "summary": "Unique identifier for this chunk."
6867
+ },
6868
+ "immutable": true,
6869
+ "locationInModule": {
6870
+ "filename": "use-cases/document-processing/chunking-config.ts",
6871
+ "line": 302
6872
+ },
6873
+ "name": "chunkId",
6874
+ "type": {
6875
+ "primitive": "string"
6876
+ }
6877
+ },
6878
+ {
6879
+ "abstract": true,
6880
+ "docs": {
6881
+ "stability": "experimental",
6882
+ "summary": "Zero-based index of this chunk in the document."
6883
+ },
6884
+ "immutable": true,
6885
+ "locationInModule": {
6886
+ "filename": "use-cases/document-processing/chunking-config.ts",
6887
+ "line": 307
6888
+ },
6889
+ "name": "chunkIndex",
6890
+ "type": {
6891
+ "primitive": "number"
6892
+ }
6893
+ },
6894
+ {
6895
+ "abstract": true,
6896
+ "docs": {
6897
+ "stability": "experimental",
6898
+ "summary": "Ending page number (zero-based, inclusive) of this chunk."
6899
+ },
6900
+ "immutable": true,
6901
+ "locationInModule": {
6902
+ "filename": "use-cases/document-processing/chunking-config.ts",
6903
+ "line": 322
6904
+ },
6905
+ "name": "endPage",
6906
+ "type": {
6907
+ "primitive": "number"
6908
+ }
6909
+ },
6910
+ {
6911
+ "abstract": true,
6912
+ "docs": {
6913
+ "remarks": "Based on word-count heuristic (1.3 tokens per word).",
6914
+ "stability": "experimental",
6915
+ "summary": "Estimated token count for this chunk."
6916
+ },
6917
+ "immutable": true,
6918
+ "locationInModule": {
6919
+ "filename": "use-cases/document-processing/chunking-config.ts",
6920
+ "line": 333
6921
+ },
6922
+ "name": "estimatedTokens",
6923
+ "type": {
6924
+ "primitive": "number"
6925
+ }
6926
+ },
6927
+ {
6928
+ "abstract": true,
6929
+ "docs": {
6930
+ "remarks": "Typically in chunks/ prefix.",
6931
+ "stability": "experimental",
6932
+ "summary": "S3 key for the chunk file."
6933
+ },
6934
+ "immutable": true,
6935
+ "locationInModule": {
6936
+ "filename": "use-cases/document-processing/chunking-config.ts",
6937
+ "line": 344
6938
+ },
6939
+ "name": "key",
6940
+ "type": {
6941
+ "primitive": "string"
6942
+ }
6943
+ },
6944
+ {
6945
+ "abstract": true,
6946
+ "docs": {
6947
+ "stability": "experimental",
6948
+ "summary": "Number of pages in this chunk."
6949
+ },
6950
+ "immutable": true,
6951
+ "locationInModule": {
6952
+ "filename": "use-cases/document-processing/chunking-config.ts",
6953
+ "line": 327
6954
+ },
6955
+ "name": "pageCount",
6956
+ "type": {
6957
+ "primitive": "number"
6958
+ }
6959
+ },
6960
+ {
6961
+ "abstract": true,
6962
+ "docs": {
6963
+ "stability": "experimental",
6964
+ "summary": "Starting page number (zero-based) of this chunk."
6965
+ },
6966
+ "immutable": true,
6967
+ "locationInModule": {
6968
+ "filename": "use-cases/document-processing/chunking-config.ts",
6969
+ "line": 317
6970
+ },
6971
+ "name": "startPage",
6972
+ "type": {
6973
+ "primitive": "number"
6974
+ }
6975
+ },
6976
+ {
6977
+ "abstract": true,
6978
+ "docs": {
6979
+ "stability": "experimental",
6980
+ "summary": "Total number of chunks in the document."
6981
+ },
6982
+ "immutable": true,
6983
+ "locationInModule": {
6984
+ "filename": "use-cases/document-processing/chunking-config.ts",
6985
+ "line": 312
6986
+ },
6987
+ "name": "totalChunks",
6988
+ "type": {
6989
+ "primitive": "number"
6990
+ }
6991
+ }
6992
+ ],
6993
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkMetadata"
6994
+ },
6995
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkProcessingResult": {
6996
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
6997
+ "datatype": true,
6998
+ "docs": {
6999
+ "stability": "experimental",
7000
+ "summary": "Processing result for a chunk."
7001
+ },
7002
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkProcessingResult",
7003
+ "kind": "interface",
7004
+ "locationInModule": {
7005
+ "filename": "use-cases/document-processing/chunking-config.ts",
7006
+ "line": 525
7007
+ },
7008
+ "name": "ChunkProcessingResult",
7009
+ "properties": [
7010
+ {
7011
+ "abstract": true,
7012
+ "docs": {
7013
+ "stability": "experimental"
7014
+ },
7015
+ "immutable": true,
7016
+ "locationInModule": {
7017
+ "filename": "use-cases/document-processing/chunking-config.ts",
7018
+ "line": 526
7019
+ },
7020
+ "name": "entities",
7021
+ "type": {
7022
+ "collection": {
7023
+ "elementtype": {
7024
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.Entity"
7025
+ },
7026
+ "kind": "array"
7027
+ }
7028
+ }
7029
+ }
7030
+ ],
7031
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkProcessingResult"
7032
+ },
7033
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkResult": {
7034
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7035
+ "datatype": true,
7036
+ "docs": {
7037
+ "remarks": "Contains classification and extraction results, or error information.",
7038
+ "stability": "experimental",
7039
+ "summary": "Result from processing a single chunk."
7040
+ },
7041
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkResult",
7042
+ "kind": "interface",
7043
+ "locationInModule": {
7044
+ "filename": "use-cases/document-processing/chunking-config.ts",
7045
+ "line": 533
7046
+ },
7047
+ "name": "ChunkResult",
7048
+ "properties": [
7049
+ {
7050
+ "abstract": true,
7051
+ "docs": {
7052
+ "stability": "experimental",
7053
+ "summary": "Chunk identifier."
7054
+ },
7055
+ "immutable": true,
7056
+ "locationInModule": {
7057
+ "filename": "use-cases/document-processing/chunking-config.ts",
7058
+ "line": 537
7059
+ },
7060
+ "name": "chunkId",
7061
+ "type": {
7062
+ "primitive": "string"
7063
+ }
7064
+ },
7065
+ {
7066
+ "abstract": true,
7067
+ "docs": {
7068
+ "stability": "experimental",
7069
+ "summary": "Zero-based chunk index."
7070
+ },
7071
+ "immutable": true,
7072
+ "locationInModule": {
7073
+ "filename": "use-cases/document-processing/chunking-config.ts",
7074
+ "line": 542
7075
+ },
7076
+ "name": "chunkIndex",
7077
+ "type": {
7078
+ "primitive": "number"
7079
+ }
7080
+ },
7081
+ {
7082
+ "abstract": true,
7083
+ "docs": {
7084
+ "stability": "experimental",
7085
+ "summary": "Optional classification result for this chunk."
7086
+ },
7087
+ "immutable": true,
7088
+ "locationInModule": {
7089
+ "filename": "use-cases/document-processing/chunking-config.ts",
7090
+ "line": 547
7091
+ },
7092
+ "name": "classificationResult",
7093
+ "optional": true,
7094
+ "type": {
7095
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkClassificationResult"
7096
+ }
7097
+ },
7098
+ {
7099
+ "abstract": true,
7100
+ "docs": {
7101
+ "stability": "experimental",
7102
+ "summary": "Error message if chunk processing failed."
7103
+ },
7104
+ "immutable": true,
7105
+ "locationInModule": {
7106
+ "filename": "use-cases/document-processing/chunking-config.ts",
7107
+ "line": 557
7108
+ },
7109
+ "name": "error",
7110
+ "optional": true,
7111
+ "type": {
7112
+ "primitive": "string"
7113
+ }
7114
+ },
7115
+ {
7116
+ "abstract": true,
7117
+ "docs": {
7118
+ "stability": "experimental",
7119
+ "summary": "Optional extraction result for this chunk."
7120
+ },
7121
+ "immutable": true,
7122
+ "locationInModule": {
7123
+ "filename": "use-cases/document-processing/chunking-config.ts",
7124
+ "line": 552
7125
+ },
7126
+ "name": "processingResult",
7127
+ "optional": true,
7128
+ "type": {
7129
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkProcessingResult"
7130
+ }
7131
+ }
7132
+ ],
7133
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkResult"
7134
+ },
7135
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfig": {
7136
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7137
+ "datatype": true,
7138
+ "docs": {
7139
+ "remarks": "This interface provides fine-grained control over how large PDF documents are\nsplit into manageable chunks for processing. The chunking system supports three\nstrategies, each optimized for different document types and use cases.\n\n## Chunking Strategies\n\n### 1. Hybrid Strategy (RECOMMENDED)\nBalances both token count and page limits for optimal chunking. Best for most\ndocuments as it respects model token limits while preventing excessively large chunks.\n\n### 2. Token-Based Strategy\nSplits documents based on estimated token count. Best for documents with variable\ncontent density (e.g., mixed text and images, tables, charts).\n\n### 3. Fixed-Pages Strategy (Legacy)\nSimple page-based splitting. Fast but may exceed token limits for dense documents.\nUse only for documents with uniform content density.\n\n## Processing Modes\n\n- **parallel**: Process multiple chunks simultaneously (faster, higher cost)\n- **sequential**: Process chunks one at a time (slower, lower cost)\n\n## Aggregation Strategies\n\n- **majority-vote**: Most frequent classification wins (recommended)\n- **weighted-vote**: Early chunks weighted higher\n- **first-chunk**: Use first chunk's classification only\n\n## Default Values\n\n| Parameter | Default | Description |\n|-----------|---------|-------------|\n| strategy | 'hybrid' | Chunking strategy |\n| pageThreshold | 100 | Pages to trigger chunking |\n| tokenThreshold | 150000 | Tokens to trigger chunking |\n| chunkSize | 50 | Pages per chunk (fixed-pages) |\n| overlapPages | 5 | Overlap pages (fixed-pages) |\n| maxTokensPerChunk | 100000 | Max tokens per chunk (token-based) |\n| overlapTokens | 5000 | Overlap tokens (token-based, hybrid) |\n| targetTokensPerChunk | 80000 | Target tokens per chunk (hybrid) |\n| maxPagesPerChunk | 99 | Max pages per chunk (hybrid) |\n| processingMode | 'parallel' | Processing mode |\n| maxConcurrency | 10 | Max parallel chunks |\n| aggregationStrategy | 'majority-vote' | Result aggregation |\n| minSuccessThreshold | 0.5 | Min success rate for valid result |",
7140
+ "stability": "experimental",
7141
+ "summary": "Comprehensive configuration for PDF chunking behavior."
7142
+ },
7143
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfig",
7144
+ "kind": "interface",
7145
+ "locationInModule": {
7146
+ "filename": "use-cases/document-processing/chunking-config.ts",
7147
+ "line": 189
7148
+ },
7149
+ "name": "ChunkingConfig",
7150
+ "properties": [
7151
+ {
7152
+ "abstract": true,
7153
+ "docs": {
7154
+ "default": "'majority-vote'",
7155
+ "remarks": "- **majority-vote**: Most frequent classification wins\n- **weighted-vote**: Early chunks weighted higher\n- **first-chunk**: Use first chunk's classification",
7156
+ "stability": "experimental",
7157
+ "summary": "Strategy for aggregating results from multiple chunks."
7158
+ },
7159
+ "immutable": true,
7160
+ "locationInModule": {
7161
+ "filename": "use-cases/document-processing/chunking-config.ts",
7162
+ "line": 282
7163
+ },
7164
+ "name": "aggregationStrategy",
7165
+ "optional": true,
7166
+ "type": {
7167
+ "primitive": "string"
7168
+ }
7169
+ },
7170
+ {
7171
+ "abstract": true,
7172
+ "docs": {
7173
+ "default": "50",
7174
+ "stability": "experimental",
7175
+ "summary": "Number of pages per chunk (fixed-pages strategy)."
7176
+ },
7177
+ "immutable": true,
7178
+ "locationInModule": {
7179
+ "filename": "use-cases/document-processing/chunking-config.ts",
7180
+ "line": 212
7181
+ },
7182
+ "name": "chunkSize",
7183
+ "optional": true,
7184
+ "type": {
7185
+ "primitive": "number"
7186
+ }
7187
+ },
7188
+ {
7189
+ "abstract": true,
7190
+ "docs": {
7191
+ "default": "10",
7192
+ "remarks": "Higher values increase speed but also cost.",
7193
+ "stability": "experimental",
7194
+ "summary": "Maximum number of chunks to process concurrently (parallel mode only)."
7195
+ },
7196
+ "immutable": true,
7197
+ "locationInModule": {
7198
+ "filename": "use-cases/document-processing/chunking-config.ts",
7199
+ "line": 271
7200
+ },
7201
+ "name": "maxConcurrency",
7202
+ "optional": true,
7203
+ "type": {
7204
+ "primitive": "number"
7205
+ }
7206
+ },
7207
+ {
7208
+ "abstract": true,
7209
+ "docs": {
7210
+ "default": "99",
7211
+ "remarks": "Note: Bedrock has a hard limit of 100 pages per PDF, so we default to 99\nto provide a safety margin.",
7212
+ "stability": "experimental",
7213
+ "summary": "Hard limit on pages per chunk (hybrid strategy)."
7214
+ },
7215
+ "immutable": true,
7216
+ "locationInModule": {
7217
+ "filename": "use-cases/document-processing/chunking-config.ts",
7218
+ "line": 246
7219
+ },
7220
+ "name": "maxPagesPerChunk",
7221
+ "optional": true,
7222
+ "type": {
7223
+ "primitive": "number"
7224
+ }
7225
+ },
7226
+ {
7227
+ "abstract": true,
7228
+ "docs": {
7229
+ "default": "100000",
7230
+ "stability": "experimental",
7231
+ "summary": "Maximum tokens per chunk (token-based strategy)."
7232
+ },
7233
+ "immutable": true,
7234
+ "locationInModule": {
7235
+ "filename": "use-cases/document-processing/chunking-config.ts",
7236
+ "line": 231
7237
+ },
7238
+ "name": "maxTokensPerChunk",
7239
+ "optional": true,
7240
+ "type": {
7241
+ "primitive": "number"
7242
+ }
7243
+ },
7244
+ {
7245
+ "abstract": true,
7246
+ "docs": {
7247
+ "default": "0.5 (50%)",
7248
+ "remarks": "If fewer chunks succeed, the result is marked as partial failure.",
7249
+ "stability": "experimental",
7250
+ "summary": "Minimum percentage of chunks that must succeed for aggregation."
7251
+ },
7252
+ "immutable": true,
7253
+ "locationInModule": {
7254
+ "filename": "use-cases/document-processing/chunking-config.ts",
7255
+ "line": 290
7256
+ },
7257
+ "name": "minSuccessThreshold",
7258
+ "optional": true,
7259
+ "type": {
7260
+ "primitive": "number"
7261
+ }
7262
+ },
7263
+ {
7264
+ "abstract": true,
7265
+ "docs": {
7266
+ "default": "5",
7267
+ "stability": "experimental",
7268
+ "summary": "Number of overlapping pages between chunks (fixed-pages strategy)."
7269
+ },
7270
+ "immutable": true,
7271
+ "locationInModule": {
7272
+ "filename": "use-cases/document-processing/chunking-config.ts",
7273
+ "line": 218
7274
+ },
7275
+ "name": "overlapPages",
7276
+ "optional": true,
7277
+ "type": {
7278
+ "primitive": "number"
7279
+ }
7280
+ },
7281
+ {
7282
+ "abstract": true,
7283
+ "docs": {
7284
+ "default": "5000",
7285
+ "stability": "experimental",
7286
+ "summary": "Number of overlapping tokens between chunks (token-based and hybrid strategies)."
7287
+ },
7288
+ "immutable": true,
7289
+ "locationInModule": {
7290
+ "filename": "use-cases/document-processing/chunking-config.ts",
7291
+ "line": 237
7292
+ },
7293
+ "name": "overlapTokens",
7294
+ "optional": true,
7295
+ "type": {
7296
+ "primitive": "number"
7297
+ }
7298
+ },
7299
+ {
7300
+ "abstract": true,
7301
+ "docs": {
7302
+ "default": "100",
7303
+ "stability": "experimental",
7304
+ "summary": "Threshold for triggering chunking based on page count (fixed-pages strategy)."
7305
+ },
7306
+ "immutable": true,
7307
+ "locationInModule": {
7308
+ "filename": "use-cases/document-processing/chunking-config.ts",
7309
+ "line": 206
7310
+ },
7311
+ "name": "pageThreshold",
7312
+ "optional": true,
7313
+ "type": {
7314
+ "primitive": "number"
7315
+ }
7316
+ },
7317
+ {
7318
+ "abstract": true,
7319
+ "docs": {
7320
+ "default": "'parallel'",
7321
+ "remarks": "- **parallel**: Process multiple chunks simultaneously (faster, higher cost)\n- **sequential**: Process chunks one at a time (slower, lower cost)",
7322
+ "stability": "experimental",
7323
+ "summary": "Processing mode for chunks."
7324
+ },
7325
+ "immutable": true,
7326
+ "locationInModule": {
7327
+ "filename": "use-cases/document-processing/chunking-config.ts",
7328
+ "line": 263
7329
+ },
7330
+ "name": "processingMode",
7331
+ "optional": true,
7332
+ "type": {
7333
+ "primitive": "string"
7334
+ }
7335
+ },
7336
+ {
7337
+ "abstract": true,
7338
+ "docs": {
7339
+ "default": "'hybrid'",
7340
+ "remarks": "- **hybrid** (RECOMMENDED): Balances token count and page limits\n- **token-based**: Respects model token limits, good for variable density\n- **fixed-pages**: Simple page-based splitting (legacy, not recommended)",
7341
+ "stability": "experimental",
7342
+ "summary": "Chunking strategy to use."
7343
+ },
7344
+ "immutable": true,
7345
+ "locationInModule": {
7346
+ "filename": "use-cases/document-processing/chunking-config.ts",
7347
+ "line": 199
7348
+ },
7349
+ "name": "strategy",
7350
+ "optional": true,
7351
+ "type": {
7352
+ "primitive": "string"
7353
+ }
7354
+ },
7355
+ {
7356
+ "abstract": true,
7357
+ "docs": {
7358
+ "default": "80000",
7359
+ "stability": "experimental",
7360
+ "summary": "Soft target for tokens per chunk (hybrid strategy)."
7361
+ },
7362
+ "immutable": true,
7363
+ "locationInModule": {
7364
+ "filename": "use-cases/document-processing/chunking-config.ts",
7365
+ "line": 252
7366
+ },
7367
+ "name": "targetTokensPerChunk",
7368
+ "optional": true,
7369
+ "type": {
7370
+ "primitive": "number"
7371
+ }
7372
+ },
7373
+ {
7374
+ "abstract": true,
7375
+ "docs": {
7376
+ "default": "150000",
7377
+ "stability": "experimental",
7378
+ "summary": "Threshold for triggering chunking based on token count (token-based strategy)."
7379
+ },
7380
+ "immutable": true,
7381
+ "locationInModule": {
7382
+ "filename": "use-cases/document-processing/chunking-config.ts",
7383
+ "line": 225
7384
+ },
7385
+ "name": "tokenThreshold",
7386
+ "optional": true,
7387
+ "type": {
7388
+ "primitive": "number"
7389
+ }
7390
+ }
7391
+ ],
7392
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkingConfig"
7393
+ },
7394
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfigUsed": {
7395
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7396
+ "datatype": true,
7397
+ "docs": {
7398
+ "remarks": "Includes both user-provided and default values.",
7399
+ "stability": "experimental",
7400
+ "summary": "Chunking configuration used for processing."
7401
+ },
7402
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfigUsed",
7403
+ "kind": "interface",
7404
+ "locationInModule": {
7405
+ "filename": "use-cases/document-processing/chunking-config.ts",
7406
+ "line": 458
7407
+ },
7408
+ "name": "ChunkingConfigUsed",
7409
+ "properties": [
7410
+ {
7411
+ "abstract": true,
7412
+ "docs": {
7413
+ "stability": "experimental"
7414
+ },
7415
+ "immutable": true,
7416
+ "locationInModule": {
7417
+ "filename": "use-cases/document-processing/chunking-config.ts",
7418
+ "line": 459
7419
+ },
7420
+ "name": "strategy",
7421
+ "type": {
7422
+ "primitive": "string"
7423
+ }
7424
+ },
7425
+ {
7426
+ "abstract": true,
7427
+ "docs": {
7428
+ "stability": "experimental"
7429
+ },
7430
+ "immutable": true,
7431
+ "locationInModule": {
7432
+ "filename": "use-cases/document-processing/chunking-config.ts",
7433
+ "line": 460
7434
+ },
7435
+ "name": "totalPages",
7436
+ "type": {
7437
+ "primitive": "number"
7438
+ }
7439
+ },
7440
+ {
7441
+ "abstract": true,
7442
+ "docs": {
7443
+ "stability": "experimental"
7444
+ },
7445
+ "immutable": true,
7446
+ "locationInModule": {
7447
+ "filename": "use-cases/document-processing/chunking-config.ts",
7448
+ "line": 461
7449
+ },
7450
+ "name": "totalTokens",
7451
+ "type": {
7452
+ "primitive": "number"
7453
+ }
7454
+ },
7455
+ {
7456
+ "abstract": true,
7457
+ "docs": {
7458
+ "stability": "experimental"
7459
+ },
7460
+ "immutable": true,
7461
+ "locationInModule": {
7462
+ "filename": "use-cases/document-processing/chunking-config.ts",
7463
+ "line": 462
7464
+ },
7465
+ "name": "chunkSize",
7466
+ "optional": true,
7467
+ "type": {
7468
+ "primitive": "number"
7469
+ }
7470
+ },
7471
+ {
7472
+ "abstract": true,
7473
+ "docs": {
7474
+ "stability": "experimental"
7475
+ },
7476
+ "immutable": true,
7477
+ "locationInModule": {
7478
+ "filename": "use-cases/document-processing/chunking-config.ts",
7479
+ "line": 467
7480
+ },
7481
+ "name": "maxPagesPerChunk",
7482
+ "optional": true,
7483
+ "type": {
7484
+ "primitive": "number"
7485
+ }
7486
+ },
7487
+ {
7488
+ "abstract": true,
7489
+ "docs": {
7490
+ "stability": "experimental"
7491
+ },
7492
+ "immutable": true,
7493
+ "locationInModule": {
7494
+ "filename": "use-cases/document-processing/chunking-config.ts",
7495
+ "line": 464
7496
+ },
7497
+ "name": "maxTokensPerChunk",
7498
+ "optional": true,
7499
+ "type": {
7500
+ "primitive": "number"
7501
+ }
7502
+ },
7503
+ {
7504
+ "abstract": true,
7505
+ "docs": {
7506
+ "stability": "experimental"
7507
+ },
7508
+ "immutable": true,
7509
+ "locationInModule": {
7510
+ "filename": "use-cases/document-processing/chunking-config.ts",
7511
+ "line": 463
7512
+ },
7513
+ "name": "overlapPages",
7514
+ "optional": true,
7515
+ "type": {
7516
+ "primitive": "number"
7517
+ }
7518
+ },
7519
+ {
7520
+ "abstract": true,
7521
+ "docs": {
7522
+ "stability": "experimental"
7523
+ },
7524
+ "immutable": true,
7525
+ "locationInModule": {
7526
+ "filename": "use-cases/document-processing/chunking-config.ts",
7527
+ "line": 465
7528
+ },
7529
+ "name": "overlapTokens",
7530
+ "optional": true,
7531
+ "type": {
7532
+ "primitive": "number"
7533
+ }
7534
+ },
7535
+ {
7536
+ "abstract": true,
7537
+ "docs": {
7538
+ "stability": "experimental"
7539
+ },
7540
+ "immutable": true,
7541
+ "locationInModule": {
7542
+ "filename": "use-cases/document-processing/chunking-config.ts",
7543
+ "line": 468
7544
+ },
7545
+ "name": "processingMode",
7546
+ "optional": true,
7547
+ "type": {
7548
+ "primitive": "string"
7549
+ }
7550
+ },
7551
+ {
7552
+ "abstract": true,
7553
+ "docs": {
7554
+ "stability": "experimental"
7555
+ },
7556
+ "immutable": true,
7557
+ "locationInModule": {
7558
+ "filename": "use-cases/document-processing/chunking-config.ts",
7559
+ "line": 466
7560
+ },
7561
+ "name": "targetTokensPerChunk",
7562
+ "optional": true,
7563
+ "type": {
7564
+ "primitive": "number"
7565
+ }
7566
+ }
7567
+ ],
7568
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkingConfigUsed"
7569
+ },
7570
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingRequest": {
7571
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7572
+ "datatype": true,
7573
+ "docs": {
7574
+ "remarks": "Contains document information and chunking configuration.",
7575
+ "stability": "experimental",
7576
+ "summary": "Request payload for PDF analysis and chunking Lambda."
7577
+ },
7578
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingRequest",
7579
+ "kind": "interface",
7580
+ "locationInModule": {
7581
+ "filename": "use-cases/document-processing/chunking-config.ts",
7582
+ "line": 376
7583
+ },
7584
+ "name": "ChunkingRequest",
7585
+ "properties": [
7586
+ {
7587
+ "abstract": true,
7588
+ "docs": {
7589
+ "stability": "experimental",
7590
+ "summary": "Document content location information."
7591
+ },
7592
+ "immutable": true,
7593
+ "locationInModule": {
7594
+ "filename": "use-cases/document-processing/chunking-config.ts",
7595
+ "line": 391
7596
+ },
7597
+ "name": "content",
7598
+ "type": {
7599
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DocumentContent"
7600
+ }
7601
+ },
7602
+ {
7603
+ "abstract": true,
7604
+ "docs": {
7605
+ "remarks": "Typically 'file' for S3-based documents.",
7606
+ "stability": "experimental",
7607
+ "summary": "Content type of the document."
7608
+ },
7609
+ "immutable": true,
7610
+ "locationInModule": {
7611
+ "filename": "use-cases/document-processing/chunking-config.ts",
7612
+ "line": 386
7613
+ },
7614
+ "name": "contentType",
7615
+ "type": {
7616
+ "primitive": "string"
7617
+ }
7618
+ },
7619
+ {
7620
+ "abstract": true,
7621
+ "docs": {
7622
+ "stability": "experimental",
7623
+ "summary": "Unique identifier for the document."
7624
+ },
7625
+ "immutable": true,
7626
+ "locationInModule": {
7627
+ "filename": "use-cases/document-processing/chunking-config.ts",
7628
+ "line": 380
7629
+ },
7630
+ "name": "documentId",
7631
+ "type": {
7632
+ "primitive": "string"
7633
+ }
7634
+ },
7635
+ {
7636
+ "abstract": true,
7637
+ "docs": {
7638
+ "remarks": "If not provided, uses default configuration.",
7639
+ "stability": "experimental",
7640
+ "summary": "Optional chunking configuration."
7641
+ },
7642
+ "immutable": true,
7643
+ "locationInModule": {
7644
+ "filename": "use-cases/document-processing/chunking-config.ts",
7645
+ "line": 397
7646
+ },
7647
+ "name": "config",
7648
+ "optional": true,
7649
+ "type": {
7650
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfig"
7651
+ }
7652
+ }
7653
+ ],
7654
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkingRequest"
7655
+ },
7656
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingResponse": {
7657
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7658
+ "datatype": true,
7659
+ "docs": {
7660
+ "remarks": "Document exceeds thresholds and has been split into chunks.",
7661
+ "stability": "experimental",
7662
+ "summary": "Response when chunking IS required."
7663
+ },
7664
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingResponse",
7665
+ "kind": "interface",
7666
+ "locationInModule": {
7667
+ "filename": "use-cases/document-processing/chunking-config.ts",
7668
+ "line": 475
7669
+ },
7670
+ "name": "ChunkingResponse",
7671
+ "properties": [
7672
+ {
7673
+ "abstract": true,
7674
+ "docs": {
7675
+ "stability": "experimental",
7676
+ "summary": "Array of chunk metadata for all created chunks."
7677
+ },
7678
+ "immutable": true,
7679
+ "locationInModule": {
7680
+ "filename": "use-cases/document-processing/chunking-config.ts",
7681
+ "line": 499
7682
+ },
7683
+ "name": "chunks",
7684
+ "type": {
7685
+ "collection": {
7686
+ "elementtype": {
7687
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkMetadata"
7688
+ },
7689
+ "kind": "array"
7690
+ }
7691
+ }
7692
+ },
7693
+ {
7694
+ "abstract": true,
7695
+ "docs": {
7696
+ "remarks": "Includes both user-provided and default values.",
7697
+ "stability": "experimental",
7698
+ "summary": "Configuration used for chunking."
7699
+ },
7700
+ "immutable": true,
7701
+ "locationInModule": {
7702
+ "filename": "use-cases/document-processing/chunking-config.ts",
7703
+ "line": 505
7704
+ },
7705
+ "name": "config",
7706
+ "type": {
7707
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkingConfigUsed"
7708
+ }
7709
+ },
7710
+ {
7711
+ "abstract": true,
7712
+ "docs": {
7713
+ "stability": "experimental",
7714
+ "summary": "Document identifier."
7715
+ },
7716
+ "immutable": true,
7717
+ "locationInModule": {
7718
+ "filename": "use-cases/document-processing/chunking-config.ts",
7719
+ "line": 479
7720
+ },
7721
+ "name": "documentId",
7722
+ "type": {
7723
+ "primitive": "string"
7724
+ }
7725
+ },
7726
+ {
7727
+ "abstract": true,
7728
+ "docs": {
7729
+ "stability": "experimental",
7730
+ "summary": "Indicates chunking is required."
7731
+ },
7732
+ "immutable": true,
7733
+ "locationInModule": {
7734
+ "filename": "use-cases/document-processing/chunking-config.ts",
7735
+ "line": 484
7736
+ },
7737
+ "name": "requiresChunking",
7738
+ "type": {
7739
+ "primitive": "boolean"
7740
+ }
7741
+ },
7742
+ {
7743
+ "abstract": true,
7744
+ "docs": {
7745
+ "stability": "experimental",
7746
+ "summary": "Strategy used for chunking."
7747
+ },
7748
+ "immutable": true,
7749
+ "locationInModule": {
7750
+ "filename": "use-cases/document-processing/chunking-config.ts",
7751
+ "line": 494
7752
+ },
7753
+ "name": "strategy",
7754
+ "type": {
7755
+ "primitive": "string"
7756
+ }
7757
+ },
7758
+ {
7759
+ "abstract": true,
7760
+ "docs": {
7761
+ "stability": "experimental",
7762
+ "summary": "Token analysis results with detailed per-page information."
7763
+ },
7764
+ "immutable": true,
7765
+ "locationInModule": {
7766
+ "filename": "use-cases/document-processing/chunking-config.ts",
7767
+ "line": 489
7768
+ },
7769
+ "name": "tokenAnalysis",
7770
+ "type": {
7771
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.TokenAnalysis"
7772
+ }
7773
+ }
7774
+ ],
7775
+ "symbolId": "use-cases/document-processing/chunking-config:ChunkingResponse"
7776
+ },
7777
+ "@cdklabs/cdk-appmod-catalog-blueprints.ChunksSummary": {
7778
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7779
+ "datatype": true,
7780
+ "docs": {
7781
+ "stability": "experimental",
7782
+ "summary": "Summary of chunk processing results."
7783
+ },
7784
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunksSummary",
7785
+ "kind": "interface",
7786
+ "locationInModule": {
7787
+ "filename": "use-cases/document-processing/chunking-config.ts",
7788
+ "line": 611
7789
+ },
7790
+ "name": "ChunksSummary",
7791
+ "properties": [
7792
+ {
7793
+ "abstract": true,
7794
+ "docs": {
7795
+ "stability": "experimental",
7796
+ "summary": "Number of chunks that failed processing."
7797
+ },
7798
+ "immutable": true,
7799
+ "locationInModule": {
7800
+ "filename": "use-cases/document-processing/chunking-config.ts",
7801
+ "line": 625
7802
+ },
7803
+ "name": "failedChunks",
7804
+ "type": {
7805
+ "primitive": "number"
7806
+ }
7807
+ },
7808
+ {
7809
+ "abstract": true,
7810
+ "docs": {
7811
+ "stability": "experimental",
7812
+ "summary": "Number of chunks that processed successfully."
7813
+ },
7814
+ "immutable": true,
7815
+ "locationInModule": {
7816
+ "filename": "use-cases/document-processing/chunking-config.ts",
7817
+ "line": 620
7818
+ },
7819
+ "name": "successfulChunks",
7820
+ "type": {
7821
+ "primitive": "number"
7822
+ }
7823
+ },
7824
+ {
7825
+ "abstract": true,
7826
+ "docs": {
7827
+ "stability": "experimental",
7828
+ "summary": "Total number of chunks created."
7829
+ },
7830
+ "immutable": true,
7831
+ "locationInModule": {
7832
+ "filename": "use-cases/document-processing/chunking-config.ts",
7833
+ "line": 615
7834
+ },
7835
+ "name": "totalChunks",
7836
+ "type": {
7837
+ "primitive": "number"
7838
+ }
7839
+ },
7840
+ {
7841
+ "abstract": true,
7842
+ "docs": {
7843
+ "stability": "experimental",
7844
+ "summary": "Optional total tokens processed across all chunks."
7845
+ },
7846
+ "immutable": true,
7847
+ "locationInModule": {
7848
+ "filename": "use-cases/document-processing/chunking-config.ts",
7849
+ "line": 630
7850
+ },
7851
+ "name": "totalTokensProcessed",
7852
+ "optional": true,
7853
+ "type": {
7854
+ "primitive": "number"
7855
+ }
7856
+ }
7857
+ ],
7858
+ "symbolId": "use-cases/document-processing/chunking-config:ChunksSummary"
7859
+ },
7860
+ "@cdklabs/cdk-appmod-catalog-blueprints.CleanupRequest": {
7861
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7862
+ "datatype": true,
7863
+ "docs": {
7864
+ "remarks": "Contains information about chunks to delete.",
7865
+ "stability": "experimental",
7866
+ "summary": "Request payload for cleanup Lambda."
7867
+ },
7868
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.CleanupRequest",
7869
+ "kind": "interface",
7870
+ "locationInModule": {
7871
+ "filename": "use-cases/document-processing/chunking-config.ts",
7872
+ "line": 677
7873
+ },
7874
+ "name": "CleanupRequest",
7875
+ "properties": [
7876
+ {
7877
+ "abstract": true,
7878
+ "docs": {
7879
+ "stability": "experimental",
7880
+ "summary": "Array of chunk metadata for chunks to delete."
7881
+ },
7882
+ "immutable": true,
7883
+ "locationInModule": {
7884
+ "filename": "use-cases/document-processing/chunking-config.ts",
7885
+ "line": 686
7886
+ },
7887
+ "name": "chunks",
7888
+ "type": {
7889
+ "collection": {
7890
+ "elementtype": {
7891
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.ChunkMetadata"
7892
+ },
7893
+ "kind": "array"
7894
+ }
7895
+ }
7896
+ },
7897
+ {
7898
+ "abstract": true,
7899
+ "docs": {
7900
+ "stability": "experimental",
7901
+ "summary": "Document identifier."
7902
+ },
7903
+ "immutable": true,
7904
+ "locationInModule": {
7905
+ "filename": "use-cases/document-processing/chunking-config.ts",
7906
+ "line": 681
7907
+ },
7908
+ "name": "documentId",
7909
+ "type": {
7910
+ "primitive": "string"
7911
+ }
7912
+ }
7913
+ ],
7914
+ "symbolId": "use-cases/document-processing/chunking-config:CleanupRequest"
7915
+ },
7916
+ "@cdklabs/cdk-appmod-catalog-blueprints.CleanupResponse": {
7917
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7918
+ "datatype": true,
7919
+ "docs": {
7920
+ "remarks": "Reports success and any errors encountered.",
7921
+ "stability": "experimental",
7922
+ "summary": "Response from cleanup Lambda."
7923
+ },
7924
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.CleanupResponse",
7925
+ "kind": "interface",
6253
7926
  "locationInModule": {
6254
- "filename": "use-cases/framework/bedrock/bedrock.ts",
6255
- "line": 42
7927
+ "filename": "use-cases/document-processing/chunking-config.ts",
7928
+ "line": 693
6256
7929
  },
6257
- "methods": [
7930
+ "name": "CleanupResponse",
7931
+ "properties": [
6258
7932
  {
7933
+ "abstract": true,
6259
7934
  "docs": {
6260
- "stability": "experimental"
7935
+ "stability": "experimental",
7936
+ "summary": "Number of chunks successfully deleted."
6261
7937
  },
7938
+ "immutable": true,
6262
7939
  "locationInModule": {
6263
- "filename": "use-cases/framework/bedrock/bedrock.ts",
6264
- "line": 43
7940
+ "filename": "use-cases/document-processing/chunking-config.ts",
7941
+ "line": 702
6265
7942
  },
6266
- "name": "deriveActualModelId",
6267
- "parameters": [
6268
- {
6269
- "name": "props",
6270
- "optional": true,
6271
- "type": {
6272
- "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelProps"
6273
- }
6274
- }
6275
- ],
6276
- "returns": {
6277
- "type": {
6278
- "primitive": "string"
6279
- }
7943
+ "name": "deletedChunks",
7944
+ "type": {
7945
+ "primitive": "number"
7946
+ }
7947
+ },
7948
+ {
7949
+ "abstract": true,
7950
+ "docs": {
7951
+ "stability": "experimental",
7952
+ "summary": "Document identifier."
6280
7953
  },
6281
- "static": true
7954
+ "immutable": true,
7955
+ "locationInModule": {
7956
+ "filename": "use-cases/document-processing/chunking-config.ts",
7957
+ "line": 697
7958
+ },
7959
+ "name": "documentId",
7960
+ "type": {
7961
+ "primitive": "string"
7962
+ }
6282
7963
  },
6283
7964
  {
7965
+ "abstract": true,
6284
7966
  "docs": {
6285
- "stability": "experimental"
7967
+ "remarks": "Empty if all deletions succeeded.",
7968
+ "stability": "experimental",
7969
+ "summary": "Array of error messages for failed deletions."
6286
7970
  },
7971
+ "immutable": true,
6287
7972
  "locationInModule": {
6288
- "filename": "use-cases/framework/bedrock/bedrock.ts",
6289
- "line": 48
7973
+ "filename": "use-cases/document-processing/chunking-config.ts",
7974
+ "line": 708
6290
7975
  },
6291
- "name": "generateModelIAMPermissions",
6292
- "parameters": [
6293
- {
6294
- "name": "scope",
6295
- "type": {
6296
- "fqn": "constructs.Construct"
6297
- }
6298
- },
6299
- {
6300
- "name": "props",
6301
- "optional": true,
6302
- "type": {
6303
- "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.BedrockModelProps"
6304
- }
6305
- }
6306
- ],
6307
- "returns": {
6308
- "type": {
6309
- "fqn": "aws-cdk-lib.aws_iam.PolicyStatement"
7976
+ "name": "errors",
7977
+ "type": {
7978
+ "collection": {
7979
+ "elementtype": {
7980
+ "primitive": "string"
7981
+ },
7982
+ "kind": "array"
6310
7983
  }
6311
- },
6312
- "static": true
7984
+ }
6313
7985
  }
6314
7986
  ],
6315
- "name": "BedrockModelUtils",
6316
- "symbolId": "use-cases/framework/bedrock/bedrock:BedrockModelUtils"
7987
+ "symbolId": "use-cases/document-processing/chunking-config:CleanupResponse"
6317
7988
  },
6318
7989
  "@cdklabs/cdk-appmod-catalog-blueprints.CloudfrontDistributionObservabilityPropertyInjector": {
6319
7990
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
@@ -6944,152 +8615,319 @@
6944
8615
  "name": "DefaultDocumentProcessingConfig",
6945
8616
  "properties": [
6946
8617
  {
6947
- "const": true,
8618
+ "const": true,
8619
+ "docs": {
8620
+ "stability": "experimental"
8621
+ },
8622
+ "immutable": true,
8623
+ "locationInModule": {
8624
+ "filename": "use-cases/document-processing/default-document-processing-config.ts",
8625
+ "line": 5
8626
+ },
8627
+ "name": "DEFAULT_OBSERVABILITY_METRIC_SVC_NAME",
8628
+ "static": true,
8629
+ "type": {
8630
+ "primitive": "string"
8631
+ }
8632
+ }
8633
+ ],
8634
+ "symbolId": "use-cases/document-processing/default-document-processing-config:DefaultDocumentProcessingConfig"
8635
+ },
8636
+ "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig": {
8637
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
8638
+ "docs": {
8639
+ "stability": "experimental",
8640
+ "summary": "Contains default constants for Observability related configuration."
8641
+ },
8642
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig",
8643
+ "initializer": {
8644
+ "docs": {
8645
+ "stability": "experimental"
8646
+ }
8647
+ },
8648
+ "kind": "class",
8649
+ "locationInModule": {
8650
+ "filename": "use-cases/utilities/observability/default-observability-config.ts",
8651
+ "line": 7
8652
+ },
8653
+ "name": "DefaultObservabilityConfig",
8654
+ "properties": [
8655
+ {
8656
+ "const": true,
8657
+ "docs": {
8658
+ "stability": "experimental",
8659
+ "summary": "Default namespace for powertools."
8660
+ },
8661
+ "immutable": true,
8662
+ "locationInModule": {
8663
+ "filename": "use-cases/utilities/observability/default-observability-config.ts",
8664
+ "line": 12
8665
+ },
8666
+ "name": "DEFAULT_METRIC_NAMESPACE",
8667
+ "static": true,
8668
+ "type": {
8669
+ "primitive": "string"
8670
+ }
8671
+ }
8672
+ ],
8673
+ "symbolId": "use-cases/utilities/observability/default-observability-config:DefaultObservabilityConfig"
8674
+ },
8675
+ "@cdklabs/cdk-appmod-catalog-blueprints.DefaultRuntimes": {
8676
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
8677
+ "docs": {
8678
+ "remarks": "Updating of\nRuntime versions should be done here.",
8679
+ "stability": "experimental",
8680
+ "summary": "Contains default runtimes that would be referenced by Lambda functions in the various use cases."
8681
+ },
8682
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DefaultRuntimes",
8683
+ "initializer": {
8684
+ "docs": {
8685
+ "stability": "experimental"
8686
+ }
8687
+ },
8688
+ "kind": "class",
8689
+ "locationInModule": {
8690
+ "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
8691
+ "line": 11
8692
+ },
8693
+ "name": "DefaultRuntimes",
8694
+ "properties": [
8695
+ {
8696
+ "const": true,
8697
+ "docs": {
8698
+ "stability": "experimental",
8699
+ "summary": "Default runtime for all Lambda functions in the use cases."
8700
+ },
8701
+ "immutable": true,
8702
+ "locationInModule": {
8703
+ "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
8704
+ "line": 16
8705
+ },
8706
+ "name": "NODEJS",
8707
+ "static": true,
8708
+ "type": {
8709
+ "fqn": "aws-cdk-lib.aws_lambda.Runtime"
8710
+ }
8711
+ },
8712
+ {
8713
+ "const": true,
8714
+ "docs": {
8715
+ "stability": "experimental",
8716
+ "summary": "Default runtime for Python based Lambda functions."
8717
+ },
8718
+ "immutable": true,
8719
+ "locationInModule": {
8720
+ "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
8721
+ "line": 21
8722
+ },
8723
+ "name": "PYTHON",
8724
+ "static": true,
8725
+ "type": {
8726
+ "fqn": "aws-cdk-lib.aws_lambda.Runtime"
8727
+ }
8728
+ },
8729
+ {
8730
+ "const": true,
8731
+ "docs": {
8732
+ "stability": "experimental"
8733
+ },
8734
+ "immutable": true,
8735
+ "locationInModule": {
8736
+ "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
8737
+ "line": 33
8738
+ },
8739
+ "name": "PYTHON_BUNDLING_IMAGE",
8740
+ "static": true,
8741
+ "type": {
8742
+ "primitive": "string"
8743
+ }
8744
+ },
8745
+ {
8746
+ "const": true,
8747
+ "docs": {
8748
+ "stability": "experimental",
8749
+ "summary": "Default bundling arguments for Python function."
8750
+ },
8751
+ "immutable": true,
8752
+ "locationInModule": {
8753
+ "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
8754
+ "line": 26
8755
+ },
8756
+ "name": "PYTHON_FUNCTION_BUNDLING",
8757
+ "static": true,
8758
+ "type": {
8759
+ "fqn": "@aws-cdk/aws-lambda-python-alpha.BundlingOptions"
8760
+ }
8761
+ }
8762
+ ],
8763
+ "symbolId": "use-cases/framework/custom-resource/default-runtimes:DefaultRuntimes"
8764
+ },
8765
+ "@cdklabs/cdk-appmod-catalog-blueprints.DocumentContent": {
8766
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
8767
+ "datatype": true,
8768
+ "docs": {
8769
+ "stability": "experimental",
8770
+ "summary": "Document content location information."
8771
+ },
8772
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DocumentContent",
8773
+ "kind": "interface",
8774
+ "locationInModule": {
8775
+ "filename": "use-cases/document-processing/chunking-config.ts",
8776
+ "line": 350
8777
+ },
8778
+ "name": "DocumentContent",
8779
+ "properties": [
8780
+ {
8781
+ "abstract": true,
8782
+ "docs": {
8783
+ "stability": "experimental",
8784
+ "summary": "S3 bucket containing the document."
8785
+ },
8786
+ "immutable": true,
8787
+ "locationInModule": {
8788
+ "filename": "use-cases/document-processing/chunking-config.ts",
8789
+ "line": 359
8790
+ },
8791
+ "name": "bucket",
8792
+ "type": {
8793
+ "primitive": "string"
8794
+ }
8795
+ },
8796
+ {
8797
+ "abstract": true,
8798
+ "docs": {
8799
+ "stability": "experimental",
8800
+ "summary": "Original filename of the document."
8801
+ },
8802
+ "immutable": true,
8803
+ "locationInModule": {
8804
+ "filename": "use-cases/document-processing/chunking-config.ts",
8805
+ "line": 369
8806
+ },
8807
+ "name": "filename",
8808
+ "type": {
8809
+ "primitive": "string"
8810
+ }
8811
+ },
8812
+ {
8813
+ "abstract": true,
6948
8814
  "docs": {
6949
- "stability": "experimental"
8815
+ "stability": "experimental",
8816
+ "summary": "S3 key for the document."
6950
8817
  },
6951
8818
  "immutable": true,
6952
8819
  "locationInModule": {
6953
- "filename": "use-cases/document-processing/default-document-processing-config.ts",
6954
- "line": 5
8820
+ "filename": "use-cases/document-processing/chunking-config.ts",
8821
+ "line": 364
6955
8822
  },
6956
- "name": "DEFAULT_OBSERVABILITY_METRIC_SVC_NAME",
6957
- "static": true,
8823
+ "name": "key",
6958
8824
  "type": {
6959
8825
  "primitive": "string"
6960
8826
  }
6961
- }
6962
- ],
6963
- "symbolId": "use-cases/document-processing/default-document-processing-config:DefaultDocumentProcessingConfig"
6964
- },
6965
- "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig": {
6966
- "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
6967
- "docs": {
6968
- "stability": "experimental",
6969
- "summary": "Contains default constants for Observability related configuration."
6970
- },
6971
- "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DefaultObservabilityConfig",
6972
- "initializer": {
6973
- "docs": {
6974
- "stability": "experimental"
6975
- }
6976
- },
6977
- "kind": "class",
6978
- "locationInModule": {
6979
- "filename": "use-cases/utilities/observability/default-observability-config.ts",
6980
- "line": 7
6981
- },
6982
- "name": "DefaultObservabilityConfig",
6983
- "properties": [
8827
+ },
6984
8828
  {
6985
- "const": true,
8829
+ "abstract": true,
6986
8830
  "docs": {
6987
8831
  "stability": "experimental",
6988
- "summary": "Default namespace for powertools."
8832
+ "summary": "Storage location type (e.g., 's3')."
6989
8833
  },
6990
8834
  "immutable": true,
6991
8835
  "locationInModule": {
6992
- "filename": "use-cases/utilities/observability/default-observability-config.ts",
6993
- "line": 12
8836
+ "filename": "use-cases/document-processing/chunking-config.ts",
8837
+ "line": 354
6994
8838
  },
6995
- "name": "DEFAULT_METRIC_NAMESPACE",
6996
- "static": true,
8839
+ "name": "location",
6997
8840
  "type": {
6998
8841
  "primitive": "string"
6999
8842
  }
7000
8843
  }
7001
8844
  ],
7002
- "symbolId": "use-cases/utilities/observability/default-observability-config:DefaultObservabilityConfig"
8845
+ "symbolId": "use-cases/document-processing/chunking-config:DocumentContent"
7003
8846
  },
7004
- "@cdklabs/cdk-appmod-catalog-blueprints.DefaultRuntimes": {
8847
+ "@cdklabs/cdk-appmod-catalog-blueprints.Entity": {
7005
8848
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
8849
+ "datatype": true,
7006
8850
  "docs": {
7007
- "remarks": "Updating of\nRuntime versions should be done here.",
7008
8851
  "stability": "experimental",
7009
- "summary": "Contains default runtimes that would be referenced by Lambda functions in the various use cases."
8852
+ "summary": "Extracted entity from document processing."
7010
8853
  },
7011
- "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.DefaultRuntimes",
7012
- "initializer": {
7013
- "docs": {
7014
- "stability": "experimental"
7015
- }
7016
- },
7017
- "kind": "class",
8854
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.Entity",
8855
+ "kind": "interface",
7018
8856
  "locationInModule": {
7019
- "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
7020
- "line": 11
8857
+ "filename": "use-cases/document-processing/chunking-config.ts",
8858
+ "line": 563
7021
8859
  },
7022
- "name": "DefaultRuntimes",
8860
+ "name": "Entity",
7023
8861
  "properties": [
7024
8862
  {
7025
- "const": true,
8863
+ "abstract": true,
7026
8864
  "docs": {
7027
8865
  "stability": "experimental",
7028
- "summary": "Default runtime for all Lambda functions in the use cases."
8866
+ "summary": "Type of entity (e.g., 'NAME', 'DATE', 'AMOUNT', 'ADDRESS')."
7029
8867
  },
7030
8868
  "immutable": true,
7031
8869
  "locationInModule": {
7032
- "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
7033
- "line": 16
8870
+ "filename": "use-cases/document-processing/chunking-config.ts",
8871
+ "line": 567
7034
8872
  },
7035
- "name": "NODEJS",
7036
- "static": true,
8873
+ "name": "type",
7037
8874
  "type": {
7038
- "fqn": "aws-cdk-lib.aws_lambda.Runtime"
8875
+ "primitive": "string"
7039
8876
  }
7040
8877
  },
7041
8878
  {
7042
- "const": true,
8879
+ "abstract": true,
7043
8880
  "docs": {
7044
8881
  "stability": "experimental",
7045
- "summary": "Default runtime for Python based Lambda functions."
8882
+ "summary": "Value of the entity."
7046
8883
  },
7047
8884
  "immutable": true,
7048
8885
  "locationInModule": {
7049
- "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
7050
- "line": 21
8886
+ "filename": "use-cases/document-processing/chunking-config.ts",
8887
+ "line": 572
7051
8888
  },
7052
- "name": "PYTHON",
7053
- "static": true,
8889
+ "name": "value",
7054
8890
  "type": {
7055
- "fqn": "aws-cdk-lib.aws_lambda.Runtime"
8891
+ "primitive": "string"
7056
8892
  }
7057
8893
  },
7058
8894
  {
7059
- "const": true,
8895
+ "abstract": true,
7060
8896
  "docs": {
7061
- "stability": "experimental"
8897
+ "stability": "experimental",
8898
+ "summary": "Optional chunk index where entity was found."
7062
8899
  },
7063
8900
  "immutable": true,
7064
8901
  "locationInModule": {
7065
- "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
7066
- "line": 33
8902
+ "filename": "use-cases/document-processing/chunking-config.ts",
8903
+ "line": 583
7067
8904
  },
7068
- "name": "PYTHON_BUNDLING_IMAGE",
7069
- "static": true,
8905
+ "name": "chunkIndex",
8906
+ "optional": true,
7070
8907
  "type": {
7071
- "primitive": "string"
8908
+ "primitive": "number"
7072
8909
  }
7073
8910
  },
7074
8911
  {
7075
- "const": true,
8912
+ "abstract": true,
7076
8913
  "docs": {
8914
+ "remarks": "Entities with page numbers are preserved even if duplicated.",
7077
8915
  "stability": "experimental",
7078
- "summary": "Default bundling arguments for Python function."
8916
+ "summary": "Optional page number where entity was found."
7079
8917
  },
7080
8918
  "immutable": true,
7081
8919
  "locationInModule": {
7082
- "filename": "use-cases/framework/custom-resource/default-runtimes.ts",
7083
- "line": 26
8920
+ "filename": "use-cases/document-processing/chunking-config.ts",
8921
+ "line": 578
7084
8922
  },
7085
- "name": "PYTHON_FUNCTION_BUNDLING",
7086
- "static": true,
8923
+ "name": "page",
8924
+ "optional": true,
7087
8925
  "type": {
7088
- "fqn": "@aws-cdk/aws-lambda-python-alpha.BundlingOptions"
8926
+ "primitive": "number"
7089
8927
  }
7090
8928
  }
7091
8929
  ],
7092
- "symbolId": "use-cases/framework/custom-resource/default-runtimes:DefaultRuntimes"
8930
+ "symbolId": "use-cases/document-processing/chunking-config:Entity"
7093
8931
  },
7094
8932
  "@cdklabs/cdk-appmod-catalog-blueprints.EventbridgeBroker": {
7095
8933
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
@@ -7398,6 +9236,81 @@
7398
9236
  "name": "FileType",
7399
9237
  "symbolId": "use-cases/utilities/data-loader:FileType"
7400
9238
  },
9239
+ "@cdklabs/cdk-appmod-catalog-blueprints.FixedPagesConfig": {
9240
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
9241
+ "datatype": true,
9242
+ "docs": {
9243
+ "remarks": "Splits documents by fixed page count (legacy approach).",
9244
+ "stability": "experimental",
9245
+ "summary": "Configuration for fixed-pages chunking strategy."
9246
+ },
9247
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.FixedPagesConfig",
9248
+ "kind": "interface",
9249
+ "locationInModule": {
9250
+ "filename": "use-cases/document-processing/chunking-config.ts",
9251
+ "line": 47
9252
+ },
9253
+ "name": "FixedPagesConfig",
9254
+ "properties": [
9255
+ {
9256
+ "abstract": true,
9257
+ "docs": {
9258
+ "default": "50",
9259
+ "stability": "experimental",
9260
+ "summary": "Number of pages per chunk."
9261
+ },
9262
+ "immutable": true,
9263
+ "locationInModule": {
9264
+ "filename": "use-cases/document-processing/chunking-config.ts",
9265
+ "line": 59
9266
+ },
9267
+ "name": "chunkSize",
9268
+ "optional": true,
9269
+ "type": {
9270
+ "primitive": "number"
9271
+ }
9272
+ },
9273
+ {
9274
+ "abstract": true,
9275
+ "docs": {
9276
+ "default": "5",
9277
+ "remarks": "Must be less than chunkSize.",
9278
+ "stability": "experimental",
9279
+ "summary": "Number of overlapping pages between consecutive chunks."
9280
+ },
9281
+ "immutable": true,
9282
+ "locationInModule": {
9283
+ "filename": "use-cases/document-processing/chunking-config.ts",
9284
+ "line": 66
9285
+ },
9286
+ "name": "overlapPages",
9287
+ "optional": true,
9288
+ "type": {
9289
+ "primitive": "number"
9290
+ }
9291
+ },
9292
+ {
9293
+ "abstract": true,
9294
+ "docs": {
9295
+ "default": "100",
9296
+ "remarks": "Documents with pages > threshold will be chunked.",
9297
+ "stability": "experimental",
9298
+ "summary": "Threshold for triggering chunking based on page count."
9299
+ },
9300
+ "immutable": true,
9301
+ "locationInModule": {
9302
+ "filename": "use-cases/document-processing/chunking-config.ts",
9303
+ "line": 53
9304
+ },
9305
+ "name": "pageThreshold",
9306
+ "optional": true,
9307
+ "type": {
9308
+ "primitive": "number"
9309
+ }
9310
+ }
9311
+ ],
9312
+ "symbolId": "use-cases/document-processing/chunking-config:FixedPagesConfig"
9313
+ },
7401
9314
  "@cdklabs/cdk-appmod-catalog-blueprints.Frontend": {
7402
9315
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
7403
9316
  "base": "constructs.Construct",
@@ -7697,70 +9610,184 @@
7697
9610
  "filename": "use-cases/webapp/frontend-construct.ts",
7698
9611
  "line": 93
7699
9612
  },
7700
- "name": "enableObservability",
9613
+ "name": "enableObservability",
9614
+ "optional": true,
9615
+ "type": {
9616
+ "primitive": "boolean"
9617
+ }
9618
+ },
9619
+ {
9620
+ "abstract": true,
9621
+ "docs": {
9622
+ "stability": "experimental",
9623
+ "summary": "Optional CloudFront error responses (defaults to SPA-friendly responses)."
9624
+ },
9625
+ "immutable": true,
9626
+ "locationInModule": {
9627
+ "filename": "use-cases/webapp/frontend-construct.ts",
9628
+ "line": 82
9629
+ },
9630
+ "name": "errorResponses",
9631
+ "optional": true,
9632
+ "type": {
9633
+ "collection": {
9634
+ "elementtype": {
9635
+ "fqn": "aws-cdk-lib.aws_cloudfront.ErrorResponse"
9636
+ },
9637
+ "kind": "array"
9638
+ }
9639
+ }
9640
+ },
9641
+ {
9642
+ "abstract": true,
9643
+ "docs": {
9644
+ "stability": "experimental",
9645
+ "summary": "Optional removal policy for all resources (defaults to DESTROY)."
9646
+ },
9647
+ "immutable": true,
9648
+ "locationInModule": {
9649
+ "filename": "use-cases/webapp/frontend-construct.ts",
9650
+ "line": 88
9651
+ },
9652
+ "name": "removalPolicy",
9653
+ "optional": true,
9654
+ "type": {
9655
+ "fqn": "aws-cdk-lib.RemovalPolicy"
9656
+ }
9657
+ },
9658
+ {
9659
+ "abstract": true,
9660
+ "docs": {
9661
+ "stability": "experimental",
9662
+ "summary": "Optional flag to skip the build process (useful for pre-built artifacts)."
9663
+ },
9664
+ "immutable": true,
9665
+ "locationInModule": {
9666
+ "filename": "use-cases/webapp/frontend-construct.ts",
9667
+ "line": 86
9668
+ },
9669
+ "name": "skipBuild",
9670
+ "optional": true,
9671
+ "type": {
9672
+ "primitive": "boolean"
9673
+ }
9674
+ }
9675
+ ],
9676
+ "symbolId": "use-cases/webapp/frontend-construct:FrontendProps"
9677
+ },
9678
+ "@cdklabs/cdk-appmod-catalog-blueprints.HybridConfig": {
9679
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
9680
+ "datatype": true,
9681
+ "docs": {
9682
+ "remarks": "Balances token count and page limits for optimal chunking.",
9683
+ "stability": "experimental",
9684
+ "summary": "Configuration for hybrid chunking strategy (RECOMMENDED)."
9685
+ },
9686
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.HybridConfig",
9687
+ "kind": "interface",
9688
+ "locationInModule": {
9689
+ "filename": "use-cases/document-processing/chunking-config.ts",
9690
+ "line": 100
9691
+ },
9692
+ "name": "HybridConfig",
9693
+ "properties": [
9694
+ {
9695
+ "abstract": true,
9696
+ "docs": {
9697
+ "default": "99",
9698
+ "remarks": "Prevents very large chunks even if token count is low.\nNote: Bedrock has a hard limit of 100 pages per PDF, so we default to 99\nto provide a safety margin.",
9699
+ "stability": "experimental",
9700
+ "summary": "Hard limit on pages per chunk."
9701
+ },
9702
+ "immutable": true,
9703
+ "locationInModule": {
9704
+ "filename": "use-cases/document-processing/chunking-config.ts",
9705
+ "line": 108
9706
+ },
9707
+ "name": "maxPagesPerChunk",
9708
+ "optional": true,
9709
+ "type": {
9710
+ "primitive": "number"
9711
+ }
9712
+ },
9713
+ {
9714
+ "abstract": true,
9715
+ "docs": {
9716
+ "default": "5000",
9717
+ "remarks": "Provides context continuity across chunks.",
9718
+ "stability": "experimental",
9719
+ "summary": "Number of overlapping tokens between consecutive chunks."
9720
+ },
9721
+ "immutable": true,
9722
+ "locationInModule": {
9723
+ "filename": "use-cases/document-processing/chunking-config.ts",
9724
+ "line": 136
9725
+ },
9726
+ "name": "overlapTokens",
7701
9727
  "optional": true,
7702
9728
  "type": {
7703
- "primitive": "boolean"
9729
+ "primitive": "number"
7704
9730
  }
7705
9731
  },
7706
9732
  {
7707
9733
  "abstract": true,
7708
9734
  "docs": {
9735
+ "default": "100",
9736
+ "remarks": "Documents with pages > threshold will be chunked.",
7709
9737
  "stability": "experimental",
7710
- "summary": "Optional CloudFront error responses (defaults to SPA-friendly responses)."
9738
+ "summary": "Threshold for triggering chunking based on page count."
7711
9739
  },
7712
9740
  "immutable": true,
7713
9741
  "locationInModule": {
7714
- "filename": "use-cases/webapp/frontend-construct.ts",
7715
- "line": 82
9742
+ "filename": "use-cases/document-processing/chunking-config.ts",
9743
+ "line": 122
7716
9744
  },
7717
- "name": "errorResponses",
9745
+ "name": "pageThreshold",
7718
9746
  "optional": true,
7719
9747
  "type": {
7720
- "collection": {
7721
- "elementtype": {
7722
- "fqn": "aws-cdk-lib.aws_cloudfront.ErrorResponse"
7723
- },
7724
- "kind": "array"
7725
- }
9748
+ "primitive": "number"
7726
9749
  }
7727
9750
  },
7728
9751
  {
7729
9752
  "abstract": true,
7730
9753
  "docs": {
9754
+ "default": "80000",
9755
+ "remarks": "Chunks aim for this token count but respect maxPagesPerChunk.",
7731
9756
  "stability": "experimental",
7732
- "summary": "Optional removal policy for all resources (defaults to DESTROY)."
9757
+ "summary": "Soft target for tokens per chunk."
7733
9758
  },
7734
9759
  "immutable": true,
7735
9760
  "locationInModule": {
7736
- "filename": "use-cases/webapp/frontend-construct.ts",
7737
- "line": 88
9761
+ "filename": "use-cases/document-processing/chunking-config.ts",
9762
+ "line": 115
7738
9763
  },
7739
- "name": "removalPolicy",
9764
+ "name": "targetTokensPerChunk",
7740
9765
  "optional": true,
7741
9766
  "type": {
7742
- "fqn": "aws-cdk-lib.RemovalPolicy"
9767
+ "primitive": "number"
7743
9768
  }
7744
9769
  },
7745
9770
  {
7746
9771
  "abstract": true,
7747
9772
  "docs": {
9773
+ "default": "150000",
9774
+ "remarks": "Documents with tokens > threshold will be chunked.",
7748
9775
  "stability": "experimental",
7749
- "summary": "Optional flag to skip the build process (useful for pre-built artifacts)."
9776
+ "summary": "Threshold for triggering chunking based on token count."
7750
9777
  },
7751
9778
  "immutable": true,
7752
9779
  "locationInModule": {
7753
- "filename": "use-cases/webapp/frontend-construct.ts",
7754
- "line": 86
9780
+ "filename": "use-cases/document-processing/chunking-config.ts",
9781
+ "line": 129
7755
9782
  },
7756
- "name": "skipBuild",
9783
+ "name": "tokenThreshold",
7757
9784
  "optional": true,
7758
9785
  "type": {
7759
- "primitive": "boolean"
9786
+ "primitive": "number"
7760
9787
  }
7761
9788
  }
7762
9789
  ],
7763
- "symbolId": "use-cases/webapp/frontend-construct:FrontendProps"
9790
+ "symbolId": "use-cases/document-processing/chunking-config:HybridConfig"
7764
9791
  },
7765
9792
  "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter": {
7766
9793
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
@@ -7784,7 +9811,7 @@
7784
9811
  },
7785
9812
  "locationInModule": {
7786
9813
  "filename": "use-cases/document-processing/adapter/adapter.ts",
7787
- "line": 47
9814
+ "line": 48
7788
9815
  },
7789
9816
  "name": "createFailedChain",
7790
9817
  "parameters": [
@@ -7796,6 +9823,16 @@
7796
9823
  "type": {
7797
9824
  "fqn": "constructs.Construct"
7798
9825
  }
9826
+ },
9827
+ {
9828
+ "docs": {
9829
+ "summary": "Optional prefix for construct IDs to ensure uniqueness when called multiple times."
9830
+ },
9831
+ "name": "idPrefix",
9832
+ "optional": true,
9833
+ "type": {
9834
+ "primitive": "string"
9835
+ }
7799
9836
  }
7800
9837
  ],
7801
9838
  "returns": {
@@ -7866,7 +9903,7 @@
7866
9903
  },
7867
9904
  "locationInModule": {
7868
9905
  "filename": "use-cases/document-processing/adapter/adapter.ts",
7869
- "line": 54
9906
+ "line": 56
7870
9907
  },
7871
9908
  "name": "createSuccessChain",
7872
9909
  "parameters": [
@@ -7878,6 +9915,16 @@
7878
9915
  "type": {
7879
9916
  "fqn": "constructs.Construct"
7880
9917
  }
9918
+ },
9919
+ {
9920
+ "docs": {
9921
+ "summary": "Optional prefix for construct IDs to ensure uniqueness when called multiple times."
9922
+ },
9923
+ "name": "idPrefix",
9924
+ "optional": true,
9925
+ "type": {
9926
+ "primitive": "string"
9927
+ }
7881
9928
  }
7882
9929
  ],
7883
9930
  "returns": {
@@ -9329,6 +11376,90 @@
9329
11376
  ],
9330
11377
  "symbolId": "use-cases/framework/foundation/network:NetworkProps"
9331
11378
  },
11379
+ "@cdklabs/cdk-appmod-catalog-blueprints.NoChunkingResponse": {
11380
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
11381
+ "datatype": true,
11382
+ "docs": {
11383
+ "remarks": "Document is below thresholds and will be processed without chunking.",
11384
+ "stability": "experimental",
11385
+ "summary": "Response when chunking is NOT required."
11386
+ },
11387
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.NoChunkingResponse",
11388
+ "kind": "interface",
11389
+ "locationInModule": {
11390
+ "filename": "use-cases/document-processing/chunking-config.ts",
11391
+ "line": 431
11392
+ },
11393
+ "name": "NoChunkingResponse",
11394
+ "properties": [
11395
+ {
11396
+ "abstract": true,
11397
+ "docs": {
11398
+ "stability": "experimental",
11399
+ "summary": "Document identifier."
11400
+ },
11401
+ "immutable": true,
11402
+ "locationInModule": {
11403
+ "filename": "use-cases/document-processing/chunking-config.ts",
11404
+ "line": 435
11405
+ },
11406
+ "name": "documentId",
11407
+ "type": {
11408
+ "primitive": "string"
11409
+ }
11410
+ },
11411
+ {
11412
+ "abstract": true,
11413
+ "docs": {
11414
+ "remarks": "Example: \"Document has 50 pages, below threshold of 100\"",
11415
+ "stability": "experimental",
11416
+ "summary": "Human-readable reason why chunking was not applied."
11417
+ },
11418
+ "immutable": true,
11419
+ "locationInModule": {
11420
+ "filename": "use-cases/document-processing/chunking-config.ts",
11421
+ "line": 451
11422
+ },
11423
+ "name": "reason",
11424
+ "type": {
11425
+ "primitive": "string"
11426
+ }
11427
+ },
11428
+ {
11429
+ "abstract": true,
11430
+ "docs": {
11431
+ "stability": "experimental",
11432
+ "summary": "Indicates chunking is not required."
11433
+ },
11434
+ "immutable": true,
11435
+ "locationInModule": {
11436
+ "filename": "use-cases/document-processing/chunking-config.ts",
11437
+ "line": 440
11438
+ },
11439
+ "name": "requiresChunking",
11440
+ "type": {
11441
+ "primitive": "boolean"
11442
+ }
11443
+ },
11444
+ {
11445
+ "abstract": true,
11446
+ "docs": {
11447
+ "stability": "experimental",
11448
+ "summary": "Token analysis results."
11449
+ },
11450
+ "immutable": true,
11451
+ "locationInModule": {
11452
+ "filename": "use-cases/document-processing/chunking-config.ts",
11453
+ "line": 445
11454
+ },
11455
+ "name": "tokenAnalysis",
11456
+ "type": {
11457
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.TokenAnalysis"
11458
+ }
11459
+ }
11460
+ ],
11461
+ "symbolId": "use-cases/document-processing/chunking-config:NoChunkingResponse"
11462
+ },
9332
11463
  "@cdklabs/cdk-appmod-catalog-blueprints.ObservableProps": {
9333
11464
  "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
9334
11465
  "datatype": true,
@@ -9420,15 +11551,20 @@
9420
11551
  "methods": [
9421
11552
  {
9422
11553
  "docs": {
9423
- "stability": "experimental"
11554
+ "returns": "Record of environment variables for Lambda configuration",
11555
+ "stability": "experimental",
11556
+ "summary": "Generate default Lambda configuration for Powertools."
9424
11557
  },
9425
11558
  "locationInModule": {
9426
11559
  "filename": "use-cases/utilities/observability/powertools-config.ts",
9427
- "line": 2
11560
+ "line": 11
9428
11561
  },
9429
11562
  "name": "generateDefaultLambdaConfig",
9430
11563
  "parameters": [
9431
11564
  {
11565
+ "docs": {
11566
+ "summary": "- Whether observability is enabled."
11567
+ },
9432
11568
  "name": "enableObservability",
9433
11569
  "optional": true,
9434
11570
  "type": {
@@ -9436,6 +11572,9 @@
9436
11572
  }
9437
11573
  },
9438
11574
  {
11575
+ "docs": {
11576
+ "summary": "- CloudWatch metrics namespace."
11577
+ },
9439
11578
  "name": "metricsNamespace",
9440
11579
  "optional": true,
9441
11580
  "type": {
@@ -9443,11 +11582,25 @@
9443
11582
  }
9444
11583
  },
9445
11584
  {
11585
+ "docs": {
11586
+ "summary": "- Service name for logging and metrics."
11587
+ },
9446
11588
  "name": "serviceName",
9447
11589
  "optional": true,
9448
11590
  "type": {
9449
11591
  "primitive": "string"
9450
11592
  }
11593
+ },
11594
+ {
11595
+ "docs": {
11596
+ "remarks": "Defaults to INFO.",
11597
+ "summary": "- Log level (INFO, ERROR, DEBUG, WARNING)."
11598
+ },
11599
+ "name": "logLevel",
11600
+ "optional": true,
11601
+ "type": {
11602
+ "primitive": "string"
11603
+ }
9451
11604
  }
9452
11605
  ],
9453
11606
  "returns": {
@@ -9507,7 +11660,7 @@
9507
11660
  },
9508
11661
  "locationInModule": {
9509
11662
  "filename": "use-cases/document-processing/adapter/queued-s3-adapter.ts",
9510
- "line": 272
11663
+ "line": 285
9511
11664
  },
9512
11665
  "name": "createFailedChain",
9513
11666
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter",
@@ -9517,6 +11670,13 @@
9517
11670
  "type": {
9518
11671
  "fqn": "constructs.Construct"
9519
11672
  }
11673
+ },
11674
+ {
11675
+ "name": "idPrefix",
11676
+ "optional": true,
11677
+ "type": {
11678
+ "primitive": "string"
11679
+ }
9520
11680
  }
9521
11681
  ],
9522
11682
  "returns": {
@@ -9533,7 +11693,7 @@
9533
11693
  },
9534
11694
  "locationInModule": {
9535
11695
  "filename": "use-cases/document-processing/adapter/queued-s3-adapter.ts",
9536
- "line": 148
11696
+ "line": 161
9537
11697
  },
9538
11698
  "name": "createIngressTrigger",
9539
11699
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter",
@@ -9575,7 +11735,7 @@
9575
11735
  },
9576
11736
  "locationInModule": {
9577
11737
  "filename": "use-cases/document-processing/adapter/queued-s3-adapter.ts",
9578
- "line": 301
11738
+ "line": 315
9579
11739
  },
9580
11740
  "name": "createSuccessChain",
9581
11741
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter",
@@ -9585,6 +11745,13 @@
9585
11745
  "type": {
9586
11746
  "fqn": "constructs.Construct"
9587
11747
  }
11748
+ },
11749
+ {
11750
+ "name": "idPrefix",
11751
+ "optional": true,
11752
+ "type": {
11753
+ "primitive": "string"
11754
+ }
9588
11755
  }
9589
11756
  ],
9590
11757
  "returns": {
@@ -9600,7 +11767,7 @@
9600
11767
  },
9601
11768
  "locationInModule": {
9602
11769
  "filename": "use-cases/document-processing/adapter/queued-s3-adapter.ts",
9603
- "line": 235
11770
+ "line": 248
9604
11771
  },
9605
11772
  "name": "generateAdapterIAMPolicies",
9606
11773
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter",
@@ -9643,7 +11810,7 @@
9643
11810
  },
9644
11811
  "locationInModule": {
9645
11812
  "filename": "use-cases/document-processing/adapter/queued-s3-adapter.ts",
9646
- "line": 101
11813
+ "line": 114
9647
11814
  },
9648
11815
  "name": "init",
9649
11816
  "overrides": "@cdklabs/cdk-appmod-catalog-blueprints.IAdapter",
@@ -9893,8 +12060,174 @@
9893
12060
  }
9894
12061
  ],
9895
12062
  "symbolId": "use-cases/utilities/observability/state-machine-observability-property-injector:StateMachineObservabilityPropertyInjector"
12063
+ },
12064
+ "@cdklabs/cdk-appmod-catalog-blueprints.TokenAnalysis": {
12065
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
12066
+ "datatype": true,
12067
+ "docs": {
12068
+ "remarks": "Provides information about document size and token distribution.",
12069
+ "stability": "experimental",
12070
+ "summary": "Token analysis results from PDF analysis."
12071
+ },
12072
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.TokenAnalysis",
12073
+ "kind": "interface",
12074
+ "locationInModule": {
12075
+ "filename": "use-cases/document-processing/chunking-config.ts",
12076
+ "line": 404
12077
+ },
12078
+ "name": "TokenAnalysis",
12079
+ "properties": [
12080
+ {
12081
+ "abstract": true,
12082
+ "docs": {
12083
+ "stability": "experimental",
12084
+ "summary": "Average tokens per page across the document."
12085
+ },
12086
+ "immutable": true,
12087
+ "locationInModule": {
12088
+ "filename": "use-cases/document-processing/chunking-config.ts",
12089
+ "line": 418
12090
+ },
12091
+ "name": "avgTokensPerPage",
12092
+ "type": {
12093
+ "primitive": "number"
12094
+ }
12095
+ },
12096
+ {
12097
+ "abstract": true,
12098
+ "docs": {
12099
+ "stability": "experimental",
12100
+ "summary": "Total number of pages in the document."
12101
+ },
12102
+ "immutable": true,
12103
+ "locationInModule": {
12104
+ "filename": "use-cases/document-processing/chunking-config.ts",
12105
+ "line": 413
12106
+ },
12107
+ "name": "totalPages",
12108
+ "type": {
12109
+ "primitive": "number"
12110
+ }
12111
+ },
12112
+ {
12113
+ "abstract": true,
12114
+ "docs": {
12115
+ "stability": "experimental",
12116
+ "summary": "Total estimated tokens in the document."
12117
+ },
12118
+ "immutable": true,
12119
+ "locationInModule": {
12120
+ "filename": "use-cases/document-processing/chunking-config.ts",
12121
+ "line": 408
12122
+ },
12123
+ "name": "totalTokens",
12124
+ "type": {
12125
+ "primitive": "number"
12126
+ }
12127
+ },
12128
+ {
12129
+ "abstract": true,
12130
+ "docs": {
12131
+ "remarks": "Used for token-based and hybrid chunking strategies.",
12132
+ "stability": "experimental",
12133
+ "summary": "Optional detailed token count for each page."
12134
+ },
12135
+ "immutable": true,
12136
+ "locationInModule": {
12137
+ "filename": "use-cases/document-processing/chunking-config.ts",
12138
+ "line": 424
12139
+ },
12140
+ "name": "tokensPerPage",
12141
+ "optional": true,
12142
+ "type": {
12143
+ "collection": {
12144
+ "elementtype": {
12145
+ "primitive": "number"
12146
+ },
12147
+ "kind": "array"
12148
+ }
12149
+ }
12150
+ }
12151
+ ],
12152
+ "symbolId": "use-cases/document-processing/chunking-config:TokenAnalysis"
12153
+ },
12154
+ "@cdklabs/cdk-appmod-catalog-blueprints.TokenBasedConfig": {
12155
+ "assembly": "@cdklabs/cdk-appmod-catalog-blueprints",
12156
+ "datatype": true,
12157
+ "docs": {
12158
+ "remarks": "Splits documents based on estimated token count to respect model limits.",
12159
+ "stability": "experimental",
12160
+ "summary": "Configuration for token-based chunking strategy."
12161
+ },
12162
+ "fqn": "@cdklabs/cdk-appmod-catalog-blueprints.TokenBasedConfig",
12163
+ "kind": "interface",
12164
+ "locationInModule": {
12165
+ "filename": "use-cases/document-processing/chunking-config.ts",
12166
+ "line": 73
12167
+ },
12168
+ "name": "TokenBasedConfig",
12169
+ "properties": [
12170
+ {
12171
+ "abstract": true,
12172
+ "docs": {
12173
+ "default": "100000",
12174
+ "remarks": "Ensures no chunk exceeds model token limits.",
12175
+ "stability": "experimental",
12176
+ "summary": "Maximum tokens per chunk."
12177
+ },
12178
+ "immutable": true,
12179
+ "locationInModule": {
12180
+ "filename": "use-cases/document-processing/chunking-config.ts",
12181
+ "line": 86
12182
+ },
12183
+ "name": "maxTokensPerChunk",
12184
+ "optional": true,
12185
+ "type": {
12186
+ "primitive": "number"
12187
+ }
12188
+ },
12189
+ {
12190
+ "abstract": true,
12191
+ "docs": {
12192
+ "default": "5000",
12193
+ "remarks": "Provides context continuity across chunks.",
12194
+ "stability": "experimental",
12195
+ "summary": "Number of overlapping tokens between consecutive chunks."
12196
+ },
12197
+ "immutable": true,
12198
+ "locationInModule": {
12199
+ "filename": "use-cases/document-processing/chunking-config.ts",
12200
+ "line": 93
12201
+ },
12202
+ "name": "overlapTokens",
12203
+ "optional": true,
12204
+ "type": {
12205
+ "primitive": "number"
12206
+ }
12207
+ },
12208
+ {
12209
+ "abstract": true,
12210
+ "docs": {
12211
+ "default": "150000",
12212
+ "remarks": "Documents with tokens > threshold will be chunked.",
12213
+ "stability": "experimental",
12214
+ "summary": "Threshold for triggering chunking based on token count."
12215
+ },
12216
+ "immutable": true,
12217
+ "locationInModule": {
12218
+ "filename": "use-cases/document-processing/chunking-config.ts",
12219
+ "line": 79
12220
+ },
12221
+ "name": "tokenThreshold",
12222
+ "optional": true,
12223
+ "type": {
12224
+ "primitive": "number"
12225
+ }
12226
+ }
12227
+ ],
12228
+ "symbolId": "use-cases/document-processing/chunking-config:TokenBasedConfig"
9896
12229
  }
9897
12230
  },
9898
- "version": "1.5.0",
9899
- "fingerprint": "lVVr/YWJ91Xx55QrRGCjGcwY9jo89v/yxcASrECZ/Dg="
12231
+ "version": "1.6.0",
12232
+ "fingerprint": "OFueXi+qz7VtZikZI7xIiECQ4G4YmwKdt5yPvDM79d4="
9900
12233
  }