@almadar/std 17.0.0 → 17.0.2

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 (323) hide show
  1. package/behaviors/lolo/cli/atoms/std-orb-behaviors.lolo +1 -1
  2. package/behaviors/lolo/cli/atoms/std-orb-compile.lolo +1 -1
  3. package/behaviors/lolo/cli/atoms/std-orb-i18n.lolo +1 -1
  4. package/behaviors/lolo/cli/atoms/std-orb-language.lolo +2 -2
  5. package/behaviors/lolo/cli/atoms/std-orb-lint-all.lolo +1 -1
  6. package/behaviors/lolo/cli/atoms/std-orb-lint-asset-inline-url.lolo +1 -1
  7. package/behaviors/lolo/cli/atoms/std-orb-lint-async-result-deaf-target.lolo +1 -1
  8. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-fields.lolo +1 -1
  9. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-roots.lolo +1 -1
  10. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-setters.lolo +1 -1
  11. package/behaviors/lolo/cli/atoms/std-orb-lint-binding-traits.lolo +1 -1
  12. package/behaviors/lolo/cli/atoms/std-orb-lint-browser-effects.lolo +1 -1
  13. package/behaviors/lolo/cli/atoms/std-orb-lint-call-service.lolo +1 -1
  14. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-client-bound.lolo +1 -1
  15. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-emits.lolo +1 -1
  16. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-graph.lolo +1 -1
  17. package/behaviors/lolo/cli/atoms/std-orb-lint-circuit-item-actions.lolo +1 -1
  18. package/behaviors/lolo/cli/atoms/std-orb-lint-circular-dependencies.lolo +1 -1
  19. package/behaviors/lolo/cli/atoms/std-orb-lint-client-tick-locality.lolo +1 -1
  20. package/behaviors/lolo/cli/atoms/std-orb-lint-collection-policy.lolo +1 -1
  21. package/behaviors/lolo/cli/atoms/std-orb-lint-composed-wiring.lolo +1 -1
  22. package/behaviors/lolo/cli/atoms/std-orb-lint-computed-key-dot-path.lolo +1 -1
  23. package/behaviors/lolo/cli/atoms/std-orb-lint-config-dangling-ref.lolo +1 -1
  24. package/behaviors/lolo/cli/atoms/std-orb-lint-config-knob.lolo +1 -1
  25. package/behaviors/lolo/cli/atoms/std-orb-lint-config-role-lists.lolo +1 -1
  26. package/behaviors/lolo/cli/atoms/std-orb-lint-control-unhandled.lolo +1 -1
  27. package/behaviors/lolo/cli/atoms/std-orb-lint-control-value-discarded.lolo +1 -1
  28. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-duplicate-entity.lolo +1 -1
  29. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-emitter.lolo +1 -1
  30. package/behaviors/lolo/cli/atoms/std-orb-lint-cross-registry.lolo +1 -1
  31. package/behaviors/lolo/cli/atoms/std-orb-lint-derived-field-write.lolo +1 -1
  32. package/behaviors/lolo/cli/atoms/std-orb-lint-dispatch-contract.lolo +1 -1
  33. package/behaviors/lolo/cli/atoms/std-orb-lint-duplicate-transition.lolo +1 -1
  34. package/behaviors/lolo/cli/atoms/std-orb-lint-duplicate-use-alias.lolo +1 -1
  35. package/behaviors/lolo/cli/atoms/std-orb-lint-effect-forms.lolo +1 -1
  36. package/behaviors/lolo/cli/atoms/std-orb-lint-egress-scheme-unused.lolo +1 -1
  37. package/behaviors/lolo/cli/atoms/std-orb-lint-embed-config-forward.lolo +1 -1
  38. package/behaviors/lolo/cli/atoms/std-orb-lint-emit-config-ref.lolo +1 -1
  39. package/behaviors/lolo/cli/atoms/std-orb-lint-emit-declaration.lolo +1 -1
  40. package/behaviors/lolo/cli/atoms/std-orb-lint-emit.lolo +1 -1
  41. package/behaviors/lolo/cli/atoms/std-orb-lint-empty-event-name.lolo +1 -1
  42. package/behaviors/lolo/cli/atoms/std-orb-lint-engine.lolo +1 -1
  43. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-access.lolo +1 -1
  44. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-browser-storage.lolo +1 -1
  45. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-duplicate-field.lolo +1 -1
  46. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-empty-enum.lolo +1 -1
  47. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-field-type.lolo +1 -1
  48. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-locale-instances.lolo +1 -1
  49. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-mock-member.lolo +1 -1
  50. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-mutation.lolo +1 -1
  51. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-name-shadows-trait-union.lolo +1 -1
  52. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-persistence.lolo +1 -1
  53. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-semantic-default.lolo +1 -1
  54. package/behaviors/lolo/cli/atoms/std-orb-lint-entity-shape.lolo +1 -1
  55. package/behaviors/lolo/cli/atoms/std-orb-lint-event-id-uniqueness.lolo +1 -1
  56. package/behaviors/lolo/cli/atoms/std-orb-lint-event-wiring.lolo +1 -1
  57. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-config-knob.lolo +1 -1
  58. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-event-unfired.lolo +1 -1
  59. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-field-undeclared.lolo +1 -1
  60. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-final.lolo +1 -1
  61. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-persistent-unwritten.lolo +1 -1
  62. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-provider-mismatch.lolo +1 -1
  63. package/behaviors/lolo/cli/atoms/std-orb-lint-expectation-unsatisfied.lolo +1 -1
  64. package/behaviors/lolo/cli/atoms/std-orb-lint-expected-field-not-provided.lolo +1 -1
  65. package/behaviors/lolo/cli/atoms/std-orb-lint-external-emit-payload.lolo +1 -1
  66. package/behaviors/lolo/cli/atoms/std-orb-lint-fetch-by-id-payload.lolo +1 -1
  67. package/behaviors/lolo/cli/atoms/std-orb-lint-fetch-deliver.lolo +1 -1
  68. package/behaviors/lolo/cli/atoms/std-orb-lint-field-path.lolo +1 -1
  69. package/behaviors/lolo/cli/atoms/std-orb-lint-filter-field-never-written.lolo +1 -1
  70. package/behaviors/lolo/cli/atoms/std-orb-lint-finding-codes.lolo +1 -1
  71. package/behaviors/lolo/cli/atoms/std-orb-lint-generic-types.lolo +1 -1
  72. package/behaviors/lolo/cli/atoms/std-orb-lint-groupby-enum-column-gap.lolo +1 -1
  73. package/behaviors/lolo/cli/atoms/std-orb-lint-guest-view-not-client.lolo +1 -1
  74. package/behaviors/lolo/cli/atoms/std-orb-lint-host-effects.lolo +1 -1
  75. package/behaviors/lolo/cli/atoms/std-orb-lint-http-egress-entry.lolo +1 -1
  76. package/behaviors/lolo/cli/atoms/std-orb-lint-icon-exists.lolo +1 -1
  77. package/behaviors/lolo/cli/atoms/std-orb-lint-icon-format.lolo +1 -1
  78. package/behaviors/lolo/cli/atoms/std-orb-lint-id-refs.lolo +1 -1
  79. package/behaviors/lolo/cli/atoms/std-orb-lint-identity-unique.lolo +1 -1
  80. package/behaviors/lolo/cli/atoms/std-orb-lint-inbound-answer-foreign.lolo +1 -1
  81. package/behaviors/lolo/cli/atoms/std-orb-lint-inbound.lolo +1 -1
  82. package/behaviors/lolo/cli/atoms/std-orb-lint-init-coverage.lolo +1 -1
  83. package/behaviors/lolo/cli/atoms/std-orb-lint-input.lolo +1 -1
  84. package/behaviors/lolo/cli/atoms/std-orb-lint-item-action-event.lolo +1 -1
  85. package/behaviors/lolo/cli/atoms/std-orb-lint-keyed-call-keys.lolo +1 -1
  86. package/behaviors/lolo/cli/atoms/std-orb-lint-keyed-call.lolo +1 -1
  87. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-per.lolo +1 -1
  88. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-redundant-embed-route.lolo +1 -1
  89. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-route-starves-required-field.lolo +1 -1
  90. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-source-never-produces.lolo +1 -1
  91. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-source-unresolved.lolo +1 -1
  92. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-trigger.lolo +1 -1
  93. package/behaviors/lolo/cli/atoms/std-orb-lint-listen-wildcard-unkeyed.lolo +1 -1
  94. package/behaviors/lolo/cli/atoms/std-orb-lint-literal-default.lolo +1 -1
  95. package/behaviors/lolo/cli/atoms/std-orb-lint-llm-wire-unrouted.lolo +1 -1
  96. package/behaviors/lolo/cli/atoms/std-orb-lint-loop-invariant-parse.lolo +1 -1
  97. package/behaviors/lolo/cli/atoms/std-orb-lint-mem-handles.lolo +1 -1
  98. package/behaviors/lolo/cli/atoms/std-orb-lint-merged-fields.lolo +1 -1
  99. package/behaviors/lolo/cli/atoms/std-orb-lint-missing-orbital-name.lolo +1 -1
  100. package/behaviors/lolo/cli/atoms/std-orb-lint-nav-target.lolo +1 -1
  101. package/behaviors/lolo/cli/atoms/std-orb-lint-navigate.lolo +1 -1
  102. package/behaviors/lolo/cli/atoms/std-orb-lint-not-found.lolo +1 -1
  103. package/behaviors/lolo/cli/atoms/std-orb-lint-oauth.lolo +1 -1
  104. package/behaviors/lolo/cli/atoms/std-orb-lint-orbital-config-dead-knob.lolo +1 -1
  105. package/behaviors/lolo/cli/atoms/std-orb-lint-orbital-duplicate-name.lolo +1 -1
  106. package/behaviors/lolo/cli/atoms/std-orb-lint-page-content-owner.lolo +1 -1
  107. package/behaviors/lolo/cli/atoms/std-orb-lint-page-empty-traits.lolo +1 -1
  108. package/behaviors/lolo/cli/atoms/std-orb-lint-page-modifiers.lolo +1 -1
  109. package/behaviors/lolo/cli/atoms/std-orb-lint-page-path-uniqueness.lolo +1 -1
  110. package/behaviors/lolo/cli/atoms/std-orb-lint-page-path.lolo +1 -1
  111. package/behaviors/lolo/cli/atoms/std-orb-lint-page-unreachable.lolo +1 -1
  112. package/behaviors/lolo/cli/atoms/std-orb-lint-parallel-pure.lolo +1 -1
  113. package/behaviors/lolo/cli/atoms/std-orb-lint-pattern-props.lolo +1 -1
  114. package/behaviors/lolo/cli/atoms/std-orb-lint-payload-field-name.lolo +1 -1
  115. package/behaviors/lolo/cli/atoms/std-orb-lint-placement.lolo +1 -1
  116. package/behaviors/lolo/cli/atoms/std-orb-lint-program-eval.lolo +1 -1
  117. package/behaviors/lolo/cli/atoms/std-orb-lint-query-index.lolo +1 -1
  118. package/behaviors/lolo/cli/atoms/std-orb-lint-relation-targets.lolo +1 -1
  119. package/behaviors/lolo/cli/atoms/std-orb-lint-render-ui-pattern.lolo +1 -1
  120. package/behaviors/lolo/cli/atoms/std-orb-lint-reserved-component-name.lolo +1 -1
  121. package/behaviors/lolo/cli/atoms/std-orb-lint-retired-effect-forms.lolo +1 -1
  122. package/behaviors/lolo/cli/atoms/std-orb-lint-rui-binding.lolo +1 -1
  123. package/behaviors/lolo/cli/atoms/std-orb-lint-rui-effects.lolo +1 -1
  124. package/behaviors/lolo/cli/atoms/std-orb-lint-schema-header.lolo +1 -1
  125. package/behaviors/lolo/cli/atoms/std-orb-lint-service-def.lolo +1 -1
  126. package/behaviors/lolo/cli/atoms/std-orb-lint-set-column.lolo +1 -1
  127. package/behaviors/lolo/cli/atoms/std-orb-lint-sexpr-binding.lolo +1 -1
  128. package/behaviors/lolo/cli/atoms/std-orb-lint-sigil-context.lolo +1 -1
  129. package/behaviors/lolo/cli/atoms/std-orb-lint-sign-in-route.lolo +1 -1
  130. package/behaviors/lolo/cli/atoms/std-orb-lint-slot-tick.lolo +1 -1
  131. package/behaviors/lolo/cli/atoms/std-orb-lint-slot.lolo +1 -1
  132. package/behaviors/lolo/cli/atoms/std-orb-lint-state-shape.lolo +1 -1
  133. package/behaviors/lolo/cli/atoms/std-orb-lint-state-unreachable.lolo +1 -1
  134. package/behaviors/lolo/cli/atoms/std-orb-lint-store-binding.lolo +1 -1
  135. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-pin-contradicts-app.lolo +1 -1
  136. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-ref.lolo +1 -1
  137. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-undeclared.lolo +1 -1
  138. package/behaviors/lolo/cli/atoms/std-orb-lint-theme-values.lolo +1 -1
  139. package/behaviors/lolo/cli/atoms/std-orb-lint-tick-requires-runtime.lolo +1 -1
  140. package/behaviors/lolo/cli/atoms/std-orb-lint-time-unit.lolo +1 -1
  141. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-embeds.lolo +1 -1
  142. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-id-uniqueness.lolo +1 -1
  143. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-mounts.lolo +1 -1
  144. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-ref-config.lolo +1 -1
  145. package/behaviors/lolo/cli/atoms/std-orb-lint-trait-refs.lolo +1 -1
  146. package/behaviors/lolo/cli/atoms/std-orb-lint-transition-refs.lolo +1 -1
  147. package/behaviors/lolo/cli/atoms/std-orb-lint-type-param-sweep.lolo +1 -1
  148. package/behaviors/lolo/cli/atoms/std-orb-lint-unsigned-guard.lolo +1 -1
  149. package/behaviors/lolo/cli/atoms/std-orb-lint-untyped-array.lolo +1 -1
  150. package/behaviors/lolo/cli/atoms/std-orb-lint-user-field-exists.lolo +1 -1
  151. package/behaviors/lolo/cli/atoms/std-orb-lint-user-identity.lolo +1 -1
  152. package/behaviors/lolo/cli/atoms/std-orb-lint-viewer-stranded.lolo +1 -1
  153. package/behaviors/lolo/cli/atoms/std-orb-mcp-install.lolo +1 -1
  154. package/behaviors/lolo/cli/atoms/std-orb-mcp.lolo +2 -2
  155. package/behaviors/lolo/cli/atoms/std-orb-packages.lolo +2 -2
  156. package/behaviors/lolo/cli/atoms/std-orb-supervise.lolo +1 -1
  157. package/behaviors/lolo/cli/atoms/std-orb-update-notice.lolo +1 -1
  158. package/behaviors/lolo/cli/atoms/std-orb-validate.lolo +1 -1
  159. package/behaviors/lolo/dev/atoms/std-launchpad-updates.lolo +1 -1
  160. package/behaviors/lolo/dev/atoms/std-orb-stats.lolo +1 -1
  161. package/behaviors/lolo/dev/organisms/std-launchpad.lolo +1 -1
  162. package/behaviors/registry/cli/atoms/std-orb-behaviors.orb +1 -1
  163. package/behaviors/registry/cli/atoms/std-orb-compile.orb +1 -1
  164. package/behaviors/registry/cli/atoms/std-orb-i18n.orb +1 -1
  165. package/behaviors/registry/cli/atoms/std-orb-language.orb +1 -1
  166. package/behaviors/registry/cli/atoms/std-orb-lint-all.orb +1 -1
  167. package/behaviors/registry/cli/atoms/std-orb-lint-asset-inline-url.orb +1 -1
  168. package/behaviors/registry/cli/atoms/std-orb-lint-async-result-deaf-target.orb +1 -1
  169. package/behaviors/registry/cli/atoms/std-orb-lint-binding-fields.orb +1 -1
  170. package/behaviors/registry/cli/atoms/std-orb-lint-binding-roots.orb +1 -1
  171. package/behaviors/registry/cli/atoms/std-orb-lint-binding-setters.orb +1 -1
  172. package/behaviors/registry/cli/atoms/std-orb-lint-binding-traits.orb +1 -1
  173. package/behaviors/registry/cli/atoms/std-orb-lint-browser-effects.orb +1 -1
  174. package/behaviors/registry/cli/atoms/std-orb-lint-call-service.orb +1 -1
  175. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-client-bound.orb +1 -1
  176. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-emits.orb +1 -1
  177. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-graph.orb +1 -1
  178. package/behaviors/registry/cli/atoms/std-orb-lint-circuit-item-actions.orb +1 -1
  179. package/behaviors/registry/cli/atoms/std-orb-lint-circular-dependencies.orb +1 -1
  180. package/behaviors/registry/cli/atoms/std-orb-lint-client-tick-locality.orb +1 -1
  181. package/behaviors/registry/cli/atoms/std-orb-lint-collection-policy.orb +1 -1
  182. package/behaviors/registry/cli/atoms/std-orb-lint-composed-wiring.orb +1 -1
  183. package/behaviors/registry/cli/atoms/std-orb-lint-computed-key-dot-path.orb +1 -1
  184. package/behaviors/registry/cli/atoms/std-orb-lint-config-dangling-ref.orb +1 -1
  185. package/behaviors/registry/cli/atoms/std-orb-lint-config-knob.orb +1 -1
  186. package/behaviors/registry/cli/atoms/std-orb-lint-config-role-lists.orb +1 -1
  187. package/behaviors/registry/cli/atoms/std-orb-lint-control-unhandled.orb +1 -1
  188. package/behaviors/registry/cli/atoms/std-orb-lint-control-value-discarded.orb +1 -1
  189. package/behaviors/registry/cli/atoms/std-orb-lint-cross-duplicate-entity.orb +1 -1
  190. package/behaviors/registry/cli/atoms/std-orb-lint-cross-emitter.orb +1 -1
  191. package/behaviors/registry/cli/atoms/std-orb-lint-cross-registry.orb +1 -1
  192. package/behaviors/registry/cli/atoms/std-orb-lint-derived-field-write.orb +1 -1
  193. package/behaviors/registry/cli/atoms/std-orb-lint-dispatch-contract.orb +1 -1
  194. package/behaviors/registry/cli/atoms/std-orb-lint-duplicate-transition.orb +1 -1
  195. package/behaviors/registry/cli/atoms/std-orb-lint-duplicate-use-alias.orb +1 -1
  196. package/behaviors/registry/cli/atoms/std-orb-lint-effect-forms.orb +1 -1
  197. package/behaviors/registry/cli/atoms/std-orb-lint-egress-scheme-unused.orb +1 -1
  198. package/behaviors/registry/cli/atoms/std-orb-lint-embed-config-forward.orb +1 -1
  199. package/behaviors/registry/cli/atoms/std-orb-lint-emit-config-ref.orb +1 -1
  200. package/behaviors/registry/cli/atoms/std-orb-lint-emit-declaration.orb +1 -1
  201. package/behaviors/registry/cli/atoms/std-orb-lint-emit.orb +1 -1
  202. package/behaviors/registry/cli/atoms/std-orb-lint-empty-event-name.orb +1 -1
  203. package/behaviors/registry/cli/atoms/std-orb-lint-engine.orb +1 -1
  204. package/behaviors/registry/cli/atoms/std-orb-lint-entity-access.orb +1 -1
  205. package/behaviors/registry/cli/atoms/std-orb-lint-entity-browser-storage.orb +1 -1
  206. package/behaviors/registry/cli/atoms/std-orb-lint-entity-duplicate-field.orb +1 -1
  207. package/behaviors/registry/cli/atoms/std-orb-lint-entity-empty-enum.orb +1 -1
  208. package/behaviors/registry/cli/atoms/std-orb-lint-entity-field-type.orb +1 -1
  209. package/behaviors/registry/cli/atoms/std-orb-lint-entity-locale-instances.orb +1 -1
  210. package/behaviors/registry/cli/atoms/std-orb-lint-entity-mock-member.orb +1 -1
  211. package/behaviors/registry/cli/atoms/std-orb-lint-entity-mutation.orb +1 -1
  212. package/behaviors/registry/cli/atoms/std-orb-lint-entity-name-shadows-trait-union.orb +1 -1
  213. package/behaviors/registry/cli/atoms/std-orb-lint-entity-persistence.orb +1 -1
  214. package/behaviors/registry/cli/atoms/std-orb-lint-entity-semantic-default.orb +1 -1
  215. package/behaviors/registry/cli/atoms/std-orb-lint-entity-shape.orb +1 -1
  216. package/behaviors/registry/cli/atoms/std-orb-lint-event-id-uniqueness.orb +1 -1
  217. package/behaviors/registry/cli/atoms/std-orb-lint-event-wiring.orb +1 -1
  218. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-config-knob.orb +1 -1
  219. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-event-unfired.orb +1 -1
  220. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-field-undeclared.orb +1 -1
  221. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-final.orb +1 -1
  222. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-persistent-unwritten.orb +1 -1
  223. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-provider-mismatch.orb +1 -1
  224. package/behaviors/registry/cli/atoms/std-orb-lint-expectation-unsatisfied.orb +1 -1
  225. package/behaviors/registry/cli/atoms/std-orb-lint-expected-field-not-provided.orb +1 -1
  226. package/behaviors/registry/cli/atoms/std-orb-lint-external-emit-payload.orb +1 -1
  227. package/behaviors/registry/cli/atoms/std-orb-lint-fetch-by-id-payload.orb +1 -1
  228. package/behaviors/registry/cli/atoms/std-orb-lint-fetch-deliver.orb +1 -1
  229. package/behaviors/registry/cli/atoms/std-orb-lint-field-path.orb +1 -1
  230. package/behaviors/registry/cli/atoms/std-orb-lint-filter-field-never-written.orb +1 -1
  231. package/behaviors/registry/cli/atoms/std-orb-lint-finding-codes.orb +1 -1
  232. package/behaviors/registry/cli/atoms/std-orb-lint-generic-types.orb +1 -1
  233. package/behaviors/registry/cli/atoms/std-orb-lint-groupby-enum-column-gap.orb +1 -1
  234. package/behaviors/registry/cli/atoms/std-orb-lint-guest-view-not-client.orb +1 -1
  235. package/behaviors/registry/cli/atoms/std-orb-lint-host-effects.orb +1 -1
  236. package/behaviors/registry/cli/atoms/std-orb-lint-http-egress-entry.orb +1 -1
  237. package/behaviors/registry/cli/atoms/std-orb-lint-icon-exists.orb +1 -1
  238. package/behaviors/registry/cli/atoms/std-orb-lint-icon-format.orb +1 -1
  239. package/behaviors/registry/cli/atoms/std-orb-lint-id-refs.orb +1 -1
  240. package/behaviors/registry/cli/atoms/std-orb-lint-identity-unique.orb +1 -1
  241. package/behaviors/registry/cli/atoms/std-orb-lint-inbound-answer-foreign.orb +1 -1
  242. package/behaviors/registry/cli/atoms/std-orb-lint-inbound.orb +1 -1
  243. package/behaviors/registry/cli/atoms/std-orb-lint-init-coverage.orb +1 -1
  244. package/behaviors/registry/cli/atoms/std-orb-lint-input.orb +1 -1
  245. package/behaviors/registry/cli/atoms/std-orb-lint-item-action-event.orb +1 -1
  246. package/behaviors/registry/cli/atoms/std-orb-lint-keyed-call-keys.orb +1 -1
  247. package/behaviors/registry/cli/atoms/std-orb-lint-keyed-call.orb +1 -1
  248. package/behaviors/registry/cli/atoms/std-orb-lint-listen-per.orb +1 -1
  249. package/behaviors/registry/cli/atoms/std-orb-lint-listen-redundant-embed-route.orb +1 -1
  250. package/behaviors/registry/cli/atoms/std-orb-lint-listen-route-starves-required-field.orb +1 -1
  251. package/behaviors/registry/cli/atoms/std-orb-lint-listen-source-never-produces.orb +1 -1
  252. package/behaviors/registry/cli/atoms/std-orb-lint-listen-source-unresolved.orb +1 -1
  253. package/behaviors/registry/cli/atoms/std-orb-lint-listen-trigger.orb +1 -1
  254. package/behaviors/registry/cli/atoms/std-orb-lint-listen-wildcard-unkeyed.orb +1 -1
  255. package/behaviors/registry/cli/atoms/std-orb-lint-literal-default.orb +1 -1
  256. package/behaviors/registry/cli/atoms/std-orb-lint-llm-wire-unrouted.orb +1 -1
  257. package/behaviors/registry/cli/atoms/std-orb-lint-loop-invariant-parse.orb +1 -1
  258. package/behaviors/registry/cli/atoms/std-orb-lint-mem-handles.orb +1 -1
  259. package/behaviors/registry/cli/atoms/std-orb-lint-merged-fields.orb +1 -1
  260. package/behaviors/registry/cli/atoms/std-orb-lint-missing-orbital-name.orb +1 -1
  261. package/behaviors/registry/cli/atoms/std-orb-lint-nav-target.orb +1 -1
  262. package/behaviors/registry/cli/atoms/std-orb-lint-navigate.orb +1 -1
  263. package/behaviors/registry/cli/atoms/std-orb-lint-not-found.orb +1 -1
  264. package/behaviors/registry/cli/atoms/std-orb-lint-oauth.orb +1 -1
  265. package/behaviors/registry/cli/atoms/std-orb-lint-orbital-config-dead-knob.orb +1 -1
  266. package/behaviors/registry/cli/atoms/std-orb-lint-orbital-duplicate-name.orb +1 -1
  267. package/behaviors/registry/cli/atoms/std-orb-lint-page-content-owner.orb +1 -1
  268. package/behaviors/registry/cli/atoms/std-orb-lint-page-empty-traits.orb +1 -1
  269. package/behaviors/registry/cli/atoms/std-orb-lint-page-modifiers.orb +1 -1
  270. package/behaviors/registry/cli/atoms/std-orb-lint-page-path-uniqueness.orb +1 -1
  271. package/behaviors/registry/cli/atoms/std-orb-lint-page-path.orb +1 -1
  272. package/behaviors/registry/cli/atoms/std-orb-lint-page-unreachable.orb +1 -1
  273. package/behaviors/registry/cli/atoms/std-orb-lint-parallel-pure.orb +1 -1
  274. package/behaviors/registry/cli/atoms/std-orb-lint-pattern-props.orb +1 -1
  275. package/behaviors/registry/cli/atoms/std-orb-lint-payload-field-name.orb +1 -1
  276. package/behaviors/registry/cli/atoms/std-orb-lint-placement.orb +1 -1
  277. package/behaviors/registry/cli/atoms/std-orb-lint-program-eval.orb +1 -1
  278. package/behaviors/registry/cli/atoms/std-orb-lint-query-index.orb +1 -1
  279. package/behaviors/registry/cli/atoms/std-orb-lint-relation-targets.orb +1 -1
  280. package/behaviors/registry/cli/atoms/std-orb-lint-render-ui-pattern.orb +1 -1
  281. package/behaviors/registry/cli/atoms/std-orb-lint-reserved-component-name.orb +1 -1
  282. package/behaviors/registry/cli/atoms/std-orb-lint-retired-effect-forms.orb +1 -1
  283. package/behaviors/registry/cli/atoms/std-orb-lint-rui-binding.orb +1 -1
  284. package/behaviors/registry/cli/atoms/std-orb-lint-rui-effects.orb +1 -1
  285. package/behaviors/registry/cli/atoms/std-orb-lint-schema-header.orb +1 -1
  286. package/behaviors/registry/cli/atoms/std-orb-lint-service-def.orb +1 -1
  287. package/behaviors/registry/cli/atoms/std-orb-lint-set-column.orb +1 -1
  288. package/behaviors/registry/cli/atoms/std-orb-lint-sexpr-binding.orb +1 -1
  289. package/behaviors/registry/cli/atoms/std-orb-lint-sigil-context.orb +1 -1
  290. package/behaviors/registry/cli/atoms/std-orb-lint-sign-in-route.orb +1 -1
  291. package/behaviors/registry/cli/atoms/std-orb-lint-slot-tick.orb +1 -1
  292. package/behaviors/registry/cli/atoms/std-orb-lint-slot.orb +1 -1
  293. package/behaviors/registry/cli/atoms/std-orb-lint-state-shape.orb +1 -1
  294. package/behaviors/registry/cli/atoms/std-orb-lint-state-unreachable.orb +1 -1
  295. package/behaviors/registry/cli/atoms/std-orb-lint-store-binding.orb +1 -1
  296. package/behaviors/registry/cli/atoms/std-orb-lint-theme-pin-contradicts-app.orb +1 -1
  297. package/behaviors/registry/cli/atoms/std-orb-lint-theme-ref.orb +1 -1
  298. package/behaviors/registry/cli/atoms/std-orb-lint-theme-undeclared.orb +1 -1
  299. package/behaviors/registry/cli/atoms/std-orb-lint-theme-values.orb +1 -1
  300. package/behaviors/registry/cli/atoms/std-orb-lint-tick-requires-runtime.orb +1 -1
  301. package/behaviors/registry/cli/atoms/std-orb-lint-time-unit.orb +1 -1
  302. package/behaviors/registry/cli/atoms/std-orb-lint-trait-embeds.orb +1 -1
  303. package/behaviors/registry/cli/atoms/std-orb-lint-trait-id-uniqueness.orb +1 -1
  304. package/behaviors/registry/cli/atoms/std-orb-lint-trait-mounts.orb +1 -1
  305. package/behaviors/registry/cli/atoms/std-orb-lint-trait-ref-config.orb +1 -1
  306. package/behaviors/registry/cli/atoms/std-orb-lint-trait-refs.orb +1 -1
  307. package/behaviors/registry/cli/atoms/std-orb-lint-transition-refs.orb +1 -1
  308. package/behaviors/registry/cli/atoms/std-orb-lint-type-param-sweep.orb +1 -1
  309. package/behaviors/registry/cli/atoms/std-orb-lint-unsigned-guard.orb +1 -1
  310. package/behaviors/registry/cli/atoms/std-orb-lint-untyped-array.orb +1 -1
  311. package/behaviors/registry/cli/atoms/std-orb-lint-user-field-exists.orb +1 -1
  312. package/behaviors/registry/cli/atoms/std-orb-lint-user-identity.orb +1 -1
  313. package/behaviors/registry/cli/atoms/std-orb-lint-viewer-stranded.orb +1 -1
  314. package/behaviors/registry/cli/atoms/std-orb-mcp-install.orb +1 -1
  315. package/behaviors/registry/cli/atoms/std-orb-mcp.orb +1 -1
  316. package/behaviors/registry/cli/atoms/std-orb-packages.orb +1 -1
  317. package/behaviors/registry/cli/atoms/std-orb-supervise.orb +1 -1
  318. package/behaviors/registry/cli/atoms/std-orb-update-notice.orb +1 -1
  319. package/behaviors/registry/cli/atoms/std-orb-validate.orb +1 -1
  320. package/behaviors/registry/dev/atoms/std-launchpad-updates.orb +1 -1
  321. package/behaviors/registry/dev/atoms/std-orb-stats.orb +1 -1
  322. package/behaviors/registry/dev/organisms/std-launchpad.orb +5 -0
  323. package/package.json +1 -1
@@ -1 +1 @@
1
- {"typeContractVersion":1,"types":{"HttpEgressProgram":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintHttpEgressEntryCodes":[{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]},"name":"std-orb-lint-http-egress-entry","version":"1.0.0","description":"std-orb-lint-http-egress-entry — the `orb lint http-egress-entry <file>` command, the port of ORB_HTTP_EGRESS_ENTRY_INVALID (effect/http.rs validate_http_effects over http_wire parse_egress_entry). It lowers the file with program/read and reports each app `egress` entry that is not `scheme://host[:port]` for http, https, redis, rediss, postgres or postgresql (no path, query, credentials, space, backslash, empty host or a port outside 0..65535), with the Rust path, message and suggestion (status 500, exit 1). The other ORB_HTTP rules check the arguments of `http` calls nested in effects, which this lint cannot walk without a tree fold. Clean answers `lint http-egress-entry: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintHttpEgressEntryOrbital","id":"orb_01269X8CAV65DKD1BAWCP5PNV9","uses":[{"from":"almadar-std/lint-http-egress-entry","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"}],"entity":{"name":"OrbLintHttpEgressEntryRun","id":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}]},"traits":[{"name":"OrbLintHttpEgressEntry","id":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","effectRow":[{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.scope"}],"linkedEntity":"OrbLintHttpEgressEntryRun","linkedEntityId":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","entityRefIds":{"OrbLintHttpEgressEntryRun":"ent_421TT6KMH8T8M5KQZ8T11BZQD7"},"emits":[{"event":"LINT_FOUND","eventId":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","description":"Internal: answer with the verdict.","tier":"internal"}],"listens":[{"event":"LINT_INPUT","eventId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","triggers":"LINT_INPUT","triggersId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB","name":"Initialize"},{"key":"LINT_INPUT","id":"evt_75EKT9DX3XYHYM48V1CA01YRA7","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HttpEgressProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"LINT_FINISH","id":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB"},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",["let",[["entries",["object/get","@payload.program","egress",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@entries"]],["fn","i",["let",[["en",["array/nth","@entries","@i"]]],["if",["validate/pattern","@en","^([Hh][Tt][Tt][Pp][Ss]?|[Rr][Ee][Dd][Ii][Ss][Ss]?|[Pp][Oo][Ss][Tt][Gg][Rr][Ee][Ss]([Qq][Ll])?)://(\\[[^\\]/?#\\\\@ ]+\\]|[^:/?#\\\\@ \\[][^:/?#\\\\@ ]*)(:\\+?0*([0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$"],[],[{"code":"@config.codes.httpEgressEntryInvalid.code","path":["str/concat","egress[","@i","]"],"message":["str/concat","egress entry '","@en","' is not scheme://host[:port]"],"suggestion":"Write an origin only: no path, query, credentials or trailing slash","severity":"error"}]]]]]]]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","effects":[["emit","LINT_FOUND",{"rule":"http-egress-entry","scope":"@entity.scope","findings":"@entity.findings"}]]}]},"config":{"codes":{"nullable":false,"type":"LintHttpEgressEntryCodes","default":{"httpEgressEntryInvalid":{"code":"ORB_HTTP_EGRESS_ENTRY_INVALID","category":"http","description":"An egress allowlist entry is not of the form scheme://host[:port]"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"httpEgressEntryInvalid":{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintHttpEgressEntryCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","fingerprint":"a220097ebda0b8988b54ac9d257441da5ba1a9f9f60668709fb0b65ae6f05840"}},{"name":"OrbLintHttpEgressEntryCli","id":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintHttpEgressEntryRun","linkedEntityId":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","entityRefIds":{"OrbLintHttpEgressEntryRun":"ent_421TT6KMH8T8M5KQZ8T11BZQD7"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_14EBNN9C83P41WB77CDZVTE9TK","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","triggers":"LINT_FOUND","triggersId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","source":{"kind":"trait","trait":"OrbLintHttpEgressEntry","traitId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_AHX6C0184DM26HE3XYAGCPB69S","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_RM377XBRANW5AJP88GJNN7G888","name":"Lint Called","description":"Run `orb lint http-egress-entry` with its arguments and working directory.","synonyms":"orb lint http-egress-entry, http egress entry","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-http-egress-entry","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_14EBNN9C83P41WB77CDZVTE9TK","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_AHX6C0184DM26HE3XYAGCPB69S"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_RM377XBRANW5AJP88GJNN7G888","guard":["or",["=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["!=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint http-egress-entry <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_RM377XBRANW5AJP88GJNN7G888","guard":["and",["!=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["let",[["argFile",["array/first",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]]]],["if",["=","@argFile",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint http-egress-entry <file>"}],["emit","LINT_REQUEST",{"file":"@argFile"}]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_AHX6C0184DM26HE3XYAGCPB69S"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","guard":["and",["=","@payload.rule","http-egress-entry"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint http-egress-entry: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","guard":["and",["=","@payload.rule","http-egress-entry"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint http-egress-entry: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","fingerprint":"dad51c531371e6f17a2dd462f3aeaf95a2314503a1d8c232ff23777ff8ae5c88"}},{"ref":"Input.traits.Versions","id":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_838NC2D23FH1QZP4EC8ZKDZMX0","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintHttpEgressEntryCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]}],"pages":[{"name":"OrbLintHttpEgressEntryOrbitalStart","id":"pag_YCQA99YABP55VAWK8RQE744XJC","path":"","protocol":"boot","traits":[{"ref":"OrbLintHttpEgressEntry","refId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},{"ref":"OrbLintHttpEgressEntryCli","refId":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},{"ref":"OrbLintInput","refId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"},{"ref":"Packs","refId":"trt_838NC2D23FH1QZP4EC8ZKDZMX0"},{"ref":"Versions","refId":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59"}]}],"types":{"HttpEgressProgram":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintHttpEgressEntryCodes":[{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]}}],"inbound":["cli-lint-http-egress-entry"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":["orb"],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_421TT6KMH8T8M5KQZ8T11BZQD7":{"id":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","kind":"entity","bakedName":"OrbLintHttpEgressEntryRun","curName":"OrbLintHttpEgressEntryRun","renames":[],"owner":"workspace"},"evt_14EBNN9C83P41WB77CDZVTE9TK":{"id":"evt_14EBNN9C83P41WB77CDZVTE9TK","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_6EN9ESNQ5DVJPJ8255P87HA6XB":{"id":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_75EKT9DX3XYHYM48V1CA01YRA7":{"id":"evt_75EKT9DX3XYHYM48V1CA01YRA7","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_AHX6C0184DM26HE3XYAGCPB69S":{"id":"evt_AHX6C0184DM26HE3XYAGCPB69S","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_N3DSJSWR3WC1YE5JDWBNGX5V16":{"id":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_QG3TXGV3M3HT1K0YHQA431JRX5":{"id":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_RM377XBRANW5AJP88GJNN7G888":{"id":"evt_RM377XBRANW5AJP88GJNN7G888","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB":{"id":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_V1DMJWJPBJB5S3ZD79BRW7R381":{"id":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_XX6NHFV4RRJCC0QDTFYS8W37KX":{"id":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"orb_01269X8CAV65DKD1BAWCP5PNV9":{"id":"orb_01269X8CAV65DKD1BAWCP5PNV9","kind":"orbital","bakedName":"OrbLintHttpEgressEntryOrbital","curName":"OrbLintHttpEgressEntryOrbital","renames":[],"owner":"workspace"},"pag_YCQA99YABP55VAWK8RQE744XJC":{"id":"pag_YCQA99YABP55VAWK8RQE744XJC","kind":"page","bakedName":"OrbLintHttpEgressEntryOrbitalStart","curName":"OrbLintHttpEgressEntryOrbitalStart","renames":[],"owner":"workspace"},"trt_838NC2D23FH1QZP4EC8ZKDZMX0":{"id":"trt_838NC2D23FH1QZP4EC8ZKDZMX0","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM":{"id":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","kind":"trait","bakedName":"OrbLintHttpEgressEntry","curName":"OrbLintHttpEgressEntry","renames":[],"owner":"workspace"},"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ":{"id":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"},"trt_HAHWEFXWRGYC86WMEB0N3Y68SY":{"id":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","kind":"trait","bakedName":"OrbLintHttpEgressEntryCli","curName":"OrbLintHttpEgressEntryCli","renames":[],"owner":"workspace"},"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59":{"id":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"}}}}
1
+ {"typeContractVersion":1,"types":{"HttpEgressProgram":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintHttpEgressEntryCodes":[{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]},"name":"std-orb-lint-http-egress-entry","version":"1.0.0","description":"std-orb-lint-http-egress-entry — the `orb lint http-egress-entry <file>` command, the port of ORB_HTTP_EGRESS_ENTRY_INVALID (effect/http.rs validate_http_effects over http_wire parse_egress_entry). It lowers the file with program/read and reports each app `egress` entry that is not `scheme://host[:port]` for http, https, redis, rediss, postgres or postgresql (no path, query, credentials, space, backslash, empty host or a port outside 0..65535), with the Rust path, message and suggestion (status 500, exit 1). The other ORB_HTTP rules check the arguments of `http` calls nested in effects, which this lint cannot walk without a tree fold. Clean answers `lint http-egress-entry: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintHttpEgressEntryOrbital","id":"orb_01269X8CAV65DKD1BAWCP5PNV9","uses":[{"from":"almadar-std/lint-http-egress-entry","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"}],"entity":{"name":"OrbLintHttpEgressEntryRun","id":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","persistence":"runtime","fields":[{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}}]},"traits":[{"name":"OrbLintHttpEgressEntry","id":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","effectRow":[{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.scope"}],"linkedEntity":"OrbLintHttpEgressEntryRun","linkedEntityId":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","entityRefIds":{"OrbLintHttpEgressEntryRun":"ent_421TT6KMH8T8M5KQZ8T11BZQD7"},"emits":[{"event":"LINT_FOUND","eventId":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","description":"Internal: answer with the verdict.","tier":"internal"}],"listens":[{"event":"LINT_INPUT","eventId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","triggers":"LINT_INPUT","triggersId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB","name":"Initialize"},{"key":"LINT_INPUT","id":"evt_75EKT9DX3XYHYM48V1CA01YRA7","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"projectedFrom":{"type":"HttpEgressProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"LINT_FINISH","id":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB"},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_75EKT9DX3XYHYM48V1CA01YRA7","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",["let",[["entries",["object/get","@payload.program","egress",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@entries"]],["fn","i",["let",[["en",["array/nth","@entries","@i"]]],["if",["validate/pattern","@en","^([Hh][Tt][Tt][Pp][Ss]?|[Rr][Ee][Dd][Ii][Ss][Ss]?|[Pp][Oo][Ss][Tt][Gg][Rr][Ee][Ss]([Qq][Ll])?)://(\\[[^\\]/?#\\\\@ ]+\\]|[^:/?#\\\\@ \\[][^:/?#\\\\@ ]*)(:\\+?0*([0-5]?[0-9]{1,4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5]))?$"],[],[{"code":"@config.codes.httpEgressEntryInvalid.code","path":["str/concat","egress[","@i","]"],"message":["str/concat","egress entry '","@en","' is not scheme://host[:port]"],"suggestion":"Write an origin only: no path, query, credentials or trailing slash","severity":"error"}]]]]]]]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","effects":[["emit","LINT_FOUND",{"rule":"http-egress-entry","scope":"@entity.scope","findings":"@entity.findings"}]]}]},"config":{"codes":{"nullable":false,"type":"LintHttpEgressEntryCodes","default":{"httpEgressEntryInvalid":{"code":"ORB_HTTP_EGRESS_ENTRY_INVALID","category":"http","description":"An egress allowlist entry is not of the form scheme://host[:port]"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"httpEgressEntryInvalid":{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintHttpEgressEntryCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","fingerprint":"a220097ebda0b8988b54ac9d257441da5ba1a9f9f60668709fb0b65ae6f05840"}},{"name":"OrbLintHttpEgressEntryCli","id":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintHttpEgressEntryRun","linkedEntityId":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","entityRefIds":{"OrbLintHttpEgressEntryRun":"ent_421TT6KMH8T8M5KQZ8T11BZQD7"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_14EBNN9C83P41WB77CDZVTE9TK","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","triggers":"LINT_FOUND","triggersId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","source":{"kind":"trait","trait":"OrbLintHttpEgressEntry","traitId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_AHX6C0184DM26HE3XYAGCPB69S","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_RM377XBRANW5AJP88GJNN7G888","name":"Lint Called","description":"Run `orb lint http-egress-entry` with its arguments and working directory.","synonyms":"orb lint http-egress-entry, http egress entry","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-http-egress-entry","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_14EBNN9C83P41WB77CDZVTE9TK","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_AHX6C0184DM26HE3XYAGCPB69S"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_RM377XBRANW5AJP88GJNN7G888","guard":["or",["=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["!=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint http-egress-entry <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_RM377XBRANW5AJP88GJNN7G888","guard":["and",["!=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["let",[["argFile",["array/first",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]]]],["if",["=","@argFile",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint http-egress-entry <file>"}],["emit","LINT_REQUEST",{"file":"@argFile"}]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_AHX6C0184DM26HE3XYAGCPB69S"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","guard":["and",["=","@payload.rule","http-egress-entry"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint http-egress-entry: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","guard":["and",["=","@payload.rule","http-egress-entry"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint http-egress-entry: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","fingerprint":"dad51c531371e6f17a2dd462f3aeaf95a2314503a1d8c232ff23777ff8ae5c88"}},{"ref":"Input.traits.Versions","id":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_838NC2D23FH1QZP4EC8ZKDZMX0","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintHttpEgressEntryCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]}],"pages":[{"name":"OrbLintHttpEgressEntryOrbitalStart","id":"pag_YCQA99YABP55VAWK8RQE744XJC","path":"","protocol":"boot","traits":[{"ref":"OrbLintHttpEgressEntry","refId":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},{"ref":"OrbLintHttpEgressEntryCli","refId":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},{"ref":"OrbLintInput","refId":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ"},{"ref":"Packs","refId":"trt_838NC2D23FH1QZP4EC8ZKDZMX0"},{"ref":"Versions","refId":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59"}]}],"types":{"HttpEgressProgram":[{"nullable":false,"name":"egress","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintHttpEgressEntryCodes":[{"nullable":false,"name":"httpEgressEntryInvalid","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]}}],"inbound":["cli-lint-http-egress-entry"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":[],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}],"exec":[{"anchor":"exe"}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_421TT6KMH8T8M5KQZ8T11BZQD7":{"id":"ent_421TT6KMH8T8M5KQZ8T11BZQD7","kind":"entity","bakedName":"OrbLintHttpEgressEntryRun","curName":"OrbLintHttpEgressEntryRun","renames":[],"owner":"workspace"},"evt_14EBNN9C83P41WB77CDZVTE9TK":{"id":"evt_14EBNN9C83P41WB77CDZVTE9TK","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_6EN9ESNQ5DVJPJ8255P87HA6XB":{"id":"evt_6EN9ESNQ5DVJPJ8255P87HA6XB","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_75EKT9DX3XYHYM48V1CA01YRA7":{"id":"evt_75EKT9DX3XYHYM48V1CA01YRA7","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_AHX6C0184DM26HE3XYAGCPB69S":{"id":"evt_AHX6C0184DM26HE3XYAGCPB69S","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_N3DSJSWR3WC1YE5JDWBNGX5V16":{"id":"evt_N3DSJSWR3WC1YE5JDWBNGX5V16","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_QG3TXGV3M3HT1K0YHQA431JRX5":{"id":"evt_QG3TXGV3M3HT1K0YHQA431JRX5","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_RM377XBRANW5AJP88GJNN7G888":{"id":"evt_RM377XBRANW5AJP88GJNN7G888","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB":{"id":"evt_SK5RKDJWM3EA1ZGTVRC3BD07QB","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"evt_V1DMJWJPBJB5S3ZD79BRW7R381":{"id":"evt_V1DMJWJPBJB5S3ZD79BRW7R381","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY"},"evt_XX6NHFV4RRJCC0QDTFYS8W37KX":{"id":"evt_XX6NHFV4RRJCC0QDTFYS8W37KX","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM"},"orb_01269X8CAV65DKD1BAWCP5PNV9":{"id":"orb_01269X8CAV65DKD1BAWCP5PNV9","kind":"orbital","bakedName":"OrbLintHttpEgressEntryOrbital","curName":"OrbLintHttpEgressEntryOrbital","renames":[],"owner":"workspace"},"pag_YCQA99YABP55VAWK8RQE744XJC":{"id":"pag_YCQA99YABP55VAWK8RQE744XJC","kind":"page","bakedName":"OrbLintHttpEgressEntryOrbitalStart","curName":"OrbLintHttpEgressEntryOrbitalStart","renames":[],"owner":"workspace"},"trt_838NC2D23FH1QZP4EC8ZKDZMX0":{"id":"trt_838NC2D23FH1QZP4EC8ZKDZMX0","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM":{"id":"trt_8ACZ1NRNSRAWWDV87HHBAYM1PM","kind":"trait","bakedName":"OrbLintHttpEgressEntry","curName":"OrbLintHttpEgressEntry","renames":[],"owner":"workspace"},"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ":{"id":"trt_G2B35Z1AWDNE6Q62MA0JB7Q1ZQ","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"},"trt_HAHWEFXWRGYC86WMEB0N3Y68SY":{"id":"trt_HAHWEFXWRGYC86WMEB0N3Y68SY","kind":"trait","bakedName":"OrbLintHttpEgressEntryCli","curName":"OrbLintHttpEgressEntryCli","renames":[],"owner":"workspace"},"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59":{"id":"trt_ZZCJV2SQ8XVMEGF2MB4GVCMG59","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"}}}}
@@ -1 +1 @@
1
- {"typeContractVersion":1,"types":{"IcCand":[{"nullable":false,"name":"p","type":"string"},{"nullable":true,"name":"v","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"projectedFrom":{"type":"IcVal"}}],"IcHitIE":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"IcMachine":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"IcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"IcProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"IcResIE":[{"nullable":false,"name":"f","type":"[object]","required":true,"properties":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"IcHitIE","projectedFrom":{"type":"IcHitIE"}}}],"IcTrait":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"IcTransition":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"IcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}]}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintIconExistsCodes":[{"nullable":false,"name":"lintIndexMissing","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"lintUiVocabUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"uiIconNotFound","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]},"name":"std-orb-lint-icon-exists","version":"1.0.0","description":"std-orb-lint-icon-exists — the `orb lint icon-exists <file>` command, the port of the ORB_UI_ICON_NOT_FOUND check of icon.rs (validate_icon_value). It walks the same icon positions as icon-format (the `icon` prop, `actions[i].icon` and `itemActions[i].icon` of every object inside the pattern of a `render-ui` effect, recursing as the compiler does) and reports a well-formed icon name (kebab-case or PascalCase, not a binding, not blank) whose kebab-case form (PascalCase lowers each capital to -x, kebab-case lowercases) is not in the installed Lucide set, which comes from std-orb-lint-input's LINT_UI_VOCAB (orbLanguage.uiVocabulary.lucideIcons). The suggestion lists up to three installed icons whose distinct-character overlap with the name (shared distinct characters over the larger distinct-character count) is above 0.3, best first, ties in vocabulary order. An unreadable vocabulary answers ORB_LINT_UI_VOCAB_UNREAD. Clean answers `lint icon-exists: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintIconExistsOrbital","id":"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK","uses":[{"from":"almadar-std/lint-icon-exists","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"}],"entity":{"name":"OrbLintIconExistsRun","id":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","persistence":"runtime","fields":[{"nullable":false,"name":"uKeys","type":"object","default":{},"items":{"nullable":false,"type":"array","items":{"nullable":false,"type":"string"}}},{"nullable":false,"name":"unitsHeard","type":"boolean","default":false},{"nullable":false,"name":"unitsScope","type":"string","default":""},{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"icons","type":"array","default":[],"items":{"nullable":false,"type":"string"}},{"nullable":false,"name":"iconSet","type":"object","default":{},"items":{"nullable":false,"type":"boolean"}},{"nullable":false,"name":"vocabUnread","type":"boolean","default":false}]},"traits":[{"name":"OrbLintIconExists","id":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","effectRow":[{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.iconSet"},{"kind":"set","resource":"@entity.icons"},{"kind":"set","resource":"@entity.scope"},{"kind":"set","resource":"@entity.uKeys"},{"kind":"set","resource":"@entity.unitsHeard"},{"kind":"set","resource":"@entity.unitsScope"},{"kind":"set","resource":"@entity.vocabUnread"}],"linkedEntity":"OrbLintIconExistsRun","linkedEntityId":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","entityRefIds":{"OrbLintIconExistsRun":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA"},"emits":[{"event":"LINT_FOUND","eventId":"evt_5PH53P67PM3VA37HSNKPNP6NCM","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","description":"Internal: answer with the verdict.","tier":"internal"}],"listens":[{"event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","triggers":"LINT_INPUT","triggersId":"evt_7FQ88NAEG7783YW985YPXAZMX5","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UNITS","triggers":"UNITS_HEARD","triggersId":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UI_VOCAB","triggers":"UI_VOCAB_HEARD","triggersId":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UI_VOCAB_UNREAD","triggers":"UI_VOCAB_UNREAD","triggersId":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA","name":"Initialize"},{"key":"UI_VOCAB_HEARD","id":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","name":"Ui Vocab Heard","description":"std-orb-lint-input's LINT_UI_VOCAB: the installed UI vocabulary; its lucideIcons are the known icons.","payloadSchema":[{"nullable":false,"name":"slots","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"itemActionBaseProps","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"lucideIcons","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"themeKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"deliveryRoots","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"eventSourceKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"listened":true},{"key":"UI_VOCAB_UNREAD","id":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","name":"Ui Vocab Unread","description":"std-orb-lint-input's LINT_UI_VOCAB_UNREAD: the UI vocabulary could not be read.","payloadSchema":[{"nullable":false,"name":"error","type":"string","required":true}],"listened":true},{"key":"UNITS_HEARD","id":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","name":"Units Heard","description":"std-orb-lint-input's LINT_UNITS: the object keys, string emits and @item/@index roots of every transition, tick and config unit.","payloadSchema":[{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"guardKeys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"emitStr","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"guardEmitStr","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"itemRoots","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"guardItemRoots","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"listened":true},{"key":"LINT_INPUT","id":"evt_7FQ88NAEG7783YW985YPXAZMX5","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"projectedFrom":{"type":"IcProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"LINT_FINISH","id":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_5PH53P67PM3VA37HSNKPNP6NCM","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA"},{"from":"ready","to":"ready","event":"UI_VOCAB_HEARD","eventId":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","effects":[["set","@entity.vocabUnread",false],["set","@entity.icons","@payload.lucideIcons"],["set","@entity.iconSet",["object/fromEntries",["array/map","@payload.lucideIcons",["fn","x",["@x",true]]]]]]},{"from":"ready","to":"ready","event":"UI_VOCAB_UNREAD","eventId":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","effects":[["set","@entity.vocabUnread",true]]},{"from":"ready","to":"ready","event":"UNITS_HEARD","eventId":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","effects":[["set","@entity.uKeys","@payload.keys"],["set","@entity.unitsHeard",true],["set","@entity.unitsScope","@payload.scope"]]},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","guard":"@entity.vocabUnread","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",[{"code":"@config.codes.lintUiVocabUnread.code","path":"uiVocabulary","message":"the installed @almadar/core declares no readable UI vocabulary, so the Lucide icon set is unknown","suggestion":"Reinstall @almadar/core so its language data declares orbLanguage.uiVocabulary","severity":"error"}]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","guard":["not","@entity.vocabUnread"],"effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",["if",["and","@entity.unitsHeard",["=","@entity.unitsScope","@payload.scope"]],["let",[["orbitals",["object/get","@payload.program","orbitals",[]]],["icons","@entity.icons","{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["iconSet","@entity.iconSet"]],["array/flatten",["array/map",["array/range",0,["array/len","@orbitals"]],["fn","oi",["let",[["orb",["array/nth","@orbitals","@oi"]]],["let",[["trs",["object/get","@orb","traits",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@trs"]],["fn","tj",["let",[["td",["array/nth","@trs","@tj"]]],["let",[["trans",["object/get",["object/get","@td","stateMachine",{}],"transitions",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@trans"]],["fn","ti",["let",[["effs",["if",["array/some",["icon","actions","itemActions"],["fn","kk",["array/includes",["object/get","@entity.uKeys",["str/concat","@oi","-","@tj","-","@ti"],["array/take","@icons",0]],"@kk"]]],["object/get",["array/nth","@trans","@ti"],"effects",[]],["array/take",["object/get",["array/nth","@trans","@ti"],"effects",[]],0]]]],["array/flatten",["array/map",["array/range",0,["array/len","@effs"]],["fn","ej",["let",[["e",["array/nth","@effs","@ej"]]],["if",["and",["validate/array","@e"],[">",["array/len","@e"],2],["let",[["hd",["array/nth","@e",0]]],["and",["validate/string","@hd"],["=","@hd","render-ui"]]],["validate/object",["array/nth","@e",2]]],["let",[["fr",["tree/fold",["array/nth","@e",2],["fn",["n","k"],["let",[["nr",{"f":[]},"{\"version\":1,\"name\":\"IcResIE\",\"type\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"f\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcHitIE\"}},\"required\":true,\"constraints\":[]}]},\"named\":{\"IcHitIE\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"p\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"msg\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"sug\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]}]}}}"]],["if",["validate/array","@n"],{"f":["array/flatten",["array/map",["array/range",0,["array/len","@n"]],["fn","i",["if",["validate/object",["array/nth","@n","@i"]],["array/map",["object/get",["let",[["r0",["array/nth","@k","@i"]]],["if",["=","@r0",null],"@nr","@r0"]],"f"],["fn","h",{"p":["str/concat","[","@i","]",["object/get","@h","p"]],"code":["object/get","@h","code"],"msg":["object/get","@h","msg"],"sug":["object/get","@h","sug"]}]],[]]]]]},["if",["validate/object","@n"],["let",[["noc",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcCand\"}},\"named\":{\"IcCand\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"p\",\"fieldType\":{\"kind\":\"string\"},\"required\":false,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}},\"required\":false,\"constraints\":[]}]},\"IcVal\":{\"kind\":\"union\",\"variants\":[{\"name\":\"string\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"number\",\"fieldType\":{\"kind\":\"number\"},\"required\":true,\"constraints\":[]},{\"name\":\"boolean\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"array\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}}},\"required\":true,\"constraints\":[]},{\"name\":\"map\",\"fieldType\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}}},\"required\":true,\"constraints\":[]}]}}}"]],["let",[["cs",["array/concat",["if",["object/has","@n","icon"],[{"p":".icon","v":["object/get","@n","icon"]}],"@noc"],["let",[["lst",["object/get","@n","actions",null]]],["if",["validate/array","@lst"],["array/flatten",["array/map",["array/range",0,["array/len","@lst"]],["fn","i",["let",[["a",["array/nth","@lst","@i"]]],["if",["and",["validate/object","@a"],["object/has","@a","icon"]],[{"p":["str/concat",".actions[","@i","].icon"],"v":["object/get","@a","icon"]}],[]]]]]],"@noc"]],["let",[["lst",["object/get","@n","itemActions",null]]],["if",["validate/array","@lst"],["array/flatten",["array/map",["array/range",0,["array/len","@lst"]],["fn","i",["let",[["a",["array/nth","@lst","@i"]]],["if",["and",["validate/object","@a"],["object/has","@a","icon"]],[{"p":["str/concat",".itemActions[","@i","].icon"],"v":["object/get","@a","icon"]}],[]]]]]],"@noc"]]]]],{"f":["array/concat",["array/flatten",["array/map","@cs",["fn","c",["let",[["v",["object/get","@c","v"]]],["if",["or",["not",["validate/string","@v"]],["str/startsWith","@v",["quote","\"\\u0040\""]],["=",["str/trim","@v"],""],["not",["or",["validate/pattern","@v","^[a-z][a-z0-9]*(-[a-z0-9]+)*$"],["validate/pattern","@v","^[A-Z][a-zA-Z0-9]*$"]]]],[],["let",[["chars",["str/split","@v",""],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["pascal",["validate/pattern","@v","^[A-Z][a-zA-Z0-9]*$"]]],["let",[["norm",["if","@pascal",["str/join",["array/map",["array/range",0,["array/len","@chars"]],["fn","ci",["let",[["ch",["array/nth","@chars","@ci"]]],["if",["and",["!=","@ch",["str/lower","@ch"]],["=","@ch",["str/upper","@ch"]]],["if",["=","@ci",0],["str/lower","@ch"],["str/concat","-",["str/lower","@ch"]]],"@ch"]]]],""],["str/lower","@v"]]]],["if",["object/has","@iconSet","@norm"],[],["let",[["na",["array/unique",["str/split","@norm",""]]]],["let",[["top",["array/take",["array/sort",["array/filter",["array/map",["array/range",0,["array/len","@icons"]],["fn","ii",["let",[["nm",["array/nth","@icons","@ii"]]],["let",[["nb",["array/unique",["str/split","@nm",""]]]],{"i":"@ii","n":"@nm","s":["/",["array/len",["array/filter","@na",["fn","ch",["array/includes","@nb","@ch"]]]],["if",[">",["array/len","@na"],["array/len","@nb"]],["array/len","@na"],["array/len","@nb"]]]}]]]],["fn","r",[">",["object/get","@r","s",0],0.3]]],"s","desc"],3]]],[{"p":["object/get","@c","p"],"code":"@config.codes.uiIconNotFound.code","msg":["str/concat","Icon '","@v","' may not exist in Lucide. Check https://lucide.dev/icons for available icons"],"sug":["if",["=",["array/len","@top"],0],"",["str/concat","Did you mean: ",["str/join",["array/map","@top",["fn","r",["object/get","@r","n"]]],", "],"?"]]}]]]]]]]]]]],["array/flatten",["array/map",["object/keys","@n"],["fn","key",["let",[["child",["object/get","@n","@key",null]],["r",["let",[["r0",["object/get","@k","@key",null]]],["if",["=","@r0",null],"@nr","@r0"]]]],["if",["or",["validate/object","@child"],["validate/array","@child"]],["array/map",["object/get","@r","f"],["fn","h",{"p":["str/concat",".","@key",["object/get","@h","p"]],"code":["object/get","@h","code"],"msg":["object/get","@h","msg"],"sug":["object/get","@h","sug"]}]],[]]]]]]]}]],"@nr"]]]],"IcVal","{\"name\":\"IcVal\",\"nullable\":false,\"projectedFrom\":{\"type\":\"IcVal\"},\"properties\":{\"array\":{\"items\":{\"nullable\":true,\"projectedFrom\":{\"type\":\"IcVal\"},\"type\":\"union\",\"values\":[\"IcVal\"]},\"name\":\"array\",\"nullable\":false,\"type\":\"array\"},\"boolean\":{\"name\":\"boolean\",\"nullable\":false,\"type\":\"boolean\"},\"map\":{\"items\":{\"nullable\":true,\"projectedFrom\":{\"type\":\"IcVal\"},\"type\":\"union\",\"values\":[\"IcVal\"]},\"name\":\"map\",\"nullable\":false,\"type\":\"object\"},\"number\":{\"name\":\"number\",\"nullable\":false,\"type\":\"number\"},\"string\":{\"name\":\"string\",\"nullable\":false,\"type\":\"string\"}},\"type\":\"union\",\"values\":[\"string\",\"number\",\"boolean\",\"array\",\"map\"]}"]]],["if",["=","@fr",null],[],["array/map",["object/get","@fr","f"],["fn","h",{"code":["object/get","@h","code"],"path":["str/concat","orbitals[","@oi"," (",["object/get","@orb","name",""],")].traits[","@tj"," (",["object/get","@td","name",""],")].stateMachine.transitions[","@ti","].effects[","@ej","].pattern",["object/get","@h","p"]],"message":["object/get","@h","msg"],"suggestion":["object/get","@h","sug"],"severity":"error"}]]]],[]]]]]]]]]]]]]]]]]]]]],[{"code":"@config.codes.lintIndexMissing.code","path":"","message":"the lint input arrived without LINT_UNITS, so this rule cannot check the program","suggestion":"std-orb-lint-input sends LINT_UNITS before LINT_INPUT; this rule did not hear it","severity":"error"}]]],["set","@entity.unitsHeard",false],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","effects":[["emit","LINT_FOUND",{"rule":"icon-exists","scope":"@entity.scope","findings":"@entity.findings"}]]}]},"config":{"codes":{"nullable":false,"type":"LintIconExistsCodes","default":{"lintIndexMissing":{"code":"ORB_LINT_INDEX_MISSING","category":"lint","description":"The lint input arrived without a shared program fact the rule reads (the structural index, sites, units, embeds or entities), so the rule cannot check the program"},"lintUiVocabUnread":{"code":"ORB_LINT_UI_VOCAB_UNREAD","category":"lint","description":"The installed @almadar/core declares no readable UI vocabulary, so a UI lint check cannot run"},"uiIconNotFound":{"code":"ORB_UI_ICON_NOT_FOUND","category":"icon","description":"An icon name does not exist in the icon set"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"lintIndexMissing":{"nullable":false,"name":"lintIndexMissing","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"lintUiVocabUnread":{"nullable":false,"name":"lintUiVocabUnread","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"uiIconNotFound":{"nullable":false,"name":"uiIconNotFound","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintIconExistsCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","fingerprint":"5acf73a8367009caccdaa1ab0bc4da031a61c2c6492c4cc4daf7bd4bfe8677b7"}},{"name":"OrbLintIconExistsCli","id":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintIconExistsRun","linkedEntityId":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","entityRefIds":{"OrbLintIconExistsRun":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_AZBS52H38HHM8MC36HRAHBWPW8","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_5PH53P67PM3VA37HSNKPNP6NCM","triggers":"LINT_FOUND","triggersId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","source":{"kind":"trait","trait":"OrbLintIconExists","traitId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_8G7N4PEDEG6Q86A90N86BM61HN","name":"Lint Called","description":"Run `orb lint icon-exists` with its arguments and working directory.","synonyms":"orb lint icon-exists","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-icon-exists","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_AZBS52H38HHM8MC36HRAHBWPW8","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_8G7N4PEDEG6Q86A90N86BM61HN","guard":["or",["=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["!=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint icon-exists <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_8G7N4PEDEG6Q86A90N86BM61HN","guard":["and",["!=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["let",[["argFile",["array/first",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]]]],["if",["=","@argFile",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint icon-exists <file>"}],["emit","LINT_REQUEST",{"file":"@argFile"}]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","guard":["and",["=","@payload.rule","icon-exists"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint icon-exists: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","guard":["and",["=","@payload.rule","icon-exists"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint icon-exists: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","fingerprint":"b327a9b93c0f8ca6641d3365ab78252585f2900fd3a454776a284f74024bfdee"}},{"ref":"Input.traits.Versions","id":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_68NJ0VM449224NS5A0H5VW6Z1Y","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintIconExistsCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]}],"pages":[{"name":"OrbLintIconExistsOrbitalStart","id":"pag_7NFMGKVK2WSHEAHBNP8HNE5V28","path":"","protocol":"boot","traits":[{"ref":"OrbLintIconExists","refId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},{"ref":"OrbLintIconExistsCli","refId":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},{"ref":"OrbLintInput","refId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"},{"ref":"Packs","refId":"trt_68NJ0VM449224NS5A0H5VW6Z1Y"},{"ref":"Versions","refId":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68"}]}],"types":{"IcCand":[{"nullable":false,"name":"p","type":"string"},{"nullable":true,"name":"v","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"projectedFrom":{"type":"IcVal"}}],"IcHitIE":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"IcMachine":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"IcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"IcProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"IcResIE":[{"nullable":false,"name":"f","type":"[object]","required":true,"properties":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"IcHitIE","projectedFrom":{"type":"IcHitIE"}}}],"IcTrait":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"IcTransition":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"IcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}]}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintIconExistsCodes":[{"nullable":false,"name":"lintIndexMissing","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"lintUiVocabUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"uiIconNotFound","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]}}],"inbound":["cli-lint-icon-exists"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":["orb"],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA":{"id":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","kind":"entity","bakedName":"OrbLintIconExistsRun","curName":"OrbLintIconExistsRun","renames":[],"owner":"workspace"},"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE":{"id":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E":{"id":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_5PH53P67PM3VA37HSNKPNP6NCM":{"id":"evt_5PH53P67PM3VA37HSNKPNP6NCM","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_73WRTX5A73N3HYQXGT6GGC8GT3":{"id":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_7FQ88NAEG7783YW985YPXAZMX5":{"id":"evt_7FQ88NAEG7783YW985YPXAZMX5","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_8G7N4PEDEG6Q86A90N86BM61HN":{"id":"evt_8G7N4PEDEG6Q86A90N86BM61HN","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_AZBS52H38HHM8MC36HRAHBWPW8":{"id":"evt_AZBS52H38HHM8MC36HRAHBWPW8","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49":{"id":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","kind":"event","bakedName":"UNITS_HEARD","curName":"UNITS_HEARD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ":{"id":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_N0R7KN1MCDT66NRVRZDQ046JRK":{"id":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","kind":"event","bakedName":"UI_VOCAB_HEARD","curName":"UI_VOCAB_HEARD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_Q5QM1SGEV67DKDYJ650QA9ESJA":{"id":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_WJPYYCTV63DK1TYKX77FSZWCZ4":{"id":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","kind":"event","bakedName":"UI_VOCAB_UNREAD","curName":"UI_VOCAB_UNREAD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD":{"id":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK":{"id":"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK","kind":"orbital","bakedName":"OrbLintIconExistsOrbital","curName":"OrbLintIconExistsOrbital","renames":[],"owner":"workspace"},"pag_7NFMGKVK2WSHEAHBNP8HNE5V28":{"id":"pag_7NFMGKVK2WSHEAHBNP8HNE5V28","kind":"page","bakedName":"OrbLintIconExistsOrbitalStart","curName":"OrbLintIconExistsOrbitalStart","renames":[],"owner":"workspace"},"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM":{"id":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","kind":"trait","bakedName":"OrbLintIconExists","curName":"OrbLintIconExists","renames":[],"owner":"workspace"},"trt_68NJ0VM449224NS5A0H5VW6Z1Y":{"id":"trt_68NJ0VM449224NS5A0H5VW6Z1Y","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_DNW87P2KSG9WR6GWV6XGXG45ZN":{"id":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","kind":"trait","bakedName":"OrbLintIconExistsCli","curName":"OrbLintIconExistsCli","renames":[],"owner":"workspace"},"trt_HCCW0SZED4Q6JD4FN2SF6PQY68":{"id":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"},"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ":{"id":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"}}}}
1
+ {"typeContractVersion":1,"types":{"IcCand":[{"nullable":false,"name":"p","type":"string"},{"nullable":true,"name":"v","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"projectedFrom":{"type":"IcVal"}}],"IcHitIE":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"IcMachine":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"IcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"IcProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"IcResIE":[{"nullable":false,"name":"f","type":"[object]","required":true,"properties":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"IcHitIE","projectedFrom":{"type":"IcHitIE"}}}],"IcTrait":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"IcTransition":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"IcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}]}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintIconExistsCodes":[{"nullable":false,"name":"lintIndexMissing","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"lintUiVocabUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"uiIconNotFound","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]},"name":"std-orb-lint-icon-exists","version":"1.0.0","description":"std-orb-lint-icon-exists — the `orb lint icon-exists <file>` command, the port of the ORB_UI_ICON_NOT_FOUND check of icon.rs (validate_icon_value). It walks the same icon positions as icon-format (the `icon` prop, `actions[i].icon` and `itemActions[i].icon` of every object inside the pattern of a `render-ui` effect, recursing as the compiler does) and reports a well-formed icon name (kebab-case or PascalCase, not a binding, not blank) whose kebab-case form (PascalCase lowers each capital to -x, kebab-case lowercases) is not in the installed Lucide set, which comes from std-orb-lint-input's LINT_UI_VOCAB (orbLanguage.uiVocabulary.lucideIcons). The suggestion lists up to three installed icons whose distinct-character overlap with the name (shared distinct characters over the larger distinct-character count) is above 0.3, best first, ties in vocabulary order. An unreadable vocabulary answers ORB_LINT_UI_VOCAB_UNREAD. Clean answers `lint icon-exists: clean` (status 200, exit 0). Anything but one file argument is the usage (status 400, exit 2); an unreadable or unlowerable file is status 500.","orbitals":[{"name":"OrbLintIconExistsOrbital","id":"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK","uses":[{"from":"almadar-std/lint-icon-exists","as":"Spec"},{"from":"std/behaviors/std-orb-lint-input","as":"Input"}],"entity":{"name":"OrbLintIconExistsRun","id":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","persistence":"runtime","fields":[{"nullable":false,"name":"uKeys","type":"object","default":{},"items":{"nullable":false,"type":"array","items":{"nullable":false,"type":"string"}}},{"nullable":false,"name":"unitsHeard","type":"boolean","default":false},{"nullable":false,"name":"unitsScope","type":"string","default":""},{"nullable":false,"name":"id","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","default":""},{"nullable":false,"name":"findings","type":"array","default":[],"items":{"nullable":false,"type":"object","properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"path":{"nullable":false,"name":"path","type":"string","required":true},"message":{"nullable":false,"name":"message","type":"string","required":true},"suggestion":{"nullable":false,"name":"suggestion","type":"string","required":true},"severity":{"nullable":false,"name":"severity","type":"string","required":false,"values":["warning","error"]}},"projectedFrom":{"type":"OrbFinding"}}},{"nullable":false,"name":"icons","type":"array","default":[],"items":{"nullable":false,"type":"string"}},{"nullable":false,"name":"iconSet","type":"object","default":{},"items":{"nullable":false,"type":"boolean"}},{"nullable":false,"name":"vocabUnread","type":"boolean","default":false}]},"traits":[{"name":"OrbLintIconExists","id":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","effectRow":[{"kind":"emit","resource":"LINT_FINISH"},{"kind":"emit","resource":"LINT_FOUND"},{"kind":"set","resource":"@entity.findings"},{"kind":"set","resource":"@entity.iconSet"},{"kind":"set","resource":"@entity.icons"},{"kind":"set","resource":"@entity.scope"},{"kind":"set","resource":"@entity.uKeys"},{"kind":"set","resource":"@entity.unitsHeard"},{"kind":"set","resource":"@entity.unitsScope"},{"kind":"set","resource":"@entity.vocabUnread"}],"linkedEntity":"OrbLintIconExistsRun","linkedEntityId":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","entityRefIds":{"OrbLintIconExistsRun":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA"},"emits":[{"event":"LINT_FOUND","eventId":"evt_5PH53P67PM3VA37HSNKPNP6NCM","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_FINISH","eventId":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","description":"Internal: answer with the verdict.","tier":"internal"}],"listens":[{"event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","triggers":"LINT_INPUT","triggersId":"evt_7FQ88NAEG7783YW985YPXAZMX5","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UNITS","triggers":"UNITS_HEARD","triggersId":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UI_VOCAB","triggers":"UI_VOCAB_HEARD","triggersId":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}},{"event":"LINT_UI_VOCAB_UNREAD","triggers":"UI_VOCAB_UNREAD","triggersId":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true}],"events":[{"key":"INIT","id":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA","name":"Initialize"},{"key":"UI_VOCAB_HEARD","id":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","name":"Ui Vocab Heard","description":"std-orb-lint-input's LINT_UI_VOCAB: the installed UI vocabulary; its lucideIcons are the known icons.","payloadSchema":[{"nullable":false,"name":"slots","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"itemActionBaseProps","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"lucideIcons","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"themeKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"deliveryRoots","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"eventSourceKeys","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}}],"listened":true},{"key":"UI_VOCAB_UNREAD","id":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","name":"Ui Vocab Unread","description":"std-orb-lint-input's LINT_UI_VOCAB_UNREAD: the UI vocabulary could not be read.","payloadSchema":[{"nullable":false,"name":"error","type":"string","required":true}],"listened":true},{"key":"UNITS_HEARD","id":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","name":"Units Heard","description":"std-orb-lint-input's LINT_UNITS: the object keys, string emits and @item/@index roots of every transition, tick and config unit.","payloadSchema":[{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"keys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"guardKeys","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"emitStr","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"guardEmitStr","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"itemRoots","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}},{"nullable":false,"name":"guardItemRoots","type":"Map<string,[string]>","required":true,"items":{"nullable":false,"name":"","type":"[string]","items":{"nullable":false,"name":"","type":"string"}}}],"listened":true},{"key":"LINT_INPUT","id":"evt_7FQ88NAEG7783YW985YPXAZMX5","name":"Lint Input","description":"The lint input: the file read, its language decided and the program lowered.","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true},{"nullable":false,"name":"raw","type":"string","required":true},{"nullable":false,"name":"latin","type":"boolean","required":true},{"nullable":false,"name":"program","type":"object","required":true,"properties":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"projectedFrom":{"type":"IcProgram"}},{"nullable":false,"name":"scope","type":"string","required":true}],"listened":true},{"key":"LINT_FINISH","id":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","name":"Lint Finish","description":"Internal: answer with the verdict.","tier":"internal"},{"key":"LINT_FOUND","id":"evt_5PH53P67PM3VA37HSNKPNP6NCM","name":"Lint Found","description":"This rule's findings for the file, offered to the lint-all umbrella.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA"},{"from":"ready","to":"ready","event":"UI_VOCAB_HEARD","eventId":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","effects":[["set","@entity.vocabUnread",false],["set","@entity.icons","@payload.lucideIcons"],["set","@entity.iconSet",["object/fromEntries",["array/map","@payload.lucideIcons",["fn","x",["@x",true]]]]]]},{"from":"ready","to":"ready","event":"UI_VOCAB_UNREAD","eventId":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","effects":[["set","@entity.vocabUnread",true]]},{"from":"ready","to":"ready","event":"UNITS_HEARD","eventId":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","effects":[["set","@entity.uKeys","@payload.keys"],["set","@entity.unitsHeard",true],["set","@entity.unitsScope","@payload.scope"]]},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","guard":"@entity.vocabUnread","effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",[{"code":"@config.codes.lintUiVocabUnread.code","path":"uiVocabulary","message":"the installed @almadar/core declares no readable UI vocabulary, so the Lucide icon set is unknown","suggestion":"Reinstall @almadar/core so its language data declares orbLanguage.uiVocabulary","severity":"error"}]],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_INPUT","eventId":"evt_7FQ88NAEG7783YW985YPXAZMX5","guard":["not","@entity.vocabUnread"],"effects":[["set","@entity.scope","@payload.scope"],["set","@entity.findings",["if",["and","@entity.unitsHeard",["=","@entity.unitsScope","@payload.scope"]],["let",[["orbitals",["object/get","@payload.program","orbitals",[]]],["icons","@entity.icons","{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["iconSet","@entity.iconSet"]],["array/flatten",["array/map",["array/range",0,["array/len","@orbitals"]],["fn","oi",["let",[["orb",["array/nth","@orbitals","@oi"]]],["let",[["trs",["object/get","@orb","traits",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@trs"]],["fn","tj",["let",[["td",["array/nth","@trs","@tj"]]],["let",[["trans",["object/get",["object/get","@td","stateMachine",{}],"transitions",[]]]],["array/flatten",["array/map",["array/range",0,["array/len","@trans"]],["fn","ti",["let",[["effs",["if",["array/some",["icon","actions","itemActions"],["fn","kk",["array/includes",["object/get","@entity.uKeys",["str/concat","@oi","-","@tj","-","@ti"],["array/take","@icons",0]],"@kk"]]],["object/get",["array/nth","@trans","@ti"],"effects",[]],["array/take",["object/get",["array/nth","@trans","@ti"],"effects",[]],0]]]],["array/flatten",["array/map",["array/range",0,["array/len","@effs"]],["fn","ej",["let",[["e",["array/nth","@effs","@ej"]]],["if",["and",["validate/array","@e"],[">",["array/len","@e"],2],["let",[["hd",["array/nth","@e",0]]],["and",["validate/string","@hd"],["=","@hd","render-ui"]]],["validate/object",["array/nth","@e",2]]],["let",[["fr",["tree/fold",["array/nth","@e",2],["fn",["n","k"],["let",[["nr",{"f":[]},"{\"version\":1,\"name\":\"IcResIE\",\"type\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"f\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcHitIE\"}},\"required\":true,\"constraints\":[]}]},\"named\":{\"IcHitIE\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"p\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"code\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"msg\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"sug\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]}]}}}"]],["if",["validate/array","@n"],{"f":["array/flatten",["array/map",["array/range",0,["array/len","@n"]],["fn","i",["if",["validate/object",["array/nth","@n","@i"]],["array/map",["object/get",["let",[["r0",["array/nth","@k","@i"]]],["if",["=","@r0",null],"@nr","@r0"]],"f"],["fn","h",{"p":["str/concat","[","@i","]",["object/get","@h","p"]],"code":["object/get","@h","code"],"msg":["object/get","@h","msg"],"sug":["object/get","@h","sug"]}]],[]]]]]},["if",["validate/object","@n"],["let",[["noc",[],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcCand\"}},\"named\":{\"IcCand\":{\"kind\":\"struct\",\"fields\":[{\"name\":\"p\",\"fieldType\":{\"kind\":\"string\"},\"required\":false,\"constraints\":[]},{\"name\":\"v\",\"fieldType\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}},\"required\":false,\"constraints\":[]}]},\"IcVal\":{\"kind\":\"union\",\"variants\":[{\"name\":\"string\",\"fieldType\":{\"kind\":\"string\"},\"required\":true,\"constraints\":[]},{\"name\":\"number\",\"fieldType\":{\"kind\":\"number\"},\"required\":true,\"constraints\":[]},{\"name\":\"boolean\",\"fieldType\":{\"kind\":\"boolean\"},\"required\":true,\"constraints\":[]},{\"name\":\"array\",\"fieldType\":{\"kind\":\"array\",\"inner\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}}},\"required\":true,\"constraints\":[]},{\"name\":\"map\",\"fieldType\":{\"kind\":\"map\",\"key\":{\"kind\":\"string\"},\"value\":{\"kind\":\"optional\",\"inner\":{\"kind\":\"typeref\",\"name\":\"IcVal\"}}},\"required\":true,\"constraints\":[]}]}}}"]],["let",[["cs",["array/concat",["if",["object/has","@n","icon"],[{"p":".icon","v":["object/get","@n","icon"]}],"@noc"],["let",[["lst",["object/get","@n","actions",null]]],["if",["validate/array","@lst"],["array/flatten",["array/map",["array/range",0,["array/len","@lst"]],["fn","i",["let",[["a",["array/nth","@lst","@i"]]],["if",["and",["validate/object","@a"],["object/has","@a","icon"]],[{"p":["str/concat",".actions[","@i","].icon"],"v":["object/get","@a","icon"]}],[]]]]]],"@noc"]],["let",[["lst",["object/get","@n","itemActions",null]]],["if",["validate/array","@lst"],["array/flatten",["array/map",["array/range",0,["array/len","@lst"]],["fn","i",["let",[["a",["array/nth","@lst","@i"]]],["if",["and",["validate/object","@a"],["object/has","@a","icon"]],[{"p":["str/concat",".itemActions[","@i","].icon"],"v":["object/get","@a","icon"]}],[]]]]]],"@noc"]]]]],{"f":["array/concat",["array/flatten",["array/map","@cs",["fn","c",["let",[["v",["object/get","@c","v"]]],["if",["or",["not",["validate/string","@v"]],["str/startsWith","@v",["quote","\"\\u0040\""]],["=",["str/trim","@v"],""],["not",["or",["validate/pattern","@v","^[a-z][a-z0-9]*(-[a-z0-9]+)*$"],["validate/pattern","@v","^[A-Z][a-zA-Z0-9]*$"]]]],[],["let",[["chars",["str/split","@v",""],"{\"version\":1,\"type\":{\"kind\":\"array\",\"inner\":{\"kind\":\"string\"}}}"],["pascal",["validate/pattern","@v","^[A-Z][a-zA-Z0-9]*$"]]],["let",[["norm",["if","@pascal",["str/join",["array/map",["array/range",0,["array/len","@chars"]],["fn","ci",["let",[["ch",["array/nth","@chars","@ci"]]],["if",["and",["!=","@ch",["str/lower","@ch"]],["=","@ch",["str/upper","@ch"]]],["if",["=","@ci",0],["str/lower","@ch"],["str/concat","-",["str/lower","@ch"]]],"@ch"]]]],""],["str/lower","@v"]]]],["if",["object/has","@iconSet","@norm"],[],["let",[["na",["array/unique",["str/split","@norm",""]]]],["let",[["top",["array/take",["array/sort",["array/filter",["array/map",["array/range",0,["array/len","@icons"]],["fn","ii",["let",[["nm",["array/nth","@icons","@ii"]]],["let",[["nb",["array/unique",["str/split","@nm",""]]]],{"i":"@ii","n":"@nm","s":["/",["array/len",["array/filter","@na",["fn","ch",["array/includes","@nb","@ch"]]]],["if",[">",["array/len","@na"],["array/len","@nb"]],["array/len","@na"],["array/len","@nb"]]]}]]]],["fn","r",[">",["object/get","@r","s",0],0.3]]],"s","desc"],3]]],[{"p":["object/get","@c","p"],"code":"@config.codes.uiIconNotFound.code","msg":["str/concat","Icon '","@v","' may not exist in Lucide. Check https://lucide.dev/icons for available icons"],"sug":["if",["=",["array/len","@top"],0],"",["str/concat","Did you mean: ",["str/join",["array/map","@top",["fn","r",["object/get","@r","n"]]],", "],"?"]]}]]]]]]]]]]],["array/flatten",["array/map",["object/keys","@n"],["fn","key",["let",[["child",["object/get","@n","@key",null]],["r",["let",[["r0",["object/get","@k","@key",null]]],["if",["=","@r0",null],"@nr","@r0"]]]],["if",["or",["validate/object","@child"],["validate/array","@child"]],["array/map",["object/get","@r","f"],["fn","h",{"p":["str/concat",".","@key",["object/get","@h","p"]],"code":["object/get","@h","code"],"msg":["object/get","@h","msg"],"sug":["object/get","@h","sug"]}]],[]]]]]]]}]],"@nr"]]]],"IcVal","{\"name\":\"IcVal\",\"nullable\":false,\"projectedFrom\":{\"type\":\"IcVal\"},\"properties\":{\"array\":{\"items\":{\"nullable\":true,\"projectedFrom\":{\"type\":\"IcVal\"},\"type\":\"union\",\"values\":[\"IcVal\"]},\"name\":\"array\",\"nullable\":false,\"type\":\"array\"},\"boolean\":{\"name\":\"boolean\",\"nullable\":false,\"type\":\"boolean\"},\"map\":{\"items\":{\"nullable\":true,\"projectedFrom\":{\"type\":\"IcVal\"},\"type\":\"union\",\"values\":[\"IcVal\"]},\"name\":\"map\",\"nullable\":false,\"type\":\"object\"},\"number\":{\"name\":\"number\",\"nullable\":false,\"type\":\"number\"},\"string\":{\"name\":\"string\",\"nullable\":false,\"type\":\"string\"}},\"type\":\"union\",\"values\":[\"string\",\"number\",\"boolean\",\"array\",\"map\"]}"]]],["if",["=","@fr",null],[],["array/map",["object/get","@fr","f"],["fn","h",{"code":["object/get","@h","code"],"path":["str/concat","orbitals[","@oi"," (",["object/get","@orb","name",""],")].traits[","@tj"," (",["object/get","@td","name",""],")].stateMachine.transitions[","@ti","].effects[","@ej","].pattern",["object/get","@h","p"]],"message":["object/get","@h","msg"],"suggestion":["object/get","@h","sug"],"severity":"error"}]]]],[]]]]]]]]]]]]]]]]]]]]],[{"code":"@config.codes.lintIndexMissing.code","path":"","message":"the lint input arrived without LINT_UNITS, so this rule cannot check the program","suggestion":"std-orb-lint-input sends LINT_UNITS before LINT_INPUT; this rule did not hear it","severity":"error"}]]],["set","@entity.unitsHeard",false],["emit","LINT_FINISH",{}]]},{"from":"ready","to":"ready","event":"LINT_FINISH","eventId":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","effects":[["emit","LINT_FOUND",{"rule":"icon-exists","scope":"@entity.scope","findings":"@entity.findings"}]]}]},"config":{"codes":{"nullable":false,"type":"LintIconExistsCodes","default":{"lintIndexMissing":{"code":"ORB_LINT_INDEX_MISSING","category":"lint","description":"The lint input arrived without a shared program fact the rule reads (the structural index, sites, units, embeds or entities), so the rule cannot check the program"},"lintUiVocabUnread":{"code":"ORB_LINT_UI_VOCAB_UNREAD","category":"lint","description":"The installed @almadar/core declares no readable UI vocabulary, so a UI lint check cannot run"},"uiIconNotFound":{"code":"ORB_UI_ICON_NOT_FOUND","category":"icon","description":"An icon name does not exist in the icon set"}},"label":"Emitted codes","description":"The finding codes this rule emits, with their category and meaning; the registry is generated from this declaration.","properties":{"lintIndexMissing":{"nullable":false,"name":"lintIndexMissing","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"lintUiVocabUnread":{"nullable":false,"name":"lintUiVocabUnread","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}},"uiIconNotFound":{"nullable":false,"name":"uiIconNotFound","type":"object","required":false,"properties":{"code":{"nullable":false,"name":"code","type":"string","required":true},"category":{"nullable":false,"name":"category","type":"string","required":true},"description":{"nullable":false,"name":"description","type":"string","required":true}},"projectedFrom":{"type":"LintCodeDecl"}}},"projectedFrom":{"type":"LintIconExistsCodes"}}},"dispatch":"optimistic","sourceDeclaration":{"traitId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","fingerprint":"5acf73a8367009caccdaa1ab0bc4da031a61c2c6492c4cc4daf7bd4bfe8677b7"}},{"name":"OrbLintIconExistsCli","id":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","effectRow":[{"kind":"emit","resource":"LINT_ANSWERED"},{"kind":"emit","resource":"LINT_REQUEST"}],"linkedEntity":"OrbLintIconExistsRun","linkedEntityId":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","entityRefIds":{"OrbLintIconExistsRun":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA"},"emits":[{"event":"LINT_ANSWERED","eventId":"evt_AZBS52H38HHM8MC36HRAHBWPW8","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","scope":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"event":"LINT_REQUEST","eventId":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","description":"Ask the lint input to read and lower this file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]},{"event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","description":"The rule trait's findings for the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","description":"The lint input could not read or lower the file.","tier":"internal","scope":"external","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"listens":[{"event":"LINT_FOUND","eventId":"evt_5PH53P67PM3VA37HSNKPNP6NCM","triggers":"LINT_FOUND","triggersId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","source":{"kind":"trait","trait":"OrbLintIconExists","traitId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"}},{"event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","triggers":"LINT_INPUT_UNREAD","triggersId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","source":{"kind":"trait","trait":"OrbLintInput","traitId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"}}],"stateMachine":{"states":[{"name":"ready","isInitial":true},{"name":"waiting"}],"events":[{"key":"INIT","id":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E","name":"Initialize"},{"key":"LINT_CALLED","id":"evt_8G7N4PEDEG6Q86A90N86BM61HN","name":"Lint Called","description":"Run `orb lint icon-exists` with its arguments and working directory.","synonyms":"orb lint icon-exists","payloadSchema":[{"nullable":false,"name":"headers","type":"Map<string,string>","items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"rawBody","type":"string","required":true}],"listened":true,"inbound":{"name":"cli-lint-icon-exists","answers":"LINT_ANSWERED"}},{"key":"LINT_FOUND","id":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","name":"Lint Found","description":"The rule trait's findings for the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"rule","type":"string","required":true},{"nullable":false,"name":"scope","type":"string","required":true},{"nullable":false,"name":"findings","type":"[object]","required":true,"properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}],"items":{"nullable":false,"name":"","type":"OrbFinding","projectedFrom":{"type":"OrbFinding"}}}]},{"key":"LINT_INPUT_UNREAD","id":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","name":"Lint Input Unread","description":"The lint input could not read or lower the file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}],"listened":true},{"key":"LINT_ANSWERED","id":"evt_AZBS52H38HHM8MC36HRAHBWPW8","name":"Lint Answered","description":"Internal: the command's answer, which the cli hook prints.","tier":"internal","payloadSchema":[{"nullable":false,"name":"status","type":"number","required":true},{"nullable":false,"name":"body","type":"string","required":true}]},{"key":"LINT_REQUEST","id":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","name":"Lint Request","description":"Ask the lint input to read and lower this file.","tier":"internal","payloadSchema":[{"nullable":false,"name":"file","type":"string","required":true}]}],"transitions":[{"from":"ready","to":"ready","event":"INIT","eventId":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E"},{"from":"ready","to":"ready","event":"LINT_CALLED","eventId":"evt_8G7N4PEDEG6Q86A90N86BM61HN","guard":["or",["=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["!=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint icon-exists <file>"}]]},{"from":"ready","to":"waiting","event":"LINT_CALLED","eventId":"evt_8G7N4PEDEG6Q86A90N86BM61HN","guard":["and",["!=",["json/parse","@payload.rawBody","OrbCommandArgs"],null],["=",["array/len",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]],1]],"effects":[["let",[["argFile",["array/first",["object/get",["json/parse","@payload.rawBody","OrbCommandArgs"],"argv"]]]],["if",["=","@argFile",null],["emit","LINT_ANSWERED",{"status":400,"body":"usage: orb lint icon-exists <file>"}],["emit","LINT_REQUEST",{"file":"@argFile"}]]]]},{"from":"waiting","to":"waiting","event":"INIT","eventId":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E"},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","guard":["and",["=","@payload.rule","icon-exists"],["=",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":200,"body":"lint icon-exists: clean"}]]},{"from":"waiting","to":"ready","event":"LINT_FOUND","eventId":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","guard":["and",["=","@payload.rule","icon-exists"],[">",["array/len","@payload.findings"],0]],"effects":[["emit","LINT_ANSWERED",{"status":500,"body":["str/join",["array/map","@payload.findings",["fn","x",["str/concat","[",["object/get","@x","code"],"] ",["object/get","@x","path"],": ",["object/get","@x","message"],["if",["=",["object/get","@x","suggestion"],""],"",["str/concat","\n suggestion: ",["object/get","@x","suggestion"]]]]]],"\n"]}]]},{"from":"waiting","to":"ready","event":"LINT_INPUT_UNREAD","eventId":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","effects":[["emit","LINT_ANSWERED",{"status":500,"body":"lint icon-exists: the file could not be read or lowered"}]]}]},"dispatch":"client","sourceDeclaration":{"traitId":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","fingerprint":"b327a9b93c0f8ca6641d3365ab78252585f2900fd3a454776a284f74024bfdee"}},{"ref":"Input.traits.Versions","id":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68","name":"Versions"},{"ref":"Input.traits.Packs","id":"trt_68NJ0VM449224NS5A0H5VW6Z1Y","name":"Packs"},{"ref":"Input.traits.OrbLintInput","id":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ","name":"OrbLintInput","listens":[{"event":"LINT_REQUEST","triggers":"LINT_REQUEST","source":{"kind":"trait","trait":"OrbLintIconExistsCli"}},{"event":"SCAN_ANSWERED","triggers":"LANG_SCAN_ANSWERED","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACK_VOCAB","triggers":"LANGUAGE_PACK_VOCAB_HEARD","source":{"kind":"trait","trait":"Packs"}},{"event":"LANGUAGE_PACKS_DONE","triggers":"LANGUAGE_PACKS_DONE_HEARD","source":{"kind":"trait","trait":"Packs"}}]}],"pages":[{"name":"OrbLintIconExistsOrbitalStart","id":"pag_7NFMGKVK2WSHEAHBNP8HNE5V28","path":"","protocol":"boot","traits":[{"ref":"OrbLintIconExists","refId":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},{"ref":"OrbLintIconExistsCli","refId":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},{"ref":"OrbLintInput","refId":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ"},{"ref":"Packs","refId":"trt_68NJ0VM449224NS5A0H5VW6Z1Y"},{"ref":"Versions","refId":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68"}]}],"types":{"IcCand":[{"nullable":false,"name":"p","type":"string"},{"nullable":true,"name":"v","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"projectedFrom":{"type":"IcVal"}}],"IcHitIE":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"IcMachine":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"IcOrbital":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"IcProgram":[{"nullable":false,"name":"orbitals","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"traits","type":"[object]","properties":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"items":{"nullable":false,"name":"","type":"IcTrait","projectedFrom":{"type":"IcTrait"}}}],"items":{"nullable":false,"name":"","type":"IcOrbital","projectedFrom":{"type":"IcOrbital"}}}],"IcResIE":[{"nullable":false,"name":"f","type":"[object]","required":true,"properties":[{"nullable":false,"name":"p","type":"string","required":true},{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"msg","type":"string","required":true},{"nullable":false,"name":"sug","type":"string","required":true}],"items":{"nullable":false,"name":"","type":"IcHitIE","projectedFrom":{"type":"IcHitIE"}}}],"IcTrait":[{"nullable":false,"name":"name","type":"string"},{"nullable":false,"name":"stateMachine","type":"object","properties":[{"nullable":false,"name":"transitions","type":"[object]","properties":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"items":{"nullable":false,"name":"","type":"IcTransition","projectedFrom":{"type":"IcTransition"}}}],"projectedFrom":{"type":"IcMachine"}}],"IcTransition":[{"nullable":false,"name":"effects","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}],"IcVal":[{"nullable":false,"name":"","type":"union","properties":[{"nullable":false,"name":"string","type":"string"},{"nullable":false,"name":"number","type":"number"},{"nullable":false,"name":"boolean","type":"boolean"},{"nullable":false,"name":"array","type":"[IcVal]","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}},{"nullable":false,"name":"object","type":"Map<string,IcVal>","items":{"nullable":true,"name":"","type":"IcVal","projectedFrom":{"type":"IcVal"}}}]}],"LintCodeDecl":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"LintIconExistsCodes":[{"nullable":false,"name":"lintIndexMissing","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"lintUiVocabUnread","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}},{"nullable":false,"name":"uiIconNotFound","type":"object","properties":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"category","type":"string","required":true},{"nullable":false,"name":"description","type":"string","required":true}],"projectedFrom":{"type":"LintCodeDecl"}}],"OrbCommandArgs":[{"nullable":false,"name":"argv","type":"[string]","required":true,"items":{"nullable":false,"name":"","type":"string"}},{"nullable":false,"name":"cwd","type":"string","required":true}],"OrbFinding":[{"nullable":false,"name":"code","type":"string","required":true},{"nullable":false,"name":"path","type":"string","required":true},{"nullable":false,"name":"message","type":"string","required":true},{"nullable":false,"name":"suggestion","type":"string","required":true},{"nullable":false,"name":"severity","type":"string","values":["warning","error"]}]}}],"inbound":["cli-lint-icon-exists"],"osGrants":{"fs":[{"glob":"/**","modes":["read"]},{"glob":"~/.orb/node_modules/**","modes":["read"]}],"exec":[],"net":[],"env":["PATH"],"stdio":[],"sys":[],"desktop":[],"anchored":{"fs":[{"anchor":"cwd","glob":"**","modes":["read"]}],"exec":[{"anchor":"exe"}]}},"schemaVersion":1,"ledger":{"schemaVersion":1,"entries":{"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA":{"id":"ent_6EDFTB23WB1Y5H1B2CKDEY5VEA","kind":"entity","bakedName":"OrbLintIconExistsRun","curName":"OrbLintIconExistsRun","renames":[],"owner":"workspace"},"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE":{"id":"evt_1QQ8AXJBDQ5PVVWTDFWTTPE8KE","kind":"event","bakedName":"LINT_FINISH","curName":"LINT_FINISH","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E":{"id":"evt_1Z6SZ8T8PC4B61NE4P0QPMBC0E","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_5PH53P67PM3VA37HSNKPNP6NCM":{"id":"evt_5PH53P67PM3VA37HSNKPNP6NCM","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_73WRTX5A73N3HYQXGT6GGC8GT3":{"id":"evt_73WRTX5A73N3HYQXGT6GGC8GT3","kind":"event","bakedName":"LINT_INPUT_UNREAD","curName":"LINT_INPUT_UNREAD","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_7FQ88NAEG7783YW985YPXAZMX5":{"id":"evt_7FQ88NAEG7783YW985YPXAZMX5","kind":"event","bakedName":"LINT_INPUT","curName":"LINT_INPUT","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_8G7N4PEDEG6Q86A90N86BM61HN":{"id":"evt_8G7N4PEDEG6Q86A90N86BM61HN","kind":"event","bakedName":"LINT_CALLED","curName":"LINT_CALLED","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_AZBS52H38HHM8MC36HRAHBWPW8":{"id":"evt_AZBS52H38HHM8MC36HRAHBWPW8","kind":"event","bakedName":"LINT_ANSWERED","curName":"LINT_ANSWERED","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49":{"id":"evt_BEFS4Y9QN9VTMY6BV1NC0GWF49","kind":"event","bakedName":"UNITS_HEARD","curName":"UNITS_HEARD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ":{"id":"evt_MGTCQRPTWNDEAYP06D5XHRXVAQ","kind":"event","bakedName":"LINT_FOUND","curName":"LINT_FOUND","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"evt_N0R7KN1MCDT66NRVRZDQ046JRK":{"id":"evt_N0R7KN1MCDT66NRVRZDQ046JRK","kind":"event","bakedName":"UI_VOCAB_HEARD","curName":"UI_VOCAB_HEARD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_Q5QM1SGEV67DKDYJ650QA9ESJA":{"id":"evt_Q5QM1SGEV67DKDYJ650QA9ESJA","kind":"event","bakedName":"INIT","curName":"INIT","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_WJPYYCTV63DK1TYKX77FSZWCZ4":{"id":"evt_WJPYYCTV63DK1TYKX77FSZWCZ4","kind":"event","bakedName":"UI_VOCAB_UNREAD","curName":"UI_VOCAB_UNREAD","renames":[],"owner":"workspace","parent":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM"},"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD":{"id":"evt_ZQACAF8P9HB4RZQHAFXZ89KTKD","kind":"event","bakedName":"LINT_REQUEST","curName":"LINT_REQUEST","renames":[],"owner":"workspace","parent":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN"},"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK":{"id":"orb_DQ4VKFWPQ5BBJRFE4FKCSV7ZNK","kind":"orbital","bakedName":"OrbLintIconExistsOrbital","curName":"OrbLintIconExistsOrbital","renames":[],"owner":"workspace"},"pag_7NFMGKVK2WSHEAHBNP8HNE5V28":{"id":"pag_7NFMGKVK2WSHEAHBNP8HNE5V28","kind":"page","bakedName":"OrbLintIconExistsOrbitalStart","curName":"OrbLintIconExistsOrbitalStart","renames":[],"owner":"workspace"},"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM":{"id":"trt_2Z5JTQSZ7PZKV41PS2GX0S54BM","kind":"trait","bakedName":"OrbLintIconExists","curName":"OrbLintIconExists","renames":[],"owner":"workspace"},"trt_68NJ0VM449224NS5A0H5VW6Z1Y":{"id":"trt_68NJ0VM449224NS5A0H5VW6Z1Y","kind":"trait","bakedName":"Packs","curName":"Packs","renames":[],"owner":"workspace"},"trt_DNW87P2KSG9WR6GWV6XGXG45ZN":{"id":"trt_DNW87P2KSG9WR6GWV6XGXG45ZN","kind":"trait","bakedName":"OrbLintIconExistsCli","curName":"OrbLintIconExistsCli","renames":[],"owner":"workspace"},"trt_HCCW0SZED4Q6JD4FN2SF6PQY68":{"id":"trt_HCCW0SZED4Q6JD4FN2SF6PQY68","kind":"trait","bakedName":"Versions","curName":"Versions","renames":[],"owner":"workspace"},"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ":{"id":"trt_MXK01SM5SK2WSXJBR3S9N3VHXZ","kind":"trait","bakedName":"OrbLintInput","curName":"OrbLintInput","renames":[],"owner":"workspace"}}}}