agents-relay 1.0.122 → 1.0.124
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.
package/dist/reconciler.js
CHANGED
|
@@ -56,7 +56,7 @@ For a direct non-sandbox local worker, use NEO_EVENTS_EMIT when the caller provi
|
|
|
56
56
|
As your FIRST execution action, before reading files, editing code, running commands, or doing other work,
|
|
57
57
|
you MUST publish exactly one canonical task.started event for this exact Job/Task.
|
|
58
58
|
|
|
59
|
-
You MAY publish progress events while working.
|
|
59
|
+
${task.adapter === 'chatgpt' ? `Because ChatGPT execution continues asynchronously after the submit process exits, you MUST keep reporting liveness while the task is active. Publish meaningful progress/milestone events when there is real progress to report. If no meaningful milestone has been published for 30 seconds during active work, publish a non-terminal task.heartbeat event with status running, visibility orchestrator, this exact source.id, and a concise description of the current operation. Continue heartbeats after each further 30 seconds of active silence until a terminal task event is published. Do not invent percentage progress.` : `You MAY publish progress events while working. For long silent active work, follow the events-bus heartbeat policy.`}
|
|
60
60
|
Before returning or allowing the worker process to exit, you MUST publish exactly one canonical terminal event:
|
|
61
61
|
- task.completed only after the declared output is durable;
|
|
62
62
|
- task.failed for implementation, tool, command, test, patch, commit, push, runtime, or other execution failure that prevents completion;
|
package/package.json
CHANGED
|
@@ -6,17 +6,6 @@ Before `job create`, the orchestrator converts the relevant discussion into a st
|
|
|
6
6
|
|
|
7
7
|
This contract defines orchestrator-owned exception workflows that sit above normal Agents Relay task/job execution.
|
|
8
8
|
|
|
9
|
-
## Hotfix workflow
|
|
10
|
-
|
|
11
|
-
A hotfix is a fast path for a live blocking problem:
|
|
12
|
-
|
|
13
|
-
1. The current active orchestrator thread patches the live/runtime target directly.
|
|
14
|
-
2. It immediately reproduces the failure and verifies the fix against the live runtime.
|
|
15
|
-
3. Once verified, the same logical fix is applied to canonical `main`, tested, committed, and pushed.
|
|
16
|
-
4. The orchestrator completes the normal post-merge/publish reconciliation and cleanup.
|
|
17
|
-
|
|
18
|
-
Do not create a blocking job/PR before fixing the live runtime. Keep the hotfix minimal and do not leave the live patch as the only durable implementation.
|
|
19
|
-
|
|
20
9
|
## P0 / self job workflow
|
|
21
10
|
|
|
22
11
|
A **P0 job** (alias: **self job**) is executed directly by the current active orchestrator thread:
|
|
@@ -73,7 +73,7 @@ Every worker task has one of three story sizes:
|
|
|
73
73
|
|
|
74
74
|
Relay derives the overall execution timeout from `storySize`. If `routing.reasoning` is `high`, Relay doubles the overall execution timeout. Other reasoning levels do not change it.
|
|
75
75
|
|
|
76
|
-
Raw `timeoutMs` is a compatibility/debug
|
|
76
|
+
Raw `timeoutMs` is a compatibility/debug override, not the normal task-production interface.
|
|
77
77
|
|
|
78
78
|
## Task readiness states
|
|
79
79
|
|
|
@@ -107,7 +107,7 @@ Blocker resolution is generation-safe and idempotent: Relay retries a dependent
|
|
|
107
107
|
|
|
108
108
|
## Worker lifecycle
|
|
109
109
|
|
|
110
|
-
Relay owns process lifecycle. Workers own semantic task lifecycle. A worker must publish canonical `task.started` as its first execution action, then exactly one of `task.completed`, `task.failed`, `task.blocked`, or `task.cancelled`. Process launch/exit events do not substitute for worker semantic events.
|
|
110
|
+
Relay owns process lifecycle. Workers own semantic task lifecycle. A worker must publish canonical `task.started` as its first execution action, then exactly one of `task.completed`, `task.failed`, `task.blocked`, or `task.cancelled`. Process launch/exit events do not substitute for worker semantic events. Because the ChatGPT worker continues asynchronously after its submit process exits, its managed execution prompt must also require the shared events-bus liveness rule: publish meaningful progress when available, and publish non-terminal `task.heartbeat` after each 30 seconds of otherwise silent active work until a terminal task event is emitted.
|
|
111
111
|
|
|
112
112
|
Relay allocates the durable `executionId` before launching model-backed work and gives that worker one exact event source identity: `job/<job-id>/task/<task-id>/execution/<execution-id>`. Every semantic lifecycle event from that execution must copy the identity verbatim in `source.id`. Relay correlates model-worker lifecycle only by this execution identity; `source.agent`, `source.component`, provider/adapter names, and `data.worker_owned` are diagnostic/legacy metadata and MUST NOT authorize or correlate lifecycle state. A retry receives a new execution identity, so events from an older execution are ignored.
|
|
113
113
|
|