CodingStartIn class

Constructors

CodingStartIn({String? after, String? agentRef, String? base_, bool? desktop, String? project, String? prompt, String? replyChannel, String? replyThread, String? repo, String? targetId, int? timeoutSeconds, String? tool})
Returns a new CodingStartIn instance.

Properties

after ↔ String?
After names a previous run's session, and starts this one from where that one stopped instead of from the repository's default. It is how a follow-up instruction — "now add tests for it" — builds on work already done rather than beginning again on a fresh clone. It sets the base and nothing else, so this run still writes its OWN branch. One run, one branch: a run that wrote back onto an earlier run's branch would break the rule the forge's ref policy is built on, and would leave two turns of work with one name to review. A caller who already knows the branch may pass Base directly; this exists because the branch is derived from a session id and nobody should have to know how. Base wins if both are given.
getter/setter pair
agentRef ↔ String?
AgentRef names a configured agent to run as, which is how an org pins a harness, a model and a prompt to a name. Empty runs the default agent.
getter/setter pair
base_ ↔ String?
Base is the branch to start from. Empty takes the repository's default. The run never writes here — it writes the agent branch it answers with.
getter/setter pair
desktop ↔ bool?
Desktop asks for a run with a SCREEN — an image carrying an X server — for a task that has to drive a browser or another windowed program. False, the default, is a headless checkout, which is what writing code needs.
getter/setter pair
hashCode → int
The hash code for this object.
no setteroverride
project ↔ String?
Project scopes the run to one board's work when the org keeps more than one. Empty is the org's default.
getter/setter pair
prompt ↔ String?
Prompt is the task, in the words you would use with a colleague who has the checkout open. It is the whole instruction: there is no second field for context, and a prompt that names files and the outcome it wants gets a run that does not have to guess either.
getter/setter pair
replyChannel ↔ String?
ReplyChannel / ReplyThread are WHERE THE RUN NARRATES ITSELF, when the surface that started it has somewhere for it to talk. Empty means nobody is listening and the run simply does not narrate — which is the app surface's case, because /v1/agents/coding hands back a session id and the session stream is a better progress feed than any message could be. It is an ADDRESS and not a token: the engine says "put this text there", and the process that owns the workspace's bot credential is the one that actually posts. So a run reports into a Slack thread without the engine ever holding the token that could post anywhere else in that workspace.
getter/setter pair
replyThread ↔ String?
ReplyThread narrows that address to one THREAD inside the channel: on Slack it is the parent message's ts, the same value a reply carries as thread_ts. Empty puts the run's status line at the top level of the channel instead. The channel is what decides whether a run narrates at all, so this on its own addresses nothing — a thread with no ReplyChannel is a run nobody hears.
getter/setter pair
repo ↔ String?
Repo is what to work on, as owner/name in the caller's own org. The engine resolves the clone URL and the push credential from the org itself, so this says WHICH repository and never how to reach it.
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
targetId ↔ String?
TargetID routes the run to a registered machine the org has claimed instead of to a sandbox in our cluster. Empty runs it here, which is the usual case.
getter/setter pair
timeoutSeconds ↔ int?
TimeoutSeconds bounds the whole run. Unset takes the default budget; a run that hits the bound is stopped and reports what it had done by then.
getter/setter pair
tool ↔ String?
Tool is which harness runs the prompt — dev | claude | codex | python | node — and Desktop is whether the run needs a screen. Both are empty by default, which is dev with no screen, and that default is what every caller gets until it says otherwise. They are two fields because they are two questions. The harness decides what argv starts; the screen decides which image carries an X server. A caller may want claude WITH a browser it can see, and a single enum would have made that combination unsayable.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, dynamic>
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
override

Static Methods

fromJson(dynamic value) → CodingStartIn?
Returns a new CodingStartIn instance and imports its values from value if it's a Map, null otherwise.
listFromJson(dynamic json, {bool growable = false}) → List<CodingStartIn>
mapFromJson(dynamic json) → Map<String, CodingStartIn>
mapListFromJson(dynamic json, {bool growable = false}) → Map<String, List<CodingStartIn>>

Constants

requiredKeys → const Set<String>
The list of required keys that must be present in a JSON.