.NET API
SkillScriptExecutionRequest
Tracon.Abstractions.dllOne skill script that passed every execution gate, as handed to an ISkillScriptExecutor.
public sealed record SkillScriptExecutionRequest : IEquatable<SkillScriptExecutionRequest>- Inheritance
- object ← SkillScriptExecutionRequest
- Implements
- IEquatable<SkillScriptExecutionRequest>
- Inherited Members
- object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Remarks
Section titled “Remarks”The request carries everything a remote runner needs: the content, its hash, the arguments, and the limits. It carries no environment value: which host variables a local process inherits is a setting of the built-in executor, and no secret travels in the request.
The script sees its arguments as JSON on standard input, and two environment
variables: TRACON_SKILL_NAME (the skill name) and TRACON_SKILL_TEMP
(a writable directory that belongs to this one call). An executor provides the
same to keep scripts portable between executors.
ToString leaves out SkillScriptExecutionRequest.Content and SkillScriptExecutionRequest.ArgumentsJson, so logging a request does not write the script or what the model passed to it.
Constructors
Section titled “Constructors”SkillScriptExecutionRequest()
Section titled “ SkillScriptExecutionRequest()”public SkillScriptExecutionRequest()Properties
Section titled “Properties”ArgumentsJson
Section titled “ ArgumentsJson”The arguments the model passed, as JSON, written to the script’s standard input. null when the model passed none; the script then reads an empty, closed standard input.
public string? ArgumentsJson { get; init; }Property Value
Section titled “Property Value”Content
Section titled “ Content”The script’s source text.
public required string Content { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”For a SkillScriptOrigin.Stored script, the exact content the grant pins. For a SkillScriptOrigin.File script, the file’s text as Tracon read it, decoded as UTF-8, after the quota was taken. A file script is a regular, non-empty file within the same content size limit as a stored script. Other files next to it are not carried.
ContentSha256
Section titled “ ContentSha256”The SHA-256 of the UTF-8 bytes of SkillScriptExecutionRequest.Content, as 64 upper-case hexadecimal characters.
public required string ContentSha256 { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”A remote runner can recompute it to confirm that the content arrived unchanged. It is not the grant’s pin value: the pin also covers the extension and the argument schema.
Extension
Section titled “ Extension”The file extension, without the dot (for example py).
public required string Extension { get; init; }Property Value
Section titled “Property Value”Interpreter
Section titled “ Interpreter”The interpreter-allow-list value for SkillScriptExecutionRequest.Extension.
public required string Interpreter { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The built-in executor starts this value as the interpreter’s path. A remote
executor can read it as a runtime name instead (for example python-3.12).
Only values from the host’s own allow-list reach an executor.
MaxOutputBytes
Section titled “ MaxOutputBytes”The largest number of UTF-8 bytes kept from each output stream.
public required int MaxOutputBytes { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Standard output and standard error are capped separately. Tracon applies the cap again to the result and adds the truncation notice itself.
Origin
Section titled “ Origin”Where the content came from.
public required SkillScriptOrigin Origin { get; init; }Property Value
Section titled “Property Value”The run that called the script, or null outside a run.
public Guid? RunId { get; init; }Property Value
Section titled “Property Value”Guid?
ScriptName
Section titled “ ScriptName”The script name within the skill.
public required string ScriptName { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”For a SkillScriptOrigin.Stored script, the name the skill
stores; Tracon checks that it is a plain file name (no directory separator,
path root, or ..) before the call. For a
SkillScriptOrigin.File script, the file’s path relative to the
skill directory, with its extension (for example scripts/fetch.py).
Do not use it as a file name without checking it.
SkillName
Section titled “ SkillName”The name of the skill that carries the script.
public required string SkillName { get; init; }Property Value
Section titled “Property Value”SourcePath
Section titled “ SourcePath”The full path of the script file on the host, for a SkillScriptOrigin.File script; null otherwise.
public string? SourcePath { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”The built-in executor runs the file in place, so the script can use files next to it. A remote executor cannot read this path; it runs SkillScriptExecutionRequest.Content.
TenantId
Section titled “ TenantId”The tenant whose grant opened the gates.
public required string TenantId { get; init; }Property Value
Section titled “Property Value”Timeout
Section titled “ Timeout”The longest time the script may run.
public required TimeSpan Timeout { get; init; }Property Value
Section titled “Property Value”Remarks
Section titled “Remarks”Stop the script when it passes this time and report SkillScriptExecutionResult.TimedOut. Tracon waits this long plus a fixed grace period, then cancels the token, stops waiting, and records a timeout itself.
Methods
Section titled “Methods”Equals(object?)
Section titled “ Equals(object?)”public override bool Equals(object? obj)Parameters
Section titled “Parameters”obj object?
Returns
Section titled “Returns”Equals(SkillScriptExecutionRequest?)
Section titled “ Equals(SkillScriptExecutionRequest?)”public bool Equals(SkillScriptExecutionRequest? other)Parameters
Section titled “Parameters”other SkillScriptExecutionRequest?
Returns
Section titled “Returns”GetHashCode()
Section titled “ GetHashCode()”public override int GetHashCode()Returns
Section titled “Returns”ToString()
Section titled “ ToString()”public override string ToString()Returns
Section titled “Returns”Operators
Section titled “Operators”operator ==(SkillScriptExecutionRequest?, SkillScriptExecutionRequest?)
Section titled “ operator ==(SkillScriptExecutionRequest?, SkillScriptExecutionRequest?)”public static bool operator ==(SkillScriptExecutionRequest? left, SkillScriptExecutionRequest? right)Parameters
Section titled “Parameters”left SkillScriptExecutionRequest?
right SkillScriptExecutionRequest?
Returns
Section titled “Returns”operator !=(SkillScriptExecutionRequest?, SkillScriptExecutionRequest?)
Section titled “ operator !=(SkillScriptExecutionRequest?, SkillScriptExecutionRequest?)”public static bool operator !=(SkillScriptExecutionRequest? left, SkillScriptExecutionRequest? right)Parameters
Section titled “Parameters”left SkillScriptExecutionRequest?
right SkillScriptExecutionRequest?