# TranspileOptions (/docs/api/interfaces/TranspileOptions)



Defined in: [packages/core/src/transpile.ts:30](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L30)

## Properties [#properties]

### actionlintRunner? [#actionlintrunner]

```ts
optional actionlintRunner?: ActionlintRunner;
```

Defined in: [packages/core/src/transpile.ts:46](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L46)

Injectable actionlint runner (tests provide this to avoid the real binary).

***

### annotate? [#annotate]

```ts
optional annotate?: boolean;
```

Defined in: [packages/core/src/transpile.ts:55](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L55)

Append the `actio-annotate` job that maps runtime failures back to source.
Requires `sourceMap`; ignored (with a warning) without it. Default false.

***

### artifacts? [#artifacts]

```ts
optional artifacts?: object;
```

Defined in: [packages/core/src/transpile.ts:103](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L103)

Inline step-level `artifacts:` macro config. `uploader` is the action ref
emitted for the trailing upload step (pinned downstream like any other ref).
Default "actions/upload-artifact\@v4".

#### uploader? [#uploader]

```ts
optional uploader?: string;
```

***

### coercion? [#coercion]

```ts
optional coercion?: CoercionMode;
```

Defined in: [packages/core/src/transpile.ts:90](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L90)

YAML type-coercion guard mode. `fix` force-quotes emitted string scalars
that a YAML-1.1 consumer (per-action `action.yml` parsing, the `on:` key,
downstream tooling) would coerce (e.g. `no`→false, `1:30`→90,
`2024-01-01`→Date, `1_000`→1000); `warn` leaves them unquoted and emits a
`yaml-coercion-trap` warning; `off` disables the guard. An in-source root
`coercion:` key overrides this. Default "fix".

***

### fileName? [#filename]

```ts
optional fileName?: string;
```

Defined in: [packages/core/src/transpile.ts:32](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L32)

File name used in diagnostics and the generated banner. Default "\<input>".

***

### header? [#header]

```ts
optional header?: boolean;
```

Defined in: [packages/core/src/transpile.ts:34](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L34)

Prepend the "generated by Actio" banner. Default true.

***

### injectionHoist? [#injectionhoist]

```ts
optional injectionHoist?: "off" | "warn" | "error" | "fix";
```

Defined in: [packages/core/src/transpile.ts:67](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L67)

Global default mode for the injection-hoist security pass. Per-block
`injection-hoist:` knobs (root/job/step) override this. Default "fix".

***

### lint? [#lint]

```ts
optional lint?: LintMode;
```

Defined in: [packages/core/src/transpile.ts:44](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L44)

Lint the generated workflow with `actionlint` and surface findings on the
`.actio.yml` source. `off` skips it (default); `warn` reports warnings;
`error` escalates findings to build failures. Distinct from `validate`,
which gates the schema check. A missing `actionlint` binary is skipped
gracefully with an informational note.

***

### modules? [#modules]

```ts
optional modules?: ModuleResolver;
```

Defined in: [packages/core/src/transpile.ts:120](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L120)

Cross-file import seam (#161). Resolves `inject: ./lib#name` selectors to
module sources. Keeps `transpile()` pure string->string: when omitted, local
cross-file injects error with `import-module-not-found`. The CLI/build layer
supplies a filesystem resolver; tests inject an in-memory one.

***

### nativeDependencies? [#nativedependencies]

```ts
optional nativeDependencies?: NativeDependencies;
```

Defined in: [packages/core/src/transpile.ts:62](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L62)

Native workflow lock data emitted as top-level `dependencies:` for preview
targets. The resolver that computes this data lives in the CLI/build layer.

***

### passes? [#passes]

```ts
optional passes?: Pass[];
```

Defined in: [packages/core/src/transpile.ts:48](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L48)

Extra transform passes merged into the built-in pipeline (ordered by `runsAfter`).

***

### permissions? [#permissions]

```ts
optional permissions?: 
  | PermissionsMode
  | PermissionsConfig;
```

Defined in: [packages/core/src/transpile.ts:108](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L108)

Least-privilege permissions policy (string sugar or granular config). Default
`off`. Resolved into `ctx.internal.permissions` for the late `permissions` pass.

***

### permissionsStrict? [#permissionsstrict]

```ts
optional permissionsStrict?: boolean;
```

Defined in: [packages/core/src/transpile.ts:113](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L113)

Escalate `check`-mode over-grant diagnostics from warning to error. Set by the
CLI under `actio check` so a too-broad declared block fails CI.

***

### pin? [#pin]

```ts
optional pin?: PinOptions;
```

Defined in: [packages/core/src/transpile.ts:97](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L97)

Pin-on-compile request. When set, pinnable `uses:` literals are rewritten to
their resolved digest after all passes run (so inline `{{ }}` refs are final);
`resolutions` seeds known digests and discovered targets surface in the result.
Network resolution lives in the CLI/build layer.

***

### sourceMap? [#sourcemap]

```ts
optional sourceMap?: boolean;
```

Defined in: [packages/core/src/transpile.ts:50](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L50)

Produce a source map and remap schema diagnostics back to source. Default false.

***

### strict? [#strict]

```ts
optional strict?: boolean;
```

Defined in: [packages/core/src/transpile.ts:81](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L81)

Opt-in strict YAML 1.2.2 source lint. When true, every YAML 1.1 merge key
(`<<`) in source is reported as a `yaml-merge-key` warning so repos can keep
`.actio.yml` to a pure 1.2.2 style. Default false (permissive). Lint-only:
`<<` is still resolved and erased at parse, so emitted YAML is unchanged.

***

### target? [#target]

```ts
optional target?: ActioTarget;
```

Defined in: [packages/core/src/transpile.ts:57](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L57)

Output target capability profile. Defaults to `legacy` behavior.

***

### unusedSymbols? [#unusedsymbols]

```ts
optional unusedSymbols?: UnusedSymbolsMode;
```

Defined in: [packages/core/src/transpile.ts:74](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L74)

Severity for dead-code diagnostics on declared-but-unreferenced `params`,
`fragments`, and `executors`. `off` disables the check; `warn` reports
warnings (default); `error` escalates them to build failures. Suppress a
single symbol with a `# actio-keep` comment on its declaration.

***

### validate? [#validate]

```ts
optional validate?: boolean;
```

Defined in: [packages/core/src/transpile.ts:36](https://github.com/austenstone/actio/blob/2b01e694a0f76521d8c073f3c6a2e48917d2c9d9/packages/core/src/transpile.ts#L36)

Validate generated YAML against GitHub's workflow schema. Default true.


## Sitemap

Browse the full documentation: [Markdown sitemap](https://austenstone.github.io/actio/sitemap.md) · [XML sitemap](https://austenstone.github.io/actio/sitemap.xml)