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.
- {projen-0.98.3/src/projen.egg-info → projen-0.98.12}/PKG-INFO +4 -12
- {projen-0.98.3 → projen-0.98.12}/README.md +2 -10
- {projen-0.98.3 → projen-0.98.12}/setup.py +3 -3
- {projen-0.98.3 → projen-0.98.12}/src/projen/__init__.py +440 -10
- {projen-0.98.3 → projen-0.98.12}/src/projen/_jsii/__init__.py +1 -1
- {projen-0.98.3 → projen-0.98.12}/src/projen/_jsii/bin/projen +1 -1
- projen-0.98.12/src/projen/_jsii/projen@0.98.12.jsii.tgz +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/awscdk/__init__.py +145 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/cdk/__init__.py +97 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/cdk8s/__init__.py +97 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/cdktf/__init__.py +49 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/gitlab/__init__.py +128 -1
- {projen-0.98.3 → projen-0.98.12}/src/projen/javascript/__init__.py +196 -5
- {projen-0.98.3 → projen-0.98.12}/src/projen/javascript/biome_config/__init__.py +205 -28
- {projen-0.98.3 → projen-0.98.12}/src/projen/release/__init__.py +50 -24
- {projen-0.98.3 → projen-0.98.12}/src/projen/typescript/__init__.py +103 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/web/__init__.py +193 -0
- {projen-0.98.3 → projen-0.98.12/src/projen.egg-info}/PKG-INFO +4 -12
- {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/SOURCES.txt +1 -1
- {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/requires.txt +1 -1
- projen-0.98.3/src/projen/_jsii/projen@0.98.3.jsii.tgz +0 -0
- {projen-0.98.3 → projen-0.98.12}/LICENSE +0 -0
- {projen-0.98.3 → projen-0.98.12}/MANIFEST.in +0 -0
- {projen-0.98.3 → projen-0.98.12}/pyproject.toml +0 -0
- {projen-0.98.3 → projen-0.98.12}/setup.cfg +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/build/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/circleci/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/github/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/github/workflows/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/java/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/py.typed +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/python/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen/vscode/__init__.py +0 -0
- {projen-0.98.3 → projen-0.98.12}/src/projen.egg-info/dependency_links.txt +0 -0
- {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
|
+
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.
|
|
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
|
-
$
|
|
333
|
-
$
|
|
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
|
-
$
|
|
307
|
-
$
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
$
|
|
308
|
-
$
|
|
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.
|
|
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.
|
|
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:])
|
|
Binary file
|