@agent-teams/engineering-foundation 1.3.3 → 1.4.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 (152) hide show
  1. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-capability-config.d.ts +2 -2
  2. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-capability-config.d.ts.map +1 -1
  3. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-capability-config.js +15 -4
  4. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/load-capability-config.js.map +1 -1
  5. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/parse-growth-config.d.ts +8 -0
  6. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/parse-growth-config.d.ts.map +1 -0
  7. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/parse-growth-config.js +54 -0
  8. package/dist/capabilities/public-api-compatibility/adapters/inbound/configuration/parse-growth-config.js.map +1 -0
  9. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-input-context.d.ts +18 -0
  10. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-input-context.d.ts.map +1 -0
  11. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-input-context.js +194 -0
  12. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-input-context.js.map +1 -0
  13. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts +15 -0
  14. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts.map +1 -0
  15. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js +173 -0
  16. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js.map +1 -0
  17. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts +10 -0
  18. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts.map +1 -0
  19. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js +238 -0
  20. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js.map +1 -0
  21. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/workspace-growth-reader.d.ts +4 -0
  22. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/workspace-growth-reader.d.ts.map +1 -0
  23. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/workspace-growth-reader.js +15 -0
  24. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/workspace-growth-reader.js.map +1 -0
  25. package/dist/capabilities/public-api-compatibility/adapters/outbound/governance/governance-accepted-decision-evidence-acl.d.ts +1 -6
  26. package/dist/capabilities/public-api-compatibility/adapters/outbound/governance/governance-accepted-decision-evidence-acl.d.ts.map +1 -1
  27. package/dist/capabilities/public-api-compatibility/adapters/outbound/governance/governance-accepted-decision-evidence-acl.js +7 -1
  28. package/dist/capabilities/public-api-compatibility/adapters/outbound/governance/governance-accepted-decision-evidence-acl.js.map +1 -1
  29. package/dist/capabilities/public-api-compatibility/adapters/schema-validation.d.ts +1 -1
  30. package/dist/capabilities/public-api-compatibility/adapters/schema-validation.d.ts.map +1 -1
  31. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts +54 -0
  32. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts.map +1 -0
  33. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.js +2 -0
  34. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.js.map +1 -0
  35. package/dist/capabilities/public-api-compatibility/application/model/growth-admission.d.ts +77 -0
  36. package/dist/capabilities/public-api-compatibility/application/model/growth-admission.d.ts.map +1 -0
  37. package/dist/capabilities/public-api-compatibility/application/model/growth-admission.js +3 -0
  38. package/dist/capabilities/public-api-compatibility/application/model/growth-admission.js.map +1 -0
  39. package/dist/capabilities/public-api-compatibility/application/model/growth-configuration.d.ts +16 -0
  40. package/dist/capabilities/public-api-compatibility/application/model/growth-configuration.d.ts.map +1 -0
  41. package/dist/capabilities/public-api-compatibility/application/model/growth-configuration.js +2 -0
  42. package/dist/capabilities/public-api-compatibility/application/model/growth-configuration.js.map +1 -0
  43. package/dist/capabilities/public-api-compatibility/application/model/growth-observation.d.ts +119 -0
  44. package/dist/capabilities/public-api-compatibility/application/model/growth-observation.d.ts.map +1 -0
  45. package/dist/capabilities/public-api-compatibility/application/model/growth-observation.js +19 -0
  46. package/dist/capabilities/public-api-compatibility/application/model/growth-observation.js.map +1 -0
  47. package/dist/capabilities/public-api-compatibility/application/model/growth-report.d.ts +47 -0
  48. package/dist/capabilities/public-api-compatibility/application/model/growth-report.d.ts.map +1 -0
  49. package/dist/capabilities/public-api-compatibility/application/model/growth-report.js +2 -0
  50. package/dist/capabilities/public-api-compatibility/application/model/growth-report.js.map +1 -0
  51. package/dist/capabilities/public-api-compatibility/application/model/growth-workspace.d.ts +18 -0
  52. package/dist/capabilities/public-api-compatibility/application/model/growth-workspace.d.ts.map +1 -0
  53. package/dist/capabilities/public-api-compatibility/application/model/growth-workspace.js +2 -0
  54. package/dist/capabilities/public-api-compatibility/application/model/growth-workspace.js.map +1 -0
  55. package/dist/capabilities/public-api-compatibility/application/policies/compare-growth-surfaces.d.ts +22 -0
  56. package/dist/capabilities/public-api-compatibility/application/policies/compare-growth-surfaces.d.ts.map +1 -0
  57. package/dist/capabilities/public-api-compatibility/application/policies/compare-growth-surfaces.js +114 -0
  58. package/dist/capabilities/public-api-compatibility/application/policies/compare-growth-surfaces.js.map +1 -0
  59. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts +13 -0
  60. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts.map +1 -0
  61. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js +162 -0
  62. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js.map +1 -0
  63. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts +20 -0
  64. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts.map +1 -0
  65. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js +73 -0
  66. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js.map +1 -0
  67. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.d.ts +15 -0
  68. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.d.ts.map +1 -0
  69. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js +130 -0
  70. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js.map +1 -0
  71. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-package.d.ts +17 -0
  72. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-package.d.ts.map +1 -0
  73. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-package.js +124 -0
  74. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-package.js.map +1 -0
  75. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.d.ts +7 -0
  76. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.d.ts.map +1 -0
  77. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js +109 -0
  78. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js.map +1 -0
  79. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-resolution.d.ts +11 -0
  80. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-resolution.d.ts.map +1 -0
  81. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-resolution.js +53 -0
  82. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-resolution.js.map +1 -0
  83. package/dist/capabilities/public-api-compatibility/application/policies/retain-growth-compatibility.d.ts +26 -0
  84. package/dist/capabilities/public-api-compatibility/application/policies/retain-growth-compatibility.d.ts.map +1 -0
  85. package/dist/capabilities/public-api-compatibility/application/policies/retain-growth-compatibility.js +63 -0
  86. package/dist/capabilities/public-api-compatibility/application/policies/retain-growth-compatibility.js.map +1 -0
  87. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-decision.d.ts +5 -0
  88. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-decision.d.ts.map +1 -0
  89. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-decision.js +86 -0
  90. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-decision.js.map +1 -0
  91. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-execution.d.ts +5 -0
  92. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-execution.d.ts.map +1 -0
  93. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-execution.js +51 -0
  94. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-execution.js.map +1 -0
  95. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-observation.d.ts +4 -0
  96. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-observation.d.ts.map +1 -0
  97. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-observation.js +125 -0
  98. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-observation.js.map +1 -0
  99. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-report.d.ts +5 -0
  100. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-report.d.ts.map +1 -0
  101. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-report.js +156 -0
  102. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-report.js.map +1 -0
  103. package/dist/capabilities/public-api-compatibility/application/ports/accepted-decision-evidence.d.ts +5 -0
  104. package/dist/capabilities/public-api-compatibility/application/ports/accepted-decision-evidence.d.ts.map +1 -1
  105. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts +9 -0
  106. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts.map +1 -0
  107. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.js +2 -0
  108. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.js.map +1 -0
  109. package/dist/capabilities/public-api-compatibility/application/ports/growth-observation.d.ts +6 -0
  110. package/dist/capabilities/public-api-compatibility/application/ports/growth-observation.d.ts.map +1 -0
  111. package/dist/capabilities/public-api-compatibility/application/ports/growth-observation.js +2 -0
  112. package/dist/capabilities/public-api-compatibility/application/ports/growth-observation.js.map +1 -0
  113. package/dist/capabilities/public-api-compatibility/application/ports/growth-report-writer.d.ts +22 -0
  114. package/dist/capabilities/public-api-compatibility/application/ports/growth-report-writer.d.ts.map +1 -0
  115. package/dist/capabilities/public-api-compatibility/application/ports/growth-report-writer.js +11 -0
  116. package/dist/capabilities/public-api-compatibility/application/ports/growth-report-writer.js.map +1 -0
  117. package/dist/capabilities/public-api-compatibility/application/ports/growth-workspace.d.ts +7 -0
  118. package/dist/capabilities/public-api-compatibility/application/ports/growth-workspace.d.ts.map +1 -0
  119. package/dist/capabilities/public-api-compatibility/application/ports/growth-workspace.js +2 -0
  120. package/dist/capabilities/public-api-compatibility/application/ports/growth-workspace.js.map +1 -0
  121. package/dist/capabilities/public-api-compatibility/application/rules.d.ts +8 -0
  122. package/dist/capabilities/public-api-compatibility/application/rules.d.ts.map +1 -1
  123. package/dist/capabilities/public-api-compatibility/application/rules.js +1 -0
  124. package/dist/capabilities/public-api-compatibility/application/rules.js.map +1 -1
  125. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.d.ts +32 -0
  126. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.d.ts.map +1 -0
  127. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js +81 -0
  128. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js.map +1 -0
  129. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts +21 -0
  130. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts.map +1 -0
  131. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js +61 -0
  132. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js.map +1 -0
  133. package/dist/capabilities/public-api-compatibility/application/use-cases/observe-sdk-growth.d.ts +22 -0
  134. package/dist/capabilities/public-api-compatibility/application/use-cases/observe-sdk-growth.d.ts.map +1 -0
  135. package/dist/capabilities/public-api-compatibility/application/use-cases/observe-sdk-growth.js +89 -0
  136. package/dist/capabilities/public-api-compatibility/application/use-cases/observe-sdk-growth.js.map +1 -0
  137. package/dist/capabilities/public-api-compatibility/module.d.ts.map +1 -1
  138. package/dist/capabilities/public-api-compatibility/module.js +33 -1
  139. package/dist/capabilities/public-api-compatibility/module.js.map +1 -1
  140. package/dist/capabilities/public-api-compatibility/schemas.d.ts +1 -1
  141. package/dist/capabilities/public-api-compatibility/schemas.d.ts.map +1 -1
  142. package/dist/capabilities/public-api-compatibility/schemas.js +2 -1
  143. package/dist/capabilities/public-api-compatibility/schemas.js.map +1 -1
  144. package/dist/features/quality-coverage/adapters/consumer-toolchain.js +1 -1
  145. package/dist/features/quality-coverage/application/source-coverage.js +1 -1
  146. package/dist/features/quality-coverage/application/source-coverage.js.map +1 -1
  147. package/dist/schema-catalog.d.ts +1 -1
  148. package/dist/schema-catalog.d.ts.map +1 -1
  149. package/dist/schema-ids.d.ts +1 -1
  150. package/dist/schema-ids.d.ts.map +1 -1
  151. package/package.json +2 -1
  152. package/schemas/package-public-api-compatibility/v2.schema.json +263 -0
@@ -0,0 +1,263 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://schemas.agent-teams.ai/engineering-foundation/package-public-api-compatibility/v2",
4
+ "title": "Public API compatibility with SDK growth execution",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "acceptedDecisionBaselinePath",
10
+ "changesetDirectory",
11
+ "governanceConfigPath",
12
+ "packages",
13
+ "sdkGrowth"
14
+ ],
15
+ "properties": {
16
+ "schemaVersion": {
17
+ "const": 2
18
+ },
19
+ "changesetDirectory": {
20
+ "$ref": "#/$defs/repositoryPath"
21
+ },
22
+ "acceptedDecisionBaselinePath": {
23
+ "$ref": "#/$defs/repositoryPath"
24
+ },
25
+ "governanceConfigPath": {
26
+ "$ref": "#/$defs/repositoryPath"
27
+ },
28
+ "packages": {
29
+ "type": "array",
30
+ "minItems": 1,
31
+ "maxItems": 100,
32
+ "items": {
33
+ "$ref": "#/$defs/package"
34
+ }
35
+ },
36
+ "sdkGrowth": {
37
+ "type": "object",
38
+ "additionalProperties": false,
39
+ "required": [
40
+ "contractRevision",
41
+ "policyVersion",
42
+ "comparison",
43
+ "decisionsPath",
44
+ "reportPath"
45
+ ],
46
+ "properties": {
47
+ "contractRevision": {
48
+ "const": "foundation:sdk-growth:c0:5"
49
+ },
50
+ "policyVersion": {
51
+ "const": "foundation:sdk-growth:policy:1"
52
+ },
53
+ "comparison": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "required": [
57
+ "trustedBasePath",
58
+ "released"
59
+ ],
60
+ "properties": {
61
+ "trustedBasePath": {
62
+ "$ref": "#/$defs/growthPath"
63
+ },
64
+ "released": {
65
+ "type": "array",
66
+ "maxItems": 100,
67
+ "items": {
68
+ "$ref": "#/$defs/growthRelease"
69
+ },
70
+ "minItems": 1
71
+ }
72
+ }
73
+ },
74
+ "decisionsPath": {
75
+ "$ref": "#/$defs/growthPath"
76
+ },
77
+ "reportPath": {
78
+ "$ref": "#/$defs/growthPath"
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "$defs": {
84
+ "repositoryPath": {
85
+ "type": "string",
86
+ "minLength": 1,
87
+ "maxLength": 300,
88
+ "pattern": "^(?!/)(?!.*\\\\)(?!.*(?:^|/)\\.\\.(?:/|$))(?!.*[*?{}[\\]]).+$"
89
+ },
90
+ "packageName": {
91
+ "type": "string",
92
+ "minLength": 1,
93
+ "maxLength": 214,
94
+ "pattern": "^(?:@[a-z0-9][a-z0-9._-]*/)?[a-z0-9][a-z0-9._-]*$"
95
+ },
96
+ "exportPath": {
97
+ "type": "string",
98
+ "minLength": 1,
99
+ "maxLength": 300,
100
+ "pattern": "^(?:\\.|\\./[^\\\\/].*)$"
101
+ },
102
+ "fingerprint": {
103
+ "type": "string",
104
+ "pattern": "^sha256:[a-f0-9]{64}$"
105
+ },
106
+ "entrypoint": {
107
+ "type": "object",
108
+ "additionalProperties": false,
109
+ "required": [
110
+ "exportPath",
111
+ "declarationEntryPoint"
112
+ ],
113
+ "properties": {
114
+ "exportPath": {
115
+ "$ref": "#/$defs/exportPath"
116
+ },
117
+ "declarationEntryPoint": {
118
+ "$ref": "#/$defs/repositoryPath"
119
+ }
120
+ }
121
+ },
122
+ "nonTypeExportKind": {
123
+ "enum": [
124
+ "data",
125
+ "runtime",
126
+ "wildcard"
127
+ ]
128
+ },
129
+ "nonTypeExport": {
130
+ "type": "object",
131
+ "additionalProperties": false,
132
+ "required": [
133
+ "exportPath",
134
+ "kind"
135
+ ],
136
+ "properties": {
137
+ "exportPath": {
138
+ "$ref": "#/$defs/exportPath"
139
+ },
140
+ "kind": {
141
+ "$ref": "#/$defs/nonTypeExportKind"
142
+ }
143
+ }
144
+ },
145
+ "package": {
146
+ "type": "object",
147
+ "additionalProperties": false,
148
+ "required": [
149
+ "packageName",
150
+ "packageRoot",
151
+ "manifestPath",
152
+ "entrypoints",
153
+ "nonTypeExports",
154
+ "tsconfigPath",
155
+ "releasedBaselinePath",
156
+ "approvedBreakingChanges"
157
+ ],
158
+ "properties": {
159
+ "packageName": {
160
+ "$ref": "#/$defs/packageName"
161
+ },
162
+ "packageRoot": {
163
+ "$ref": "#/$defs/repositoryPath"
164
+ },
165
+ "manifestPath": {
166
+ "$ref": "#/$defs/repositoryPath"
167
+ },
168
+ "entrypoints": {
169
+ "type": "array",
170
+ "minItems": 1,
171
+ "maxItems": 100,
172
+ "items": {
173
+ "$ref": "#/$defs/entrypoint"
174
+ }
175
+ },
176
+ "nonTypeExports": {
177
+ "type": "array",
178
+ "maxItems": 100,
179
+ "items": {
180
+ "$ref": "#/$defs/nonTypeExport"
181
+ }
182
+ },
183
+ "tsconfigPath": {
184
+ "$ref": "#/$defs/repositoryPath"
185
+ },
186
+ "releasedBaselinePath": {
187
+ "$ref": "#/$defs/repositoryPath"
188
+ },
189
+ "approvedBreakingChanges": {
190
+ "type": "array",
191
+ "maxItems": 100,
192
+ "items": {
193
+ "type": "object",
194
+ "additionalProperties": false,
195
+ "required": [
196
+ "fingerprint",
197
+ "decisionId"
198
+ ],
199
+ "properties": {
200
+ "fingerprint": {
201
+ "$ref": "#/$defs/fingerprint"
202
+ },
203
+ "decisionId": {
204
+ "type": "string",
205
+ "pattern": "^ADR-[0-9]{4}$"
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ },
212
+ "growthRelease": {
213
+ "oneOf": [
214
+ {
215
+ "type": "object",
216
+ "additionalProperties": false,
217
+ "required": [
218
+ "packageName",
219
+ "kind",
220
+ "observationPath"
221
+ ],
222
+ "properties": {
223
+ "packageName": {
224
+ "$ref": "#/$defs/packageName"
225
+ },
226
+ "kind": {
227
+ "const": "released"
228
+ },
229
+ "observationPath": {
230
+ "$ref": "#/$defs/growthPath"
231
+ }
232
+ }
233
+ },
234
+ {
235
+ "type": "object",
236
+ "additionalProperties": false,
237
+ "required": [
238
+ "packageName",
239
+ "kind",
240
+ "trustedHistoryPath"
241
+ ],
242
+ "properties": {
243
+ "packageName": {
244
+ "$ref": "#/$defs/packageName"
245
+ },
246
+ "kind": {
247
+ "const": "initial-unreleased"
248
+ },
249
+ "trustedHistoryPath": {
250
+ "$ref": "#/$defs/growthPath"
251
+ }
252
+ }
253
+ }
254
+ ]
255
+ },
256
+ "growthPath": {
257
+ "type": "string",
258
+ "minLength": 1,
259
+ "maxLength": 300,
260
+ "pattern": "^(?![A-Za-z]:)(?!/)(?!.*[\\\\\\u0000*?{}\\[\\]])(?!.*(?:^|/)(?:\\.|\\.\\.|)(?:/|$))(?!\\s)(?!.*\\s$).+$"
261
+ }
262
+ }
263
+ }