projen 0.98.3__tar.gz → 0.98.12__tar.gz

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.

Potentially problematic release.


This version of projen might be problematic. Click here for more details.

Files changed (35) hide show
  1. {projen-0.98.3/src/projen.egg-info → projen-0.98.12}/PKG-INFO +4 -12
  2. {projen-0.98.3 → projen-0.98.12}/README.md +2 -10
  3. {projen-0.98.3 → projen-0.98.12}/setup.py +3 -3
  4. {projen-0.98.3 → projen-0.98.12}/src/projen/__init__.py +440 -10
  5. {projen-0.98.3 → projen-0.98.12}/src/projen/_jsii/__init__.py +1 -1
  6. {projen-0.98.3 → projen-0.98.12}/src/projen/_jsii/bin/projen +1 -1
  7. projen-0.98.12/src/projen/_jsii/projen@0.98.12.jsii.tgz +0 -0
  8. {projen-0.98.3 → projen-0.98.12}/src/projen/awscdk/__init__.py +145 -0
  9. {projen-0.98.3 → projen-0.98.12}/src/projen/cdk/__init__.py +97 -0
  10. {projen-0.98.3 → projen-0.98.12}/src/projen/cdk8s/__init__.py +97 -0
  11. {projen-0.98.3 → projen-0.98.12}/src/projen/cdktf/__init__.py +49 -0
  12. {projen-0.98.3 → projen-0.98.12}/src/projen/gitlab/__init__.py +128 -1
  13. {projen-0.98.3 → projen-0.98.12}/src/projen/javascript/__init__.py +196 -5
  14. {projen-0.98.3 → projen-0.98.12}/src/projen/javascript/biome_config/__init__.py +205 -28
  15. {projen-0.98.3 → projen-0.98.12}/src/projen/release/__init__.py +50 -24
  16. {projen-0.98.3 → projen-0.98.12}/src/projen/typescript/__init__.py +103 -0
  17. {projen-0.98.3 → projen-0.98.12}/src/projen/web/__init__.py +193 -0
  18. {projen-0.98.3 → projen-0.98.12/src/projen.egg-info}/PKG-INFO +4 -12
  19. {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/SOURCES.txt +1 -1
  20. {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/requires.txt +1 -1
  21. projen-0.98.3/src/projen/_jsii/projen@0.98.3.jsii.tgz +0 -0
  22. {projen-0.98.3 → projen-0.98.12}/LICENSE +0 -0
  23. {projen-0.98.3 → projen-0.98.12}/MANIFEST.in +0 -0
  24. {projen-0.98.3 → projen-0.98.12}/pyproject.toml +0 -0
  25. {projen-0.98.3 → projen-0.98.12}/setup.cfg +0 -0
  26. {projen-0.98.3 → projen-0.98.12}/src/projen/build/__init__.py +0 -0
  27. {projen-0.98.3 → projen-0.98.12}/src/projen/circleci/__init__.py +0 -0
  28. {projen-0.98.3 → projen-0.98.12}/src/projen/github/__init__.py +0 -0
  29. {projen-0.98.3 → projen-0.98.12}/src/projen/github/workflows/__init__.py +0 -0
  30. {projen-0.98.3 → projen-0.98.12}/src/projen/java/__init__.py +0 -0
  31. {projen-0.98.3 → projen-0.98.12}/src/projen/py.typed +0 -0
  32. {projen-0.98.3 → projen-0.98.12}/src/projen/python/__init__.py +0 -0
  33. {projen-0.98.3 → projen-0.98.12}/src/projen/vscode/__init__.py +0 -0
  34. {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/dependency_links.txt +0 -0
  35. {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: projen
3
- Version: 0.98.3
3
+ Version: 0.98.12
4
4
  Summary: CDK for software projects
5
5
  Home-page: https://github.com/projen/projen.git
6
6
  Author: Amazon Web Services
@@ -20,7 +20,7 @@ Requires-Python: ~=3.9
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  Requires-Dist: constructs<11.0.0,>=10.0.0
23
- Requires-Dist: jsii<2.0.0,>=1.116.0
23
+ Requires-Dist: jsii<2.0.0,>=1.119.0
24
24
  Requires-Dist: publication>=0.0.3
25
25
  Requires-Dist: typeguard<4.3.0,>=2.13.3
26
26
 
@@ -311,14 +311,6 @@ projen has an unofficial [VS Code extension](https://marketplace.visualstudio.co
311
311
  The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/)
312
312
  community Slack workspace.
313
313
 
314
- ### Virtual Meetup
315
-
316
- * Thursday June 30, 2022
317
- * 1-2pm America/New_York (EDT)
318
- * [CFP](https://bit.ly/3NEc0UQ) a Google Form
319
- * CFP Closes Saturday April 30, 2022
320
- * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)
321
-
322
314
  ## Contributions
323
315
 
324
316
  Contributions of all kinds are welcome! Check out our [contributor's
@@ -329,8 +321,8 @@ For a quick start, check out a development environment:
329
321
  ```bash
330
322
  $ git clone git@github.com:projen/projen
331
323
  $ cd projen
332
- $ yarn
333
- $ yarn watch # compile in the background
324
+ $ npm ci
325
+ $ npm run watch # compile in the background
334
326
  ```
335
327
 
336
328
  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -285,14 +285,6 @@ projen has an unofficial [VS Code extension](https://marketplace.visualstudio.co
285
285
  The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/)
286
286
  community Slack workspace.
287
287
 
288
- ### Virtual Meetup
289
-
290
- * Thursday June 30, 2022
291
- * 1-2pm America/New_York (EDT)
292
- * [CFP](https://bit.ly/3NEc0UQ) a Google Form
293
- * CFP Closes Saturday April 30, 2022
294
- * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)
295
-
296
288
  ## Contributions
297
289
 
298
290
  Contributions of all kinds are welcome! Check out our [contributor's
@@ -303,8 +295,8 @@ For a quick start, check out a development environment:
303
295
  ```bash
304
296
  $ git clone git@github.com:projen/projen
305
297
  $ cd projen
306
- $ yarn
307
- $ yarn watch # compile in the background
298
+ $ npm ci
299
+ $ npm run watch # compile in the background
308
300
  ```
309
301
 
310
302
  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -5,7 +5,7 @@ kwargs = json.loads(
5
5
  """
6
6
  {
7
7
  "name": "projen",
8
- "version": "0.98.3",
8
+ "version": "0.98.12",
9
9
  "description": "CDK for software projects",
10
10
  "license": "Apache-2.0",
11
11
  "url": "https://github.com/projen/projen.git",
@@ -43,7 +43,7 @@ kwargs = json.loads(
43
43
  ],
44
44
  "package_data": {
45
45
  "projen._jsii": [
46
- "projen@0.98.3.jsii.tgz"
46
+ "projen@0.98.12.jsii.tgz"
47
47
  ],
48
48
  "projen": [
49
49
  "py.typed"
@@ -52,7 +52,7 @@ kwargs = json.loads(
52
52
  "python_requires": "~=3.9",
53
53
  "install_requires": [
54
54
  "constructs>=10.0.0, <11.0.0",
55
- "jsii>=1.116.0, <2.0.0",
55
+ "jsii>=1.119.0, <2.0.0",
56
56
  "publication>=0.0.3",
57
57
  "typeguard>=2.13.3,<4.3.0"
58
58
  ],
@@ -286,14 +286,6 @@ projen has an unofficial [VS Code extension](https://marketplace.visualstudio.co
286
286
  The projen community can be found within the #projen channel in the [cdk.dev](https://cdk.dev/)
287
287
  community Slack workspace.
288
288
 
289
- ### Virtual Meetup
290
-
291
- * Thursday June 30, 2022
292
- * 1-2pm America/New_York (EDT)
293
- * [CFP](https://bit.ly/3NEc0UQ) a Google Form
294
- * CFP Closes Saturday April 30, 2022
295
- * Hosted on [Zoom](https://zoom.us/j/92399854777?pwd=OUZybHlobHNoZUs1VVordWhaRTVGdz09#success)
296
-
297
289
  ## Contributions
298
290
 
299
291
  Contributions of all kinds are welcome! Check out our [contributor's
@@ -304,8 +296,8 @@ For a quick start, check out a development environment:
304
296
  ```bash
305
297
  $ git clone git@github.com:projen/projen
306
298
  $ cd projen
307
- $ yarn
308
- $ yarn watch # compile in the background
299
+ $ npm ci
300
+ $ npm run watch # compile in the background
309
301
  ```
310
302
 
311
303
  Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
@@ -607,6 +599,158 @@ from ._jsii import *
607
599
  import constructs as _constructs_77d1e7e8
608
600
 
609
601
 
602
+ @jsii.enum(jsii_type="projen.AiAgent")
603
+ class AiAgent(enum.Enum):
604
+ '''(experimental) Supported AI coding assistants and their instruction file locations.
605
+
606
+ :stability: experimental
607
+ '''
608
+
609
+ GITHUB_COPILOT = "GITHUB_COPILOT"
610
+ '''(experimental) GitHub Copilot - .github/copilot-instructions.md.
611
+
612
+ :stability: experimental
613
+ '''
614
+ CURSOR = "CURSOR"
615
+ '''(experimental) Cursor IDE - .cursor/rules/project.md.
616
+
617
+ :stability: experimental
618
+ '''
619
+ CLAUDE = "CLAUDE"
620
+ '''(experimental) Claude Code - CLAUDE.md.
621
+
622
+ :stability: experimental
623
+ '''
624
+ AMAZON_Q = "AMAZON_Q"
625
+ '''(experimental) Amazon Q - .amazonq/rules/project.md.
626
+
627
+ :stability: experimental
628
+ '''
629
+ KIRO = "KIRO"
630
+ '''(experimental) Kiro - .kiro/steering/project.md.
631
+
632
+ :stability: experimental
633
+ '''
634
+
635
+
636
+ @jsii.data_type(
637
+ jsii_type="projen.AiInstructionsOptions",
638
+ jsii_struct_bases=[],
639
+ name_mapping={
640
+ "agents": "agents",
641
+ "agent_specific_instructions": "agentSpecificInstructions",
642
+ "include_default_instructions": "includeDefaultInstructions",
643
+ "instructions": "instructions",
644
+ },
645
+ )
646
+ class AiInstructionsOptions:
647
+ def __init__(
648
+ self,
649
+ *,
650
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
651
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
652
+ include_default_instructions: typing.Optional[builtins.bool] = None,
653
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
654
+ ) -> None:
655
+ '''(experimental) Options for configuring AI tool instruction files.
656
+
657
+ :param agents: (experimental) Which AI agents to generate instruction files for. Default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
658
+ :param agent_specific_instructions: (experimental) Per-agent custom instructions. Allows different instructions for different AI tools. Default: - no agent specific instructions
659
+ :param include_default_instructions: (experimental) Include default instructions for projen and general best practices. Default instructions will only be included for agents provided in the ``agents`` option. If ``agents`` is not provided, default instructions will be included for all agents. Default: true
660
+ :param instructions: (experimental) General instructions applicable to all agents. Default: - no agent specific instructions
661
+
662
+ :stability: experimental
663
+ '''
664
+ if __debug__:
665
+ type_hints = typing.get_type_hints(_typecheckingstub__5bf7714efdf83cf2031e4ef3aa1d0cb9511cb921777751c76a0f501c0c56e247)
666
+ check_type(argname="argument agents", value=agents, expected_type=type_hints["agents"])
667
+ check_type(argname="argument agent_specific_instructions", value=agent_specific_instructions, expected_type=type_hints["agent_specific_instructions"])
668
+ check_type(argname="argument include_default_instructions", value=include_default_instructions, expected_type=type_hints["include_default_instructions"])
669
+ check_type(argname="argument instructions", value=instructions, expected_type=type_hints["instructions"])
670
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
671
+ if agents is not None:
672
+ self._values["agents"] = agents
673
+ if agent_specific_instructions is not None:
674
+ self._values["agent_specific_instructions"] = agent_specific_instructions
675
+ if include_default_instructions is not None:
676
+ self._values["include_default_instructions"] = include_default_instructions
677
+ if instructions is not None:
678
+ self._values["instructions"] = instructions
679
+
680
+ @builtins.property
681
+ def agents(self) -> typing.Optional[typing.List[AiAgent]]:
682
+ '''(experimental) Which AI agents to generate instruction files for.
683
+
684
+ :default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
685
+
686
+ :stability: experimental
687
+ '''
688
+ result = self._values.get("agents")
689
+ return typing.cast(typing.Optional[typing.List[AiAgent]], result)
690
+
691
+ @builtins.property
692
+ def agent_specific_instructions(
693
+ self,
694
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.List[builtins.str]]]:
695
+ '''(experimental) Per-agent custom instructions.
696
+
697
+ Allows different instructions for different AI tools.
698
+
699
+ :default: - no agent specific instructions
700
+
701
+ :stability: experimental
702
+
703
+ Example::
704
+
705
+ {
706
+ [AiAgent.GITHUB_COPILOT]: {
707
+ instructions: ["Use descriptive commit messages."]
708
+ },
709
+ [AiAgent.CURSOR]: {
710
+ instructions: ["Prefer functional patterns.", "Always add tests."]
711
+ }
712
+ }
713
+ '''
714
+ result = self._values.get("agent_specific_instructions")
715
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.List[builtins.str]]], result)
716
+
717
+ @builtins.property
718
+ def include_default_instructions(self) -> typing.Optional[builtins.bool]:
719
+ '''(experimental) Include default instructions for projen and general best practices.
720
+
721
+ Default instructions will only be included for agents provided in the ``agents`` option.
722
+ If ``agents`` is not provided, default instructions will be included for all agents.
723
+
724
+ :default: true
725
+
726
+ :stability: experimental
727
+ '''
728
+ result = self._values.get("include_default_instructions")
729
+ return typing.cast(typing.Optional[builtins.bool], result)
730
+
731
+ @builtins.property
732
+ def instructions(self) -> typing.Optional[typing.List[builtins.str]]:
733
+ '''(experimental) General instructions applicable to all agents.
734
+
735
+ :default: - no agent specific instructions
736
+
737
+ :stability: experimental
738
+ '''
739
+ result = self._values.get("instructions")
740
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
741
+
742
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
743
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
744
+
745
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
746
+ return not (rhs == self)
747
+
748
+ def __repr__(self) -> str:
749
+ return "AiInstructionsOptions(%s)" % ", ".join(
750
+ k + "=" + repr(v) for k, v in self._values.items()
751
+ )
752
+
753
+
610
754
  class Component(
611
755
  _constructs_77d1e7e8.Construct,
612
756
  metaclass=jsii.JSIIMeta,
@@ -11236,6 +11380,217 @@ class YamlFileOptions(ObjectFileOptions):
11236
11380
  )
11237
11381
 
11238
11382
 
11383
+ class AiInstructions(
11384
+ Component,
11385
+ metaclass=jsii.JSIIMeta,
11386
+ jsii_type="projen.AiInstructions",
11387
+ ):
11388
+ '''(experimental) Generates instruction files for AI coding assistants with projen-specific guidance.
11389
+
11390
+ This component creates configuration files that help AI tools like GitHub Copilot,
11391
+ Cursor IDE, Claude Code, and Amazon Q understand that the project is managed by projen
11392
+ and should follow projen conventions.
11393
+
11394
+ :stability: experimental
11395
+
11396
+ Example::
11397
+
11398
+ const project = new TypeScriptProject({
11399
+ name: "my-project",
11400
+ defaultReleaseBranch: "main",
11401
+ });
11402
+
11403
+ // Basic usage - generates files for all supported AI agents
11404
+ new AiInstructions(project);
11405
+
11406
+ // Custom usage - specify which agents and add custom instructions
11407
+ new AiInstructions(project, {
11408
+ agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR],
11409
+ agentSpecificInstructions: {
11410
+ [AiAgent.GITHUB_COPILOT]: ["Always use descriptive commit messages."],
11411
+ },
11412
+ });
11413
+
11414
+ // Add more instructions after instantiation
11415
+ const ai = new AiInstructions(project);
11416
+ ai.addInstructions("Use functional programming patterns.");
11417
+ ai.addInstructions("Always write comprehensive tests.");
11418
+ '''
11419
+
11420
+ def __init__(
11421
+ self,
11422
+ project: Project,
11423
+ *,
11424
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
11425
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
11426
+ include_default_instructions: typing.Optional[builtins.bool] = None,
11427
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
11428
+ ) -> None:
11429
+ '''
11430
+ :param project: -
11431
+ :param agents: (experimental) Which AI agents to generate instruction files for. Default: - All agents: [AiAgent.GITHUB_COPILOT, AiAgent.CURSOR, AiAgent.CLAUDE, AiAgent.AMAZON_Q]
11432
+ :param agent_specific_instructions: (experimental) Per-agent custom instructions. Allows different instructions for different AI tools. Default: - no agent specific instructions
11433
+ :param include_default_instructions: (experimental) Include default instructions for projen and general best practices. Default instructions will only be included for agents provided in the ``agents`` option. If ``agents`` is not provided, default instructions will be included for all agents. Default: true
11434
+ :param instructions: (experimental) General instructions applicable to all agents. Default: - no agent specific instructions
11435
+
11436
+ :stability: experimental
11437
+ '''
11438
+ if __debug__:
11439
+ type_hints = typing.get_type_hints(_typecheckingstub__6ade3e0209730c28511c6c65af7db0ef1d8f6d736618b1a95064af6bf4e829b8)
11440
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11441
+ options = AiInstructionsOptions(
11442
+ agents=agents,
11443
+ agent_specific_instructions=agent_specific_instructions,
11444
+ include_default_instructions=include_default_instructions,
11445
+ instructions=instructions,
11446
+ )
11447
+
11448
+ jsii.create(self.__class__, self, [project, options])
11449
+
11450
+ @jsii.member(jsii_name="bestPractices")
11451
+ @builtins.classmethod
11452
+ def best_practices(cls, project: Project) -> builtins.str:
11453
+ '''(experimental) Returns development best practices instructions for AI agents.
11454
+
11455
+ :param project: -
11456
+
11457
+ :stability: experimental
11458
+ '''
11459
+ if __debug__:
11460
+ type_hints = typing.get_type_hints(_typecheckingstub__9b3a19a4e1f7d40bf00205a6394247af85d2428c672a0ecb7904470daaabda2f)
11461
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11462
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "bestPractices", [project]))
11463
+
11464
+ @jsii.member(jsii_name="projen")
11465
+ @builtins.classmethod
11466
+ def projen(cls, project: Project) -> builtins.str:
11467
+ '''(experimental) Returns projen-specific instructions for AI agents.
11468
+
11469
+ :param project: -
11470
+
11471
+ :stability: experimental
11472
+ '''
11473
+ if __debug__:
11474
+ type_hints = typing.get_type_hints(_typecheckingstub__065453e2727d00b362bd1cf1f58d194d6c355b2a9c2f575e92c43eb627f6eb89)
11475
+ check_type(argname="argument project", value=project, expected_type=type_hints["project"])
11476
+ return typing.cast(builtins.str, jsii.sinvoke(cls, "projen", [project]))
11477
+
11478
+ @jsii.member(jsii_name="addAgentSpecificInstructions")
11479
+ def add_agent_specific_instructions(
11480
+ self,
11481
+ agent: AiAgent,
11482
+ *instructions: builtins.str,
11483
+ ) -> None:
11484
+ '''(experimental) Add instructions for a specific AI agent.
11485
+
11486
+ This can also be used to add instructions for an AI agent that was previously not enabled.
11487
+
11488
+ :param agent: The AI agent to add instructions for.
11489
+ :param instructions: The instruction(s) to add.
11490
+
11491
+ :stability: experimental
11492
+
11493
+ Example::
11494
+
11495
+ aiInstructions.addAgentSpecificInstructions(AiAgent.GITHUB_COPILOT, "Use descriptive commit messages.");
11496
+ '''
11497
+ if __debug__:
11498
+ type_hints = typing.get_type_hints(_typecheckingstub__9ff14bf0a463b0f887b122f5949af2eedda259c6426a05e006686653e81b8fc8)
11499
+ check_type(argname="argument agent", value=agent, expected_type=type_hints["agent"])
11500
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11501
+ return typing.cast(None, jsii.invoke(self, "addAgentSpecificInstructions", [agent, *instructions]))
11502
+
11503
+ @jsii.member(jsii_name="addInstructions")
11504
+ def add_instructions(self, *instructions: builtins.str) -> None:
11505
+ '''(experimental) Adds instructions that will be included for all selected AI agents.
11506
+
11507
+ :param instructions: The instructions to add.
11508
+
11509
+ :stability: experimental
11510
+
11511
+ Example::
11512
+
11513
+ aiInstructions.addInstructions("Always use TypeScript strict mode.");
11514
+ aiInstructions.addInstructions("Prefer functional programming.", "Avoid mutations.");
11515
+ '''
11516
+ if __debug__:
11517
+ type_hints = typing.get_type_hints(_typecheckingstub__da44882109eef43fd7d698b3f301b9241d695eb97a717ffa73265862f39698ba)
11518
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11519
+ return typing.cast(None, jsii.invoke(self, "addInstructions", [*instructions]))
11520
+
11521
+
11522
+ class AiInstructionsFile(
11523
+ FileBase,
11524
+ metaclass=jsii.JSIIMeta,
11525
+ jsii_type="projen.AiInstructionsFile",
11526
+ ):
11527
+ '''
11528
+ :stability: experimental
11529
+ '''
11530
+
11531
+ def __init__(
11532
+ self,
11533
+ scope: _constructs_77d1e7e8.IConstruct,
11534
+ file_path: builtins.str,
11535
+ *,
11536
+ committed: typing.Optional[builtins.bool] = None,
11537
+ edit_gitignore: typing.Optional[builtins.bool] = None,
11538
+ executable: typing.Optional[builtins.bool] = None,
11539
+ marker: typing.Optional[builtins.bool] = None,
11540
+ readonly: typing.Optional[builtins.bool] = None,
11541
+ ) -> None:
11542
+ '''
11543
+ :param scope: -
11544
+ :param file_path: -
11545
+ :param committed: (experimental) Indicates whether this file should be committed to git or ignored. By default, all generated files are committed and anti-tamper is used to protect against manual modifications. Default: true
11546
+ :param edit_gitignore: (experimental) Update the project's .gitignore file. Default: true
11547
+ :param executable: (experimental) Whether the generated file should be marked as executable. Default: false
11548
+ :param marker: (experimental) Adds the projen marker to the file. Default: - marker will be included as long as the project is not ejected
11549
+ :param readonly: (experimental) Whether the generated file should be readonly. Default: true
11550
+
11551
+ :stability: experimental
11552
+ '''
11553
+ if __debug__:
11554
+ type_hints = typing.get_type_hints(_typecheckingstub__4b11da88a3895fa642ead3d82823bc49f77ad84be5d7816af5a52334434c5c79)
11555
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
11556
+ check_type(argname="argument file_path", value=file_path, expected_type=type_hints["file_path"])
11557
+ options = FileBaseOptions(
11558
+ committed=committed,
11559
+ edit_gitignore=edit_gitignore,
11560
+ executable=executable,
11561
+ marker=marker,
11562
+ readonly=readonly,
11563
+ )
11564
+
11565
+ jsii.create(self.__class__, self, [scope, file_path, options])
11566
+
11567
+ @jsii.member(jsii_name="addInstructions")
11568
+ def add_instructions(self, *instructions: builtins.str) -> None:
11569
+ '''(experimental) Adds instructions to the instruction file.
11570
+
11571
+ :param instructions: -
11572
+
11573
+ :stability: experimental
11574
+ '''
11575
+ if __debug__:
11576
+ type_hints = typing.get_type_hints(_typecheckingstub__da3f715a19bd0c18e2cc2d3bda06afae637174acbe15ef75ef39bb7c26f0ff90)
11577
+ check_type(argname="argument instructions", value=instructions, expected_type=typing.Tuple[type_hints["instructions"], ...]) # pyright: ignore [reportGeneralTypeIssues]
11578
+ return typing.cast(None, jsii.invoke(self, "addInstructions", [*instructions]))
11579
+
11580
+ @jsii.member(jsii_name="synthesizeContent")
11581
+ def _synthesize_content(self, resolver: IResolver) -> typing.Optional[builtins.str]:
11582
+ '''(experimental) Implemented by derived classes and returns the contents of the file to emit.
11583
+
11584
+ :param resolver: -
11585
+
11586
+ :stability: experimental
11587
+ '''
11588
+ if __debug__:
11589
+ type_hints = typing.get_type_hints(_typecheckingstub__af1c3edb2730dd42712c19d9f2ebd48921303c4efd980f8910326afc111d82cc)
11590
+ check_type(argname="argument resolver", value=resolver, expected_type=type_hints["resolver"])
11591
+ return typing.cast(typing.Optional[builtins.str], jsii.invoke(self, "synthesizeContent", [resolver]))
11592
+
11593
+
11239
11594
  @jsii.data_type(
11240
11595
  jsii_type="projen.Dependency",
11241
11596
  jsii_struct_bases=[DependencyCoordinates],
@@ -12575,6 +12930,10 @@ class TaskStep(TaskStepOptions):
12575
12930
 
12576
12931
 
12577
12932
  __all__ = [
12933
+ "AiAgent",
12934
+ "AiInstructions",
12935
+ "AiInstructionsFile",
12936
+ "AiInstructionsOptions",
12578
12937
  "Component",
12579
12938
  "CreateProjectOptions",
12580
12939
  "Dependencies",
@@ -12725,6 +13084,16 @@ from . import typescript
12725
13084
  from . import vscode
12726
13085
  from . import web
12727
13086
 
13087
+ def _typecheckingstub__5bf7714efdf83cf2031e4ef3aa1d0cb9511cb921777751c76a0f501c0c56e247(
13088
+ *,
13089
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
13090
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
13091
+ include_default_instructions: typing.Optional[builtins.bool] = None,
13092
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
13093
+ ) -> None:
13094
+ """Type checking stubs"""
13095
+ pass
13096
+
12728
13097
  def _typecheckingstub__e4ee40327ed6d04e3e377e300d915d402c50029248a86452fd19fd6372386d4b(
12729
13098
  scope: _constructs_77d1e7e8.IConstruct,
12730
13099
  id: typing.Optional[builtins.str] = None,
@@ -14406,6 +14775,67 @@ def _typecheckingstub__ca9e5a70f67f8e3db454227249c58dd5464be1446a55fcf3be780621f
14406
14775
  """Type checking stubs"""
14407
14776
  pass
14408
14777
 
14778
+ def _typecheckingstub__6ade3e0209730c28511c6c65af7db0ef1d8f6d736618b1a95064af6bf4e829b8(
14779
+ project: Project,
14780
+ *,
14781
+ agents: typing.Optional[typing.Sequence[AiAgent]] = None,
14782
+ agent_specific_instructions: typing.Optional[typing.Mapping[builtins.str, typing.Sequence[builtins.str]]] = None,
14783
+ include_default_instructions: typing.Optional[builtins.bool] = None,
14784
+ instructions: typing.Optional[typing.Sequence[builtins.str]] = None,
14785
+ ) -> None:
14786
+ """Type checking stubs"""
14787
+ pass
14788
+
14789
+ def _typecheckingstub__9b3a19a4e1f7d40bf00205a6394247af85d2428c672a0ecb7904470daaabda2f(
14790
+ project: Project,
14791
+ ) -> None:
14792
+ """Type checking stubs"""
14793
+ pass
14794
+
14795
+ def _typecheckingstub__065453e2727d00b362bd1cf1f58d194d6c355b2a9c2f575e92c43eb627f6eb89(
14796
+ project: Project,
14797
+ ) -> None:
14798
+ """Type checking stubs"""
14799
+ pass
14800
+
14801
+ def _typecheckingstub__9ff14bf0a463b0f887b122f5949af2eedda259c6426a05e006686653e81b8fc8(
14802
+ agent: AiAgent,
14803
+ *instructions: builtins.str,
14804
+ ) -> None:
14805
+ """Type checking stubs"""
14806
+ pass
14807
+
14808
+ def _typecheckingstub__da44882109eef43fd7d698b3f301b9241d695eb97a717ffa73265862f39698ba(
14809
+ *instructions: builtins.str,
14810
+ ) -> None:
14811
+ """Type checking stubs"""
14812
+ pass
14813
+
14814
+ def _typecheckingstub__4b11da88a3895fa642ead3d82823bc49f77ad84be5d7816af5a52334434c5c79(
14815
+ scope: _constructs_77d1e7e8.IConstruct,
14816
+ file_path: builtins.str,
14817
+ *,
14818
+ committed: typing.Optional[builtins.bool] = None,
14819
+ edit_gitignore: typing.Optional[builtins.bool] = None,
14820
+ executable: typing.Optional[builtins.bool] = None,
14821
+ marker: typing.Optional[builtins.bool] = None,
14822
+ readonly: typing.Optional[builtins.bool] = None,
14823
+ ) -> None:
14824
+ """Type checking stubs"""
14825
+ pass
14826
+
14827
+ def _typecheckingstub__da3f715a19bd0c18e2cc2d3bda06afae637174acbe15ef75ef39bb7c26f0ff90(
14828
+ *instructions: builtins.str,
14829
+ ) -> None:
14830
+ """Type checking stubs"""
14831
+ pass
14832
+
14833
+ def _typecheckingstub__af1c3edb2730dd42712c19d9f2ebd48921303c4efd980f8910326afc111d82cc(
14834
+ resolver: IResolver,
14835
+ ) -> None:
14836
+ """Type checking stubs"""
14837
+ pass
14838
+
14409
14839
  def _typecheckingstub__d3a39137d5e4f9c51c84e6a659a0e0d16c23ba1927ed8fe7f3f96ecd5d0110dc(
14410
14840
  *,
14411
14841
  name: builtins.str,
@@ -31,7 +31,7 @@ def check_type(argname: str, value: object, expected_type: typing.Any) -> typing
31
31
  import constructs._jsii
32
32
 
33
33
  __jsii_assembly__ = jsii.JSIIAssembly.load(
34
- "projen", "0.98.3", __name__[0:-6], "projen@0.98.3.jsii.tgz"
34
+ "projen", "0.98.12", __name__[0:-6], "projen@0.98.12.jsii.tgz"
35
35
  )
36
36
 
37
37
  __all__ = [
@@ -8,7 +8,7 @@ if "JSII_RUNTIME_PACKAGE_CACHE" not in os.environ:
8
8
  os.environ["JSII_RUNTIME_PACKAGE_CACHE"] = "disabled"
9
9
 
10
10
  __jsii_assembly__ = jsii.JSIIAssembly.load(
11
- "projen", "0.98.3", "projen", "projen@0.98.3.jsii.tgz"
11
+ "projen", "0.98.12", "projen", "projen@0.98.12.jsii.tgz"
12
12
  )
13
13
 
14
14
  exit_code = __jsii_assembly__.invokeBinScript("projen", "projen", sys.argv[1:])