/** * @module @nhtio/adk/eslint/rules/artifact_tool_forbids_artifact_constructor * * Flags `new ArtifactTool({ … })` whose options literal sets an `artifactConstructor`. * * Why: an `ArtifactTool` is the tool that answers queries AGAINST a spooled artifact — it must not * itself return a `SpooledArtifact`, or the result would be re-wrapped into another artifact whose * query tools are themselves `ArtifactTool`s, and so on without end. The base `RawTool` accepts an * `artifactConstructor` (the subclass used to wrap a tool's bytes), but `ArtifactTool` explicitly * FORBIDS it (`artifactConstructor: validator.any().forbidden()` in its schema). Supplying one is a * recursion footgun the constructor rejects at runtime; this rule surfaces it at the construction * site so it fails lint. * * Opt-out: * // eslint-disable-next-line adk/artifact-tool-forbids-artifact-constructor -- */ /** ESLint rule: flags `new ArtifactTool({ … })` that sets the forbidden `artifactConstructor` option. */ declare const artifactToolForbidsArtifactConstructorRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbidArtifactConstructor", [ ], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & { name: string; }; export default artifactToolForbidsArtifactConstructorRule;