@intentius/chant-lexicon-cpln 0.53.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 (266) hide show
  1. package/README.md +85 -0
  2. package/dist/api.d.ts +77 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/codegen/docs-cli.d.ts +3 -0
  5. package/dist/codegen/docs-cli.d.ts.map +1 -0
  6. package/dist/codegen/docs.d.ts +17 -0
  7. package/dist/codegen/docs.d.ts.map +1 -0
  8. package/dist/codegen/generate-cli.d.ts +6 -0
  9. package/dist/codegen/generate-cli.d.ts.map +1 -0
  10. package/dist/codegen/generate-lexicon.d.ts +36 -0
  11. package/dist/codegen/generate-lexicon.d.ts.map +1 -0
  12. package/dist/codegen/generate-typescript.d.ts +11 -0
  13. package/dist/codegen/generate-typescript.d.ts.map +1 -0
  14. package/dist/codegen/generate.d.ts +15 -0
  15. package/dist/codegen/generate.d.ts.map +1 -0
  16. package/dist/codegen/naming.d.ts +30 -0
  17. package/dist/codegen/naming.d.ts.map +1 -0
  18. package/dist/codegen/package.d.ts +17 -0
  19. package/dist/codegen/package.d.ts.map +1 -0
  20. package/dist/composites/cron-job.d.ts +60 -0
  21. package/dist/composites/cron-job.d.ts.map +1 -0
  22. package/dist/composites/gvc-environment.d.ts +47 -0
  23. package/dist/composites/gvc-environment.d.ts.map +1 -0
  24. package/dist/composites/index.d.ts +13 -0
  25. package/dist/composites/index.d.ts.map +1 -0
  26. package/dist/composites/public-domain.d.ts +68 -0
  27. package/dist/composites/public-domain.d.ts.map +1 -0
  28. package/dist/composites/secret-access.d.ts +78 -0
  29. package/dist/composites/secret-access.d.ts.map +1 -0
  30. package/dist/composites/serverless-service.d.ts +78 -0
  31. package/dist/composites/serverless-service.d.ts.map +1 -0
  32. package/dist/composites/stateful-service.d.ts +79 -0
  33. package/dist/composites/stateful-service.d.ts.map +1 -0
  34. package/dist/coverage.d.ts +59 -0
  35. package/dist/coverage.d.ts.map +1 -0
  36. package/dist/describe-resources.d.ts +71 -0
  37. package/dist/describe-resources.d.ts.map +1 -0
  38. package/dist/detect.d.ts +14 -0
  39. package/dist/detect.d.ts.map +1 -0
  40. package/dist/entity-props.d.ts +34 -0
  41. package/dist/entity-props.d.ts.map +1 -0
  42. package/dist/generated/index.d.ts +151 -0
  43. package/dist/generated/index.d.ts.map +1 -0
  44. package/dist/generated/runtime.d.ts +5 -0
  45. package/dist/generated/runtime.d.ts.map +1 -0
  46. package/dist/index.d.ts +8 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/init-templates.d.ts +16 -0
  49. package/dist/init-templates.d.ts.map +1 -0
  50. package/dist/integrity.json +35 -0
  51. package/dist/kinds.d.ts +70 -0
  52. package/dist/kinds.d.ts.map +1 -0
  53. package/dist/lint/audit-catalog.d.ts +19 -0
  54. package/dist/lint/audit-catalog.d.ts.map +1 -0
  55. package/dist/lint/post-synth/cpl010-unrestricted-outbound.d.ts +12 -0
  56. package/dist/lint/post-synth/cpl010-unrestricted-outbound.d.ts.map +1 -0
  57. package/dist/lint/post-synth/cpl011-internal-firewall-scope.d.ts +11 -0
  58. package/dist/lint/post-synth/cpl011-internal-firewall-scope.d.ts.map +1 -0
  59. package/dist/lint/post-synth/cpl012-no-literal-credential-env.d.ts +11 -0
  60. package/dist/lint/post-synth/cpl012-no-literal-credential-env.d.ts.map +1 -0
  61. package/dist/lint/post-synth/cpl013-qualified-identity-principal.d.ts +11 -0
  62. package/dist/lint/post-synth/cpl013-qualified-identity-principal.d.ts.map +1 -0
  63. package/dist/lint/post-synth/cpl014-qualified-secret-ref.d.ts +14 -0
  64. package/dist/lint/post-synth/cpl014-qualified-secret-ref.d.ts.map +1 -0
  65. package/dist/lint/post-synth/cpl020-serverless-single-port.d.ts +10 -0
  66. package/dist/lint/post-synth/cpl020-serverless-single-port.d.ts.map +1 -0
  67. package/dist/lint/post-synth/cpl021-cron-job-shape.d.ts +11 -0
  68. package/dist/lint/post-synth/cpl021-cron-job-shape.d.ts.map +1 -0
  69. package/dist/lint/post-synth/cpl022-container-ports.d.ts +10 -0
  70. package/dist/lint/post-synth/cpl022-container-ports.d.ts.map +1 -0
  71. package/dist/lint/post-synth/cpl023-container-resources.d.ts +12 -0
  72. package/dist/lint/post-synth/cpl023-container-resources.d.ts.map +1 -0
  73. package/dist/lint/post-synth/cpl024-probe-handler.d.ts +10 -0
  74. package/dist/lint/post-synth/cpl024-probe-handler.d.ts.map +1 -0
  75. package/dist/lint/post-synth/cpl025-autoscaling-shape.d.ts +11 -0
  76. package/dist/lint/post-synth/cpl025-autoscaling-shape.d.ts.map +1 -0
  77. package/dist/lint/post-synth/cpl026-scale-to-zero.d.ts +11 -0
  78. package/dist/lint/post-synth/cpl026-scale-to-zero.d.ts.map +1 -0
  79. package/dist/lint/post-synth/cpl027-capacity-ai-conflict.d.ts +13 -0
  80. package/dist/lint/post-synth/cpl027-capacity-ai-conflict.d.ts.map +1 -0
  81. package/dist/lint/post-synth/cpl028-volume-set.d.ts +3 -0
  82. package/dist/lint/post-synth/cpl028-volume-set.d.ts.map +1 -0
  83. package/dist/lint/post-synth/cpl029-link-targets.d.ts +3 -0
  84. package/dist/lint/post-synth/cpl029-link-targets.d.ts.map +1 -0
  85. package/dist/lint/post-synth/cpl030-domain-routing.d.ts +3 -0
  86. package/dist/lint/post-synth/cpl030-domain-routing.d.ts.map +1 -0
  87. package/dist/lint/post-synth/cpl040-pinned-image.d.ts +11 -0
  88. package/dist/lint/post-synth/cpl040-pinned-image.d.ts.map +1 -0
  89. package/dist/lint/post-synth/cpl041-image-reference-form.d.ts +12 -0
  90. package/dist/lint/post-synth/cpl041-image-reference-form.d.ts.map +1 -0
  91. package/dist/lint/post-synth/cpl042-gvc-placement.d.ts +10 -0
  92. package/dist/lint/post-synth/cpl042-gvc-placement.d.ts.map +1 -0
  93. package/dist/lint/post-synth/cpl043-policy-scope.d.ts +16 -0
  94. package/dist/lint/post-synth/cpl043-policy-scope.d.ts.map +1 -0
  95. package/dist/lint/post-synth/helpers.d.ts +45 -0
  96. package/dist/lint/post-synth/helpers.d.ts.map +1 -0
  97. package/dist/lint/post-synth/index.d.ts +3 -0
  98. package/dist/lint/post-synth/index.d.ts.map +1 -0
  99. package/dist/lint/rules/cpl001-no-secret-literals.d.ts +3 -0
  100. package/dist/lint/rules/cpl001-no-secret-literals.d.ts.map +1 -0
  101. package/dist/lint/rules/cpl002-prefer-resource-reference.d.ts +3 -0
  102. package/dist/lint/rules/cpl002-prefer-resource-reference.d.ts.map +1 -0
  103. package/dist/lint/rules/index.d.ts +6 -0
  104. package/dist/lint/rules/index.d.ts.map +1 -0
  105. package/dist/lsp/completions.d.ts +7 -0
  106. package/dist/lsp/completions.d.ts.map +1 -0
  107. package/dist/lsp/hover.d.ts +4 -0
  108. package/dist/lsp/hover.d.ts.map +1 -0
  109. package/dist/manifest.json +6 -0
  110. package/dist/meta.json +2110 -0
  111. package/dist/okf/index.md +39 -0
  112. package/dist/okf/rules/CPL001.md +22 -0
  113. package/dist/okf/rules/CPL002.md +22 -0
  114. package/dist/okf/rules/CPL010.md +15 -0
  115. package/dist/okf/rules/CPL011.md +15 -0
  116. package/dist/okf/rules/CPL012.md +15 -0
  117. package/dist/okf/rules/CPL013.md +15 -0
  118. package/dist/okf/rules/CPL014.md +16 -0
  119. package/dist/okf/rules/CPL020.md +11 -0
  120. package/dist/okf/rules/CPL021.md +15 -0
  121. package/dist/okf/rules/CPL022.md +15 -0
  122. package/dist/okf/rules/CPL023.md +15 -0
  123. package/dist/okf/rules/CPL024.md +15 -0
  124. package/dist/okf/rules/CPL025.md +15 -0
  125. package/dist/okf/rules/CPL026.md +15 -0
  126. package/dist/okf/rules/CPL027.md +15 -0
  127. package/dist/okf/rules/CPL028.md +15 -0
  128. package/dist/okf/rules/CPL029.md +15 -0
  129. package/dist/okf/rules/CPL030.md +16 -0
  130. package/dist/okf/rules/CPL040.md +15 -0
  131. package/dist/okf/rules/CPL041.md +15 -0
  132. package/dist/okf/rules/CPL042.md +11 -0
  133. package/dist/okf/rules/CPL043.md +15 -0
  134. package/dist/okf/types/Domain.md +22 -0
  135. package/dist/okf/types/Gvc.md +21 -0
  136. package/dist/okf/types/Identity.md +29 -0
  137. package/dist/okf/types/IpSet.md +21 -0
  138. package/dist/okf/types/Policy.md +28 -0
  139. package/dist/okf/types/Secret.md +23 -0
  140. package/dist/okf/types/VolumeSet.md +22 -0
  141. package/dist/okf/types/Workload.md +38 -0
  142. package/dist/ownership.d.ts +23 -0
  143. package/dist/ownership.d.ts.map +1 -0
  144. package/dist/package-cli.d.ts +3 -0
  145. package/dist/package-cli.d.ts.map +1 -0
  146. package/dist/plugin.d.ts +3 -0
  147. package/dist/plugin.d.ts.map +1 -0
  148. package/dist/reference-catalog.d.ts +24 -0
  149. package/dist/reference-catalog.d.ts.map +1 -0
  150. package/dist/rules/cpl001-no-secret-literals.ts +83 -0
  151. package/dist/rules/cpl002-prefer-resource-reference.ts +71 -0
  152. package/dist/rules/cpl010-unrestricted-outbound.ts +41 -0
  153. package/dist/rules/cpl011-internal-firewall-scope.ts +38 -0
  154. package/dist/rules/cpl012-no-literal-credential-env.ts +58 -0
  155. package/dist/rules/cpl013-qualified-identity-principal.ts +45 -0
  156. package/dist/rules/cpl014-qualified-secret-ref.ts +54 -0
  157. package/dist/rules/cpl020-serverless-single-port.ts +58 -0
  158. package/dist/rules/cpl021-cron-job-shape.ts +64 -0
  159. package/dist/rules/cpl022-container-ports.ts +64 -0
  160. package/dist/rules/cpl023-container-resources.ts +87 -0
  161. package/dist/rules/cpl024-probe-handler.ts +51 -0
  162. package/dist/rules/cpl025-autoscaling-shape.ts +100 -0
  163. package/dist/rules/cpl026-scale-to-zero.ts +67 -0
  164. package/dist/rules/cpl027-capacity-ai-conflict.ts +78 -0
  165. package/dist/rules/cpl028-volume-set.ts +183 -0
  166. package/dist/rules/cpl029-link-targets.ts +155 -0
  167. package/dist/rules/cpl030-domain-routing.ts +137 -0
  168. package/dist/rules/cpl040-pinned-image.ts +48 -0
  169. package/dist/rules/cpl041-image-reference-form.ts +60 -0
  170. package/dist/rules/cpl042-gvc-placement.ts +57 -0
  171. package/dist/rules/cpl043-policy-scope.ts +0 -0
  172. package/dist/rules/helpers.ts +114 -0
  173. package/dist/serializer.d.ts +69 -0
  174. package/dist/serializer.d.ts.map +1 -0
  175. package/dist/skills/chant-cpln-secrets.md +110 -0
  176. package/dist/skills/chant-cpln-workloads.md +78 -0
  177. package/dist/skills/chant-cpln.md +103 -0
  178. package/dist/spec/fetch.d.ts +43 -0
  179. package/dist/spec/fetch.d.ts.map +1 -0
  180. package/dist/spec/parse.d.ts +79 -0
  181. package/dist/spec/parse.d.ts.map +1 -0
  182. package/dist/spec/snapshot-cli.d.ts +18 -0
  183. package/dist/spec/snapshot-cli.d.ts.map +1 -0
  184. package/dist/types/index.d.ts +1649 -0
  185. package/dist/validate-cli.d.ts +3 -0
  186. package/dist/validate-cli.d.ts.map +1 -0
  187. package/dist/validate.d.ts +26 -0
  188. package/dist/validate.d.ts.map +1 -0
  189. package/package.json +74 -0
  190. package/src/api.ts +134 -0
  191. package/src/codegen/docs-cli.ts +7 -0
  192. package/src/codegen/docs.ts +94 -0
  193. package/src/codegen/generate-cli.ts +34 -0
  194. package/src/codegen/generate-lexicon.ts +88 -0
  195. package/src/codegen/generate-typescript.ts +71 -0
  196. package/src/codegen/generate.ts +110 -0
  197. package/src/codegen/naming.ts +61 -0
  198. package/src/codegen/package.ts +35 -0
  199. package/src/composites/composites.test.ts +252 -0
  200. package/src/composites/cron-job.ts +124 -0
  201. package/src/composites/gvc-environment.ts +104 -0
  202. package/src/composites/index.ts +17 -0
  203. package/src/composites/public-domain.ts +144 -0
  204. package/src/composites/secret-access.ts +136 -0
  205. package/src/composites/serverless-service.ts +143 -0
  206. package/src/composites/stateful-service.ts +179 -0
  207. package/src/coverage.ts +149 -0
  208. package/src/describe-resources.test.ts +252 -0
  209. package/src/describe-resources.ts +310 -0
  210. package/src/detect.ts +58 -0
  211. package/src/entity-props.ts +98 -0
  212. package/src/generated/index.d.ts +1649 -0
  213. package/src/generated/index.ts +156 -0
  214. package/src/generated/lexicon-cpln.json +2110 -0
  215. package/src/generated/runtime.ts +4 -0
  216. package/src/index.ts +31 -0
  217. package/src/init-templates.ts +131 -0
  218. package/src/kinds.ts +173 -0
  219. package/src/lint/audit-catalog.ts +230 -0
  220. package/src/lint/post-synth/cpl010-unrestricted-outbound.ts +41 -0
  221. package/src/lint/post-synth/cpl011-internal-firewall-scope.ts +38 -0
  222. package/src/lint/post-synth/cpl012-no-literal-credential-env.ts +58 -0
  223. package/src/lint/post-synth/cpl013-qualified-identity-principal.ts +45 -0
  224. package/src/lint/post-synth/cpl014-qualified-secret-ref.ts +54 -0
  225. package/src/lint/post-synth/cpl020-serverless-single-port.ts +58 -0
  226. package/src/lint/post-synth/cpl021-cron-job-shape.ts +64 -0
  227. package/src/lint/post-synth/cpl022-container-ports.ts +64 -0
  228. package/src/lint/post-synth/cpl023-container-resources.ts +87 -0
  229. package/src/lint/post-synth/cpl024-probe-handler.ts +51 -0
  230. package/src/lint/post-synth/cpl025-autoscaling-shape.ts +100 -0
  231. package/src/lint/post-synth/cpl026-scale-to-zero.ts +67 -0
  232. package/src/lint/post-synth/cpl027-capacity-ai-conflict.ts +78 -0
  233. package/src/lint/post-synth/cpl028-volume-set.ts +183 -0
  234. package/src/lint/post-synth/cpl029-link-targets.ts +155 -0
  235. package/src/lint/post-synth/cpl030-domain-routing.ts +137 -0
  236. package/src/lint/post-synth/cpl040-pinned-image.ts +48 -0
  237. package/src/lint/post-synth/cpl041-image-reference-form.ts +60 -0
  238. package/src/lint/post-synth/cpl042-gvc-placement.ts +57 -0
  239. package/src/lint/post-synth/cpl043-policy-scope.ts +0 -0
  240. package/src/lint/post-synth/helpers.ts +114 -0
  241. package/src/lint/post-synth/index.ts +45 -0
  242. package/src/lint/post-synth/post-synth.test.ts +737 -0
  243. package/src/lint/rules/cpl001-no-secret-literals.ts +83 -0
  244. package/src/lint/rules/cpl002-prefer-resource-reference.ts +71 -0
  245. package/src/lint/rules/index.ts +9 -0
  246. package/src/lint/rules/rules.test.ts +108 -0
  247. package/src/lsp/completions.test.ts +44 -0
  248. package/src/lsp/completions.ts +27 -0
  249. package/src/lsp/hover.test.ts +53 -0
  250. package/src/lsp/hover.ts +130 -0
  251. package/src/ownership.ts +28 -0
  252. package/src/package-cli.ts +25 -0
  253. package/src/plugin.test.ts +131 -0
  254. package/src/plugin.ts +187 -0
  255. package/src/reference-catalog.ts +110 -0
  256. package/src/serializer.test.ts +233 -0
  257. package/src/serializer.ts +253 -0
  258. package/src/skills/chant-cpln-secrets.md +110 -0
  259. package/src/skills/chant-cpln-workloads.md +78 -0
  260. package/src/skills/chant-cpln.md +103 -0
  261. package/src/spec/cpln-openapi.snapshot.json +10651 -0
  262. package/src/spec/fetch.ts +77 -0
  263. package/src/spec/parse.ts +451 -0
  264. package/src/spec/snapshot-cli.ts +71 -0
  265. package/src/validate-cli.ts +8 -0
  266. package/src/validate.ts +102 -0
@@ -0,0 +1,35 @@
1
+ {
2
+ "algorithm": "sha256",
3
+ "artifacts": {
4
+ "manifest.json": "bca10ad638e0196276b9df8ddc45e7d750cf2fb02ffcc492a891dada505a430c",
5
+ "meta.json": "02d6ffd90dc3c6f67cd71fdbefcaabbaf7d406f9b1e184eba58f11eef74c2dcb",
6
+ "types/index.d.ts": "1a5488dcdbb9291e49be14849654267996fc177c384da89e057036b7c947ebbb",
7
+ "rules/cpl001-no-secret-literals.ts": "c79b537f78dbd26893bd801b3e5c5f30d7326c8c6816a6fd82fb885796f86c61",
8
+ "rules/cpl002-prefer-resource-reference.ts": "b26b6eb759c1375645e5ed3c4be646bc8b1c459f523f142a8ac782742f4a642e",
9
+ "rules/cpl010-unrestricted-outbound.ts": "e84ed48216b1d07dce72a7c727f52763001af0fdc2c93614fb615ea5fdfcfec6",
10
+ "rules/cpl011-internal-firewall-scope.ts": "4685f3e5e584e4475282d1d1f1dd91d3b05447007602b61b498168e346498c5e",
11
+ "rules/cpl012-no-literal-credential-env.ts": "162c6bd1396337e408cda69b0b1956c734bfa344efe63c952cded7b141539a59",
12
+ "rules/cpl013-qualified-identity-principal.ts": "785f29831229c3ed1415d292c98f449a920e0d832f07c75763fbc92084e68222",
13
+ "rules/cpl014-qualified-secret-ref.ts": "cc709354cfb20c865bdd712e950c40555935628132974d0386c106691861a2b1",
14
+ "rules/cpl020-serverless-single-port.ts": "565f0ecd7974c10bed3dcf46e1ddc5e57f91ee7333805be0b545d01d7ba72401",
15
+ "rules/cpl021-cron-job-shape.ts": "d81a5272c4e0790eec150102c3f252edd7e0f04da44ec700ebdc670654e35d9b",
16
+ "rules/cpl022-container-ports.ts": "9567ef8e08625d3b4c66f4ed58d495c8699906dbe06c780d09970d9036f28217",
17
+ "rules/cpl023-container-resources.ts": "ee97db093285f45a3a52a6031febbf868bc604aa32176a160ee0def4d410cc30",
18
+ "rules/cpl024-probe-handler.ts": "aab64d67fb9fb65045d990a546448aaf6debc56866a9ebf7c43101cd070b9b27",
19
+ "rules/cpl025-autoscaling-shape.ts": "a39863c10fbe55d9b89c8fe28db39773332a97327bbb6b448fa75785f150b18c",
20
+ "rules/cpl026-scale-to-zero.ts": "a1c6ae957047d4d9a5c6ce0af4129bb3bfc50725004a5bdfaecc0a67270a5baf",
21
+ "rules/cpl027-capacity-ai-conflict.ts": "c2f52a0ed873ce777409f6f2fb60ff1de1e959710721edd62556822e4562f429",
22
+ "rules/cpl028-volume-set.ts": "641f7f664f358c9a759f0f279eeb18b8fd64c17ba2d21d8beb97eca15425b9d3",
23
+ "rules/cpl029-link-targets.ts": "26a64903a9f25d0a89bb84133a1c43b35273121225e708033feb42ef46c144cc",
24
+ "rules/cpl030-domain-routing.ts": "18ec147f4948bd708dd6d055eef84097376e2647a3d34217b9da4f877cb4f729",
25
+ "rules/cpl040-pinned-image.ts": "68f91691635dbe399e6a747393cd61a39e21a346cb0ab443ba9e6f3c1d495f93",
26
+ "rules/cpl041-image-reference-form.ts": "37ee6788b896239a3381250ff371bb21e8a5fc1488ec8033cb90f3550b4eebbb",
27
+ "rules/cpl042-gvc-placement.ts": "eb49773f299e61994ae85df7414bcdd632dba51706af29dde5f7bba695d1ba5c",
28
+ "rules/cpl043-policy-scope.ts": "8abe174a7ea79e828b9754b9ec6b850e5326f9bec13ea4daf2462f5852e1822e",
29
+ "rules/helpers.ts": "00a50fc85886b93dc3a3038f766860083c5d4523c39a6d1770a2064e96f62d8f",
30
+ "skills/chant-cpln.md": "4d69996e9525b5032937a955de25c2afa73938b6336cc186b68bb8e7c661709a",
31
+ "skills/chant-cpln-workloads.md": "8353909ff18f244f4d4389e74b8d95b04359e97a46ddacb18d669d41d62b6080",
32
+ "skills/chant-cpln-secrets.md": "8628c2286a7e8e14aa78224fe22ff266dc54b996f4fdb64002fa433213de13a0"
33
+ },
34
+ "composite": "797cd0dcabcb03a6d312162b315e918601558fbeba01e2ba24efab2042167b6f"
35
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * The Control Plane kinds this lexicon models, and the facts about each that
3
+ * more than one subsystem needs.
4
+ *
5
+ * Codegen, the serializer, observation, the LSP providers, the MCP catalog and
6
+ * the docs generator all need to agree on the same three things: which schema
7
+ * in the OpenAPI document backs a kind, what its chant type name is, and
8
+ * whether it is scoped to a GVC. Each of those was, in an earlier draft, a
9
+ * literal repeated in five files — so a kind added in one place quietly went
10
+ * missing from the others. This table is the single place a kind is declared.
11
+ *
12
+ * Coverage is deliberately the *workload* surface rather than every kind the
13
+ * API exposes. The org-administration kinds (`group`, `serviceaccount`,
14
+ * `cloudaccount`, `auditctx`, `user`, `agent`) and `mk8s` are all modellable
15
+ * from the same spec by adding rows here; they are out of the first pass, not
16
+ * out of reach. `chant cpln coverage` reports the gap rather than hiding it.
17
+ */
18
+ /** The chant namespace segment for every generated cpln type. */
19
+ export declare const NAMESPACE = "Cpln";
20
+ /** The single service segment. The Control Plane Core API is one service. */
21
+ export declare const SERVICE = "Core";
22
+ export interface CplnKind {
23
+ /**
24
+ * The `kind` discriminator as it appears in a `cpln apply` manifest and in
25
+ * the API's own responses. Also the REST collection segment — the API is
26
+ * uniform that way, so `/org/{org}/{kind}` is the org-scoped collection and
27
+ * `/org/{org}/gvc/{gvc}/{kind}` the GVC-scoped one.
28
+ */
29
+ kind: string;
30
+ /** The schema name in `components.schemas` backing this kind. */
31
+ schema: string;
32
+ /** The chant type name, e.g. `Cpln::Core::Workload`. */
33
+ typeName: string;
34
+ /** The generated TypeScript class name, e.g. `Workload`. */
35
+ className: string;
36
+ /**
37
+ * Whether the kind lives inside a GVC. GVC-scoped kinds get a synthetic
38
+ * `gvc` property — see `SYNTHETIC_GVC_PROP` in `spec/parse.ts` for why the
39
+ * spec cannot supply it.
40
+ */
41
+ gvcScoped: boolean;
42
+ /** One-line summary, used for LSP hover, MCP catalog entries and docs. */
43
+ summary: string;
44
+ }
45
+ export declare const KINDS: CplnKind[];
46
+ /** Every modelled kind string, in declaration order. */
47
+ export declare const KIND_NAMES: string[];
48
+ /** Look up a kind by its `kind` discriminator (`"workload"`). */
49
+ export declare function kindByName(kind: string): CplnKind | undefined;
50
+ /** Look up a kind by chant type name (`"Cpln::Core::Workload"`). */
51
+ export declare function kindByTypeName(typeName: string): CplnKind | undefined;
52
+ /** Look up a kind by generated class name (`"Workload"`). */
53
+ export declare function kindByClassName(className: string): CplnKind | undefined;
54
+ /** Whether a chant type name belongs to a modelled cpln resource (not a property type). */
55
+ export declare function isCplnResourceType(typeName: string): boolean;
56
+ /**
57
+ * The REST collection path for a kind, relative to the API root.
58
+ *
59
+ * GVC-scoped kinds have two: the writable collection nested under their GVC,
60
+ * and an org-wide read-only rollup. Observation uses the rollup (one request
61
+ * per kind instead of one per GVC); apply uses the nested one.
62
+ */
63
+ export declare function collectionPath(kind: CplnKind, org: string, gvc?: string): string;
64
+ /** The path of a single named resource. */
65
+ export declare function resourcePath(kind: CplnKind, org: string, name: string, gvc?: string): string;
66
+ /** Extract the short name from a chant type name: `Cpln::Core::Workload` → `Workload`. */
67
+ export declare function cplnShortName(typeName: string): string;
68
+ /** Extract the service segment: `Cpln::Core::Workload` → `Core`. */
69
+ export declare function cplnServiceName(typeName: string): string;
70
+ //# sourceMappingURL=kinds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kinds.d.ts","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iEAAiE;AACjE,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC,6EAA6E;AAC7E,eAAO,MAAM,OAAO,SAAS,CAAC;AAE9B,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,EAoE3B,CAAC;AAEF,wDAAwD;AACxD,eAAO,MAAM,UAAU,EAAE,MAAM,EAA6B,CAAC;AAM7D,iEAAiE;AACjE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAE7D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAErE;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAEvE;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhF;AAED,2CAA2C;AAC3C,wBAAgB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,0FAA0F;AAC1F,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGxD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The cpln lexicon's `chant audit` catalog — metadata for every CPL check.
3
+ *
4
+ * Every entry carries `yamlBased: false`. That is not an oversight: all of
5
+ * cpln's checks read the chant model (`ctx.entities`) rather than the emitted
6
+ * manifests (`ctx.outputs`), because the facts they need — which GVC a workload
7
+ * is placed in, which volume set a mount names, whether a policy principal is
8
+ * GVC-qualified — are relationships between declared resources rather than text
9
+ * in one document. They fire on `chant build` and cannot fire on an audit of
10
+ * standalone cpln YAML. `auditRule()` hardcodes `yamlBased: true`, so these are
11
+ * constructed directly.
12
+ *
13
+ * A test asserts this catalog covers every check the plugin registers, so a
14
+ * check added without an entry here fails the build rather than contributing
15
+ * nothing to `chant audit` silently.
16
+ */
17
+ import type { RuleMeta } from "@intentius/chant/audit/catalog";
18
+ export declare const cplnAuditCatalog: Record<string, RuleMeta>;
19
+ //# sourceMappingURL=audit-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAsD1E,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA8JrD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL010: a workload that may call out to the entire internet.
4
+ *
5
+ * Inbound `0.0.0.0/0` is how a public service is *supposed* to be written, so
6
+ * it is not flagged. Outbound `0.0.0.0/0` is different: it is rarely required,
7
+ * it is the egress path for anything that gets a foothold in the container,
8
+ * and Control Plane supports hostname rules (with wildcards) precisely so it
9
+ * does not have to be all-or-nothing.
10
+ */
11
+ export declare const unrestrictedOutboundCheck: PostSynthCheck;
12
+ //# sourceMappingURL=cpl010-unrestricted-outbound.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl010-unrestricted-outbound.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl010-unrestricted-outbound.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAM9G;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,EAAE,cAyBvC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL011: internal firewall opened to the whole org.
4
+ *
5
+ * `same-org` lets every workload in every GVC reach this one, which crosses the
6
+ * boundary a GVC exists to draw. `same-gvc` and `workload-list` cover almost
7
+ * every real case, and `workload-list` works cross-GVC when that is genuinely
8
+ * needed.
9
+ */
10
+ export declare const internalFirewallScopeCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl011-internal-firewall-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl011-internal-firewall-scope.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl011-internal-firewall-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAyBxC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL012: a credential-shaped env var carrying a literal value.
4
+ *
5
+ * The alternative is one string change — `cpln://secret/db.password` — so a
6
+ * literal here is almost always an oversight rather than a decision. Env values
7
+ * end up in the workload spec, which is readable by anyone with `get` on the
8
+ * workload, and in every diff of the manifest.
9
+ */
10
+ export declare const noLiteralCredentialEnvCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl012-no-literal-credential-env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl012-no-literal-credential-env.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl012-no-literal-credential-env.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAgB9G;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,cAiCzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL013: an identity principal link that Control Plane will ignore.
4
+ *
5
+ * `//identity/NAME` is accepted by the policy API and then has no effect. Only
6
+ * the GVC-qualified `//gvc/GVC/identity/NAME` grants anything. Nothing reports
7
+ * this — the policy exists, the binding exists, and the permission is simply
8
+ * never granted.
9
+ */
10
+ export declare const qualifiedIdentityPrincipalCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl013-qualified-identity-principal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl013-qualified-identity-principal.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl013-qualified-identity-principal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,cAgC7C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL014: a secret reference with no field qualifier.
4
+ *
5
+ * `cpln://secret/db` resolves to nothing for every secret type except `gcp`,
6
+ * which is conventionally mounted as a whole JSON file. The field name is not
7
+ * optional: `opaque` needs `.payload`, `userpass` needs `.username`/`.password`,
8
+ * `tls` needs `.cert`/`.key`, and a `dictionary` needs one of its keys.
9
+ *
10
+ * Volume mounts are exempt — mounting a secret as a directory is the documented
11
+ * way to consume a `dictionary` or a `gcp` credential file.
12
+ */
13
+ export declare const qualifiedSecretRefCheck: PostSynthCheck;
14
+ //# sourceMappingURL=cpl014-qualified-secret-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl014-qualified-secret-ref.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl014-qualified-secret-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAO9G;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAmCrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL020: a serverless workload must expose exactly one HTTP port.
4
+ *
5
+ * Not "at least one" and not "any number" — exactly one, and it must be HTTP.
6
+ * Zero is the more common mistake and the more confusing one, because the
7
+ * workload deploys and reports healthy while serving nothing.
8
+ */
9
+ export declare const serverlessSinglePortCheck: PostSynthCheck;
10
+ //# sourceMappingURL=cpl020-serverless-single-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl020-serverless-single-port.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl020-serverless-single-port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,cA8CvC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL021: a cron workload needs a schedule and must expose no ports.
4
+ *
5
+ * Cron cannot serve traffic, so a port on one is always a misunderstanding —
6
+ * usually a workload converted from serverless with the ports left behind. A
7
+ * missing `spec.job.schedule` is the other half: `spec.job` is *required* for
8
+ * cron and forbidden for every other type.
9
+ */
10
+ export declare const cronJobShapeCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl021-cron-job-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl021-cron-job-shape.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl021-cron-job-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAmD/B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL022: `port` and `ports` are mutually exclusive, and port numbers must be
4
+ * unique across every container in a workload.
5
+ *
6
+ * The duplicate case is the one worth catching: two containers each binding
7
+ * 8080 is accepted at author time, rejected at apply, and reads as correct.
8
+ */
9
+ export declare const containerPortsCheck: PostSynthCheck;
10
+ //# sourceMappingURL=cpl022-container-ports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl022-container-ports.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl022-container-ports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAoDjC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL023: CPU and memory floors, and the memory-to-CPU ratio.
4
+ *
5
+ * The ratio is the non-obvious one. `memory(MiB) / cpu(millicores)` must be
6
+ * ≤ 8, so `2Gi` of memory needs at least 256 millicores of CPU — a workload
7
+ * asking for lots of memory and a little CPU is rejected, which surprises
8
+ * people coming from Kubernetes where the two are independent. The
9
+ * `cpln/relaxMemoryToCpuRatio` tag raises the ceiling to 32.
10
+ */
11
+ export declare const containerResourcesCheck: PostSynthCheck;
12
+ //# sourceMappingURL=cpl023-container-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl023-container-resources.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl023-container-resources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAY9G;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAiErC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL024: a probe must set exactly one handler.
4
+ *
5
+ * Zero is the interesting case: a `readinessProbe` with only
6
+ * `initialDelaySeconds` and `periodSeconds` set looks configured and probes
7
+ * nothing.
8
+ */
9
+ export declare const probeHandlerCheck: PostSynthCheck;
10
+ //# sourceMappingURL=cpl024-probe-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl024-probe-handler.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl024-probe-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAO9G;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,cAoC/B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL025: mutually exclusive autoscaling fields, and the `target` ceiling.
4
+ *
5
+ * `metric` and `multi` are alternatives, not layers; `target` belongs to the
6
+ * single-metric form and is rejected alongside `multi`; and with cpu or memory
7
+ * as the metric, `target` is a utilization percentage, so above 100 it is not
8
+ * an aggressive setting but an invalid one.
9
+ */
10
+ export declare const autoscalingShapeCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl025-autoscaling-shape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl025-autoscaling-shape.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl025-autoscaling-shape.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAW9G;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,cAgFnC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL026: scale-to-zero that will not happen.
4
+ *
5
+ * `minScale: 0` is accepted on any workload type. It only *takes effect* for
6
+ * serverless with `rps` or `concurrency`, or for standard/stateful under KEDA.
7
+ * Everywhere else the workload holds at one replica and the cost saving that
8
+ * motivated the setting never arrives — with nothing reported.
9
+ */
10
+ export declare const scaleToZeroCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl026-scale-to-zero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl026-scale-to-zero.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl026-scale-to-zero.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAW9G;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,cA+C9B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL027: Capacity AI combined with something it excludes.
4
+ *
5
+ * Capacity AI resizes CPU and memory from observed usage, and it is **on by
6
+ * default** for serverless, standard and cron — so these conflicts are usually
7
+ * reached by adding CPU autoscaling or a GPU to a workload that never opted
8
+ * into Capacity AI in the first place. Each conflict has the same root: the
9
+ * other feature needs a stable resource baseline that Capacity AI is actively
10
+ * moving.
11
+ */
12
+ export declare const capacityAiConflictCheck: PostSynthCheck;
13
+ //# sourceMappingURL=cpl027-capacity-ai-conflict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl027-capacity-ai-conflict.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl027-capacity-ai-conflict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB,EAAE,cA+DrC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ export declare const volumeSetCheck: PostSynthCheck;
3
+ //# sourceMappingURL=cpl028-volume-set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl028-volume-set.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl028-volume-set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAqB9G,eAAO,MAAM,cAAc,EAAE,cA2J5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ export declare const linkTargetsCheck: PostSynthCheck;
3
+ //# sourceMappingURL=cpl029-link-targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl029-link-targets.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl029-link-targets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AA4D9G,eAAO,MAAM,gBAAgB,EAAE,cA8F9B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ export declare const domainRoutingCheck: PostSynthCheck;
3
+ //# sourceMappingURL=cpl030-domain-routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl030-domain-routing.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl030-domain-routing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAS9G,eAAO,MAAM,kBAAkB,EAAE,cA+HhC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL040: an image reference that is not pinned.
4
+ *
5
+ * `:latest`, or no tag at all (which *means* `:latest`), makes what runs a
6
+ * function of when the workload last happened to pull. On a serverless
7
+ * workload that scales to zero and cold-starts, that can be several times a
8
+ * day, so two replicas of "the same" deploy can be different builds.
9
+ */
10
+ export declare const pinnedImageCheck: PostSynthCheck;
11
+ //# sourceMappingURL=cpl040-pinned-image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl040-pinned-image.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl040-pinned-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAO9G;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,EAAE,cAgC9B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL041: registry prefixes Control Plane does not want in a workload spec.
4
+ *
5
+ * Two documented traps. `docker.io/` must never be added to a public image —
6
+ * the exact string `nginx:latest` works and `docker.io/library/nginx:latest`
7
+ * does not. And `<org>.registry.cpln.io/…` is the hostname for `docker login`
8
+ * and `docker push` only; inside a workload spec the org's own images are
9
+ * addressed as `//image/NAME:TAG`.
10
+ */
11
+ export declare const imageReferenceFormCheck: PostSynthCheck;
12
+ //# sourceMappingURL=cpl041-image-reference-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl041-image-reference-form.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl041-image-reference-form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAI9G;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,EAAE,cA8CrC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL042: a GVC with nowhere to run.
4
+ *
5
+ * Placement is a GVC-level decision, and a GVC with neither `locationLinks` nor
6
+ * a `locationQuery` accepts workloads and schedules them nowhere. The workloads
7
+ * apply cleanly and never become ready.
8
+ */
9
+ export declare const gvcPlacementCheck: PostSynthCheck;
10
+ //# sourceMappingURL=cpl042-gvc-placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl042-gvc-placement.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl042-gvc-placement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAO9G;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,cA0C/B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ /**
3
+ * CPL043: policy target and scope hygiene.
4
+ *
5
+ * Three separate ways to write a policy that applies to nothing:
6
+ *
7
+ * - `targetKind` naming a kind that cannot be a policy target. `ipset` and
8
+ * `mk8s` are governed through their parent, so a policy against them is
9
+ * accepted and inert.
10
+ * - More than one of `target`, `targetLinks`, `targetQuery`, which are three
11
+ * alternative ways of saying the same thing.
12
+ * - Setting `origin` by hand. The system sets it; a user-created policy is
13
+ * `default` and `builtin` policies cannot be modified at all.
14
+ */
15
+ export declare const policyScopeCheck: PostSynthCheck;
16
+ //# sourceMappingURL=cpl043-policy-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl043-policy-scope.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/cpl043-policy-scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAO9G;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,EAAE,cA8F9B,CAAC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Shared reading and parsing for the CPL post-synth checks.
3
+ *
4
+ * Each check lives in its own file named for its id, so `CPL027` is greppable
5
+ * to one place. What they have in common lands here rather than being repeated
6
+ * or, worse, drifting: the workload-type default, the port enumeration that has
7
+ * to span both `port` and `ports`, and the quantity parsers.
8
+ *
9
+ * Named `helpers.ts` deliberately — the completeness checker's post-synth count
10
+ * excludes that filename, so a support module is not miscounted as a check.
11
+ */
12
+ import type { Declarable } from "@intentius/chant/declarable";
13
+ export declare const WORKLOAD: string;
14
+ export declare const GVC: string;
15
+ export declare const POLICY: string;
16
+ export declare const DOMAIN: string;
17
+ export declare const VOLUMESET: string;
18
+ /** Control Plane defaults an unset workload type to `serverless`. */
19
+ export declare function workloadType(entity: unknown): string;
20
+ /** The autoscaling block from `defaultOptions`. */
21
+ export declare function autoscalingOf(entity: unknown): unknown;
22
+ /** Every port a workload's containers expose, across both `port` and `ports`. */
23
+ export declare function exposedPorts(entity: unknown): number[];
24
+ /** Parse a CPU quantity (`"50m"`, `"1"`, `"1.5"`) to millicores. */
25
+ export declare function parseCpuMillicores(value: string | undefined): number | undefined;
26
+ /** Parse a memory quantity (`"128Mi"`, `"1Gi"`, `"512M"`) to MiB. */
27
+ export declare function parseMemoryMib(value: string | undefined): number | undefined;
28
+ /**
29
+ * The tag of an image reference, or undefined when untagged.
30
+ *
31
+ * A colon in a registry host's port (`registry:5000/app`) is not a tag, so only
32
+ * a colon after the last slash counts.
33
+ */
34
+ export declare function imageTag(image: string): string | undefined;
35
+ export interface ParsedLink {
36
+ kind: string;
37
+ name: string;
38
+ gvc?: string;
39
+ }
40
+ /** Parse a Control Plane link, or return undefined if it is not one. */
41
+ export declare function parseLink(value: string): ParsedLink | undefined;
42
+ /** Iterate entities of one type. Re-exported so checks import one module. */
43
+ export { entitiesOfType } from "../../entity-props.js";
44
+ export type { Declarable };
45
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAI9D,eAAO,MAAM,QAAQ,QAAmC,CAAC;AACzD,eAAO,MAAM,GAAG,QAA8B,CAAC;AAC/C,eAAO,MAAM,MAAM,QAAiC,CAAC;AACrD,eAAO,MAAM,MAAM,QAAiC,CAAC;AACrD,eAAO,MAAM,SAAS,QAAoC,CAAC;AAE3D,qEAAqE;AACrE,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,mDAAmD;AACnD,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEtD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAWtD;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMhF;AAED,qEAAqE;AACrE,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAmB5E;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1D;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAQ/D;AAED,6EAA6E;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
2
+ export declare const postSynthChecks: PostSynthCheck[];
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAsBvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAqB3C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LintRule } from "@intentius/chant/lint/rule";
2
+ export declare const noSecretLiteralsRule: LintRule;
3
+ //# sourceMappingURL=cpl001-no-secret-literals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl001-no-secret-literals.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/cpl001-no-secret-literals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,4BAA4B,CAAC;AAsCxF,eAAO,MAAM,oBAAoB,EAAE,QA2ClC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LintRule } from "@intentius/chant/lint/rule";
2
+ export declare const preferResourceReferenceRule: LintRule;
3
+ //# sourceMappingURL=cpl002-prefer-resource-reference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpl002-prefer-resource-reference.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/cpl002-prefer-resource-reference.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAA+B,MAAM,4BAA4B,CAAC;AA0BxF,eAAO,MAAM,2BAA2B,EAAE,QA2CzC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { LintRule } from "@intentius/chant/lint/rule";
2
+ export { noSecretLiteralsRule } from "./cpl001-no-secret-literals.js";
3
+ export { preferResourceReferenceRule } from "./cpl002-prefer-resource-reference.js";
4
+ /** All source-level lint rules provided by this lexicon (imported by plugin.ts). */
5
+ export declare const rules: LintRule[];
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAI3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAC;AAEjF,oFAAoF;AACpF,eAAO,MAAM,KAAK,EAAE,QAAQ,EAAwD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { CompletionContext, CompletionItem } from "@intentius/chant/lsp/types";
2
+ /**
3
+ * LSP completions for cpln resources — class names after `new `, property
4
+ * names inside a constructor.
5
+ */
6
+ export declare function completions(ctx: CompletionContext): CompletionItem[];
7
+ //# sourceMappingURL=completions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"completions.d.ts","sourceRoot":"","sources":["../../src/lsp/completions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAmBpF;;;GAGG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,iBAAiB,GAAG,cAAc,EAAE,CAEpE"}
@@ -0,0 +1,4 @@
1
+ import type { HoverContext, HoverInfo } from "@intentius/chant/lsp/types";
2
+ /** Provide LSP hover information for cpln resources. */
3
+ export declare function hover(ctx: HoverContext): HoverInfo | undefined;
4
+ //# sourceMappingURL=hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover.d.ts","sourceRoot":"","sources":["../../src/lsp/hover.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA6H1E,wDAAwD;AACxD,wBAAgB,KAAK,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,GAAG,SAAS,CAE9D"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "cpln",
3
+ "version": "0.53.0",
4
+ "chantVersion": ">=0.1.0",
5
+ "namespace": "Cpln"
6
+ }