crewly 1.20.134 → 1.20.136
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/config/skills/agent/core/block-task/SKILL.md +16 -3
- package/dist/backend/backend/src/constants.d.ts +4 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +4 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +6 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +9 -2
- package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +21 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +43 -7
- package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/agent/agent-registration.service.js +158 -51
- package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/backend/backend/src/services/agent/registration-flow-registry.d.ts +92 -0
- package/dist/backend/backend/src/services/agent/registration-flow-registry.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/registration-flow-registry.js +121 -0
- package/dist/backend/backend/src/services/agent/registration-flow-registry.js.map +1 -0
- package/dist/backend/backend/src/services/agent/resumed-kickoff.d.ts +66 -0
- package/dist/backend/backend/src/services/agent/resumed-kickoff.d.ts.map +1 -0
- package/dist/backend/backend/src/services/agent/resumed-kickoff.js +72 -0
- package/dist/backend/backend/src/services/agent/resumed-kickoff.js.map +1 -0
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +9 -1
- package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +8 -0
- package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts +14 -0
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js +53 -1
- package/dist/backend/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +32 -0
- package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js +60 -1
- package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts +37 -0
- package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/v2/work-item.types.js +33 -0
- package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +4 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +4 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts +43 -7
- package/dist/cli/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/agent/agent-registration.service.js +158 -51
- package/dist/cli/backend/src/services/agent/agent-registration.service.js.map +1 -1
- package/dist/cli/backend/src/services/agent/registration-flow-registry.d.ts +92 -0
- package/dist/cli/backend/src/services/agent/registration-flow-registry.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/registration-flow-registry.js +121 -0
- package/dist/cli/backend/src/services/agent/registration-flow-registry.js.map +1 -0
- package/dist/cli/backend/src/services/agent/resumed-kickoff.d.ts +66 -0
- package/dist/cli/backend/src/services/agent/resumed-kickoff.d.ts.map +1 -0
- package/dist/cli/backend/src/services/agent/resumed-kickoff.js +72 -0
- package/dist/cli/backend/src/services/agent/resumed-kickoff.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts +14 -0
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js +53 -1
- package/dist/cli/backend/src/services/slack/slack-typing-placeholder.service.js.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +32 -0
- package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js +60 -1
- package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts +37 -0
- package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/v2/work-item.types.js +33 -0
- package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
- package/frontend/dist/assets/{index-97bb17d4.js → index-2c7ee4a6.js} +30 -30
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration flow registry: at most one live registration/kickoff flow per
|
|
3
|
+
* agent session, bound to the PTY it was started for.
|
|
4
|
+
*
|
|
5
|
+
* Background (2026-09-25 startup-prompt loop): two launchers brought the same
|
|
6
|
+
* agent up at boot. The second one killed the first one's PTY and built a new
|
|
7
|
+
* one under the same session name, but the first one's background
|
|
8
|
+
* registration flow was never cancelled. It kept polling the session by name,
|
|
9
|
+
* found the replacement PTY, and typed its own kickoff into it, so the agent
|
|
10
|
+
* saw two kickoffs in one resumed conversation.
|
|
11
|
+
*
|
|
12
|
+
* A flow is therefore cancelled when:
|
|
13
|
+
* - a newer flow starts for the same session (it supersedes the old one),
|
|
14
|
+
* - the session is killed or recreated ({@link RegistrationFlowRegistry.cancel}), or
|
|
15
|
+
* - the PTY now registered under the session name is not the one the flow was
|
|
16
|
+
* started for. This catches kills from any code path, including ones that
|
|
17
|
+
* never call `cancel`.
|
|
18
|
+
*
|
|
19
|
+
* Senders must check {@link RegistrationFlowRegistry.isCancelled} right before
|
|
20
|
+
* every write to the terminal.
|
|
21
|
+
*
|
|
22
|
+
* @module services/agent/registration-flow-registry
|
|
23
|
+
*/
|
|
24
|
+
/** A live registration flow for one session incarnation. */
|
|
25
|
+
export interface RegistrationFlow {
|
|
26
|
+
/** Session name the flow delivers into. */
|
|
27
|
+
readonly sessionName: string;
|
|
28
|
+
/** Monotonic per-session generation; a newer flow has a higher number. */
|
|
29
|
+
readonly generation: number;
|
|
30
|
+
/** Aborted when the flow is superseded, cancelled or its PTY is replaced. */
|
|
31
|
+
readonly signal: AbortSignal;
|
|
32
|
+
}
|
|
33
|
+
/** Why a flow was cancelled (logged by the caller). */
|
|
34
|
+
export type RegistrationFlowCancelReason = 'superseded' | 'session-killed' | 'session-replaced' | 'runtime-exited';
|
|
35
|
+
/**
|
|
36
|
+
* Tracks the single live registration flow per session.
|
|
37
|
+
*
|
|
38
|
+
* @typeParam TSession - Identity object of a live PTY (compared by reference)
|
|
39
|
+
*/
|
|
40
|
+
export declare class RegistrationFlowRegistry<TSession extends object = object> {
|
|
41
|
+
private readonly current;
|
|
42
|
+
private readonly bySignal;
|
|
43
|
+
private readonly generations;
|
|
44
|
+
/**
|
|
45
|
+
* Start a flow for a session. Any earlier flow for the same session is
|
|
46
|
+
* aborted first: only the newest incarnation may deliver a kickoff.
|
|
47
|
+
*
|
|
48
|
+
* @param sessionName - Session the flow delivers into
|
|
49
|
+
* @param boundSession - The PTY currently registered under that name (undefined for in-process runtimes)
|
|
50
|
+
* @returns The new flow and whether an older one was superseded
|
|
51
|
+
*/
|
|
52
|
+
begin(sessionName: string, boundSession: TSession | undefined): {
|
|
53
|
+
flow: RegistrationFlow;
|
|
54
|
+
superseded: boolean;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Abort the live flow for a session, if any.
|
|
58
|
+
*
|
|
59
|
+
* @param sessionName - Session whose flow to abort
|
|
60
|
+
* @param reason - Why (recorded on the abort signal)
|
|
61
|
+
* @returns True when a live flow was aborted
|
|
62
|
+
*/
|
|
63
|
+
cancel(sessionName: string, reason: RegistrationFlowCancelReason): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Decide whether a flow may still write to its session. Aborts the flow
|
|
66
|
+
* (and says so) when the session's PTY has been replaced or removed since
|
|
67
|
+
* the flow started, or a newer flow took over.
|
|
68
|
+
*
|
|
69
|
+
* Signals the registry does not know are judged by `aborted` alone, so
|
|
70
|
+
* callers can pass any AbortSignal.
|
|
71
|
+
*
|
|
72
|
+
* @param signal - The flow's abort signal (undefined = not a guarded flow)
|
|
73
|
+
* @param currentSession - The PTY registered under the session name right now
|
|
74
|
+
* @returns True when the flow must not write anything further
|
|
75
|
+
*/
|
|
76
|
+
isCancelled(signal: AbortSignal | undefined, currentSession: TSession | undefined): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Mark a flow finished. Only removes it while it is still the live flow,
|
|
79
|
+
* so a finishing old flow can never drop its successor's entry.
|
|
80
|
+
*
|
|
81
|
+
* @param flow - The finished flow
|
|
82
|
+
*/
|
|
83
|
+
end(flow: RegistrationFlow): void;
|
|
84
|
+
/**
|
|
85
|
+
* Whether a session has a live (not yet finished or aborted) flow.
|
|
86
|
+
*
|
|
87
|
+
* @param sessionName - Session to check
|
|
88
|
+
* @returns True when a flow is in progress
|
|
89
|
+
*/
|
|
90
|
+
has(sessionName: string): boolean;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=registration-flow-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-flow-registry.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/registration-flow-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAChC,2CAA2C;IAC3C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC7B;AAUD,uDAAuD;AACvD,MAAM,MAAM,4BAA4B,GACrC,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,CAAC;AAEpB;;;;GAIG;AACH,qBAAa,wBAAwB,CAAC,QAAQ,SAAS,MAAM,GAAG,MAAM;IACrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;IACnE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAC7E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE;IAY/G;;;;;;OAMG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,4BAA4B,GAAG,OAAO;IAQ1E;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,cAAc,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO;IAkB3F;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAKjC;;;;;OAKG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAGjC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Registration flow registry: at most one live registration/kickoff flow per
|
|
3
|
+
* agent session, bound to the PTY it was started for.
|
|
4
|
+
*
|
|
5
|
+
* Background (2026-09-25 startup-prompt loop): two launchers brought the same
|
|
6
|
+
* agent up at boot. The second one killed the first one's PTY and built a new
|
|
7
|
+
* one under the same session name, but the first one's background
|
|
8
|
+
* registration flow was never cancelled. It kept polling the session by name,
|
|
9
|
+
* found the replacement PTY, and typed its own kickoff into it, so the agent
|
|
10
|
+
* saw two kickoffs in one resumed conversation.
|
|
11
|
+
*
|
|
12
|
+
* A flow is therefore cancelled when:
|
|
13
|
+
* - a newer flow starts for the same session (it supersedes the old one),
|
|
14
|
+
* - the session is killed or recreated ({@link RegistrationFlowRegistry.cancel}), or
|
|
15
|
+
* - the PTY now registered under the session name is not the one the flow was
|
|
16
|
+
* started for. This catches kills from any code path, including ones that
|
|
17
|
+
* never call `cancel`.
|
|
18
|
+
*
|
|
19
|
+
* Senders must check {@link RegistrationFlowRegistry.isCancelled} right before
|
|
20
|
+
* every write to the terminal.
|
|
21
|
+
*
|
|
22
|
+
* @module services/agent/registration-flow-registry
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* Tracks the single live registration flow per session.
|
|
26
|
+
*
|
|
27
|
+
* @typeParam TSession - Identity object of a live PTY (compared by reference)
|
|
28
|
+
*/
|
|
29
|
+
export class RegistrationFlowRegistry {
|
|
30
|
+
current = new Map();
|
|
31
|
+
bySignal = new WeakMap();
|
|
32
|
+
generations = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* Start a flow for a session. Any earlier flow for the same session is
|
|
35
|
+
* aborted first: only the newest incarnation may deliver a kickoff.
|
|
36
|
+
*
|
|
37
|
+
* @param sessionName - Session the flow delivers into
|
|
38
|
+
* @param boundSession - The PTY currently registered under that name (undefined for in-process runtimes)
|
|
39
|
+
* @returns The new flow and whether an older one was superseded
|
|
40
|
+
*/
|
|
41
|
+
begin(sessionName, boundSession) {
|
|
42
|
+
const superseded = this.cancel(sessionName, 'superseded');
|
|
43
|
+
const generation = (this.generations.get(sessionName) ?? 0) + 1;
|
|
44
|
+
this.generations.set(sessionName, generation);
|
|
45
|
+
const controller = new AbortController();
|
|
46
|
+
const flow = { sessionName, generation, signal: controller.signal };
|
|
47
|
+
const record = { flow, controller, boundSession };
|
|
48
|
+
this.current.set(sessionName, record);
|
|
49
|
+
this.bySignal.set(controller.signal, record);
|
|
50
|
+
return { flow, superseded };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Abort the live flow for a session, if any.
|
|
54
|
+
*
|
|
55
|
+
* @param sessionName - Session whose flow to abort
|
|
56
|
+
* @param reason - Why (recorded on the abort signal)
|
|
57
|
+
* @returns True when a live flow was aborted
|
|
58
|
+
*/
|
|
59
|
+
cancel(sessionName, reason) {
|
|
60
|
+
const record = this.current.get(sessionName);
|
|
61
|
+
if (!record)
|
|
62
|
+
return false;
|
|
63
|
+
this.current.delete(sessionName);
|
|
64
|
+
if (!record.controller.signal.aborted)
|
|
65
|
+
record.controller.abort(reason);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Decide whether a flow may still write to its session. Aborts the flow
|
|
70
|
+
* (and says so) when the session's PTY has been replaced or removed since
|
|
71
|
+
* the flow started, or a newer flow took over.
|
|
72
|
+
*
|
|
73
|
+
* Signals the registry does not know are judged by `aborted` alone, so
|
|
74
|
+
* callers can pass any AbortSignal.
|
|
75
|
+
*
|
|
76
|
+
* @param signal - The flow's abort signal (undefined = not a guarded flow)
|
|
77
|
+
* @param currentSession - The PTY registered under the session name right now
|
|
78
|
+
* @returns True when the flow must not write anything further
|
|
79
|
+
*/
|
|
80
|
+
isCancelled(signal, currentSession) {
|
|
81
|
+
if (!signal)
|
|
82
|
+
return false;
|
|
83
|
+
if (signal.aborted)
|
|
84
|
+
return true;
|
|
85
|
+
const record = this.bySignal.get(signal);
|
|
86
|
+
if (!record)
|
|
87
|
+
return false;
|
|
88
|
+
const { sessionName } = record.flow;
|
|
89
|
+
if (this.current.get(sessionName) !== record) {
|
|
90
|
+
record.controller.abort('superseded');
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
if (record.boundSession !== undefined && currentSession !== record.boundSession) {
|
|
94
|
+
this.current.delete(sessionName);
|
|
95
|
+
record.controller.abort('session-replaced');
|
|
96
|
+
return true;
|
|
97
|
+
}
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Mark a flow finished. Only removes it while it is still the live flow,
|
|
102
|
+
* so a finishing old flow can never drop its successor's entry.
|
|
103
|
+
*
|
|
104
|
+
* @param flow - The finished flow
|
|
105
|
+
*/
|
|
106
|
+
end(flow) {
|
|
107
|
+
const record = this.current.get(flow.sessionName);
|
|
108
|
+
if (record && record.flow === flow)
|
|
109
|
+
this.current.delete(flow.sessionName);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Whether a session has a live (not yet finished or aborted) flow.
|
|
113
|
+
*
|
|
114
|
+
* @param sessionName - Session to check
|
|
115
|
+
* @returns True when a flow is in progress
|
|
116
|
+
*/
|
|
117
|
+
has(sessionName) {
|
|
118
|
+
return this.current.has(sessionName);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=registration-flow-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registration-flow-registry.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/registration-flow-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kickoff text for an agent whose runtime conversation was resumed
|
|
3
|
+
* (Claude Code `--resume`, Codex `resume`) at a Crewly restart.
|
|
4
|
+
*
|
|
5
|
+
* The full kickoff ("Begin your work now… Step 1, Step 2, Step 3
|
|
6
|
+
* (register-self)") typed into a resumed conversation reads, to the agent, as
|
|
7
|
+
* being started over from scratch. Every release restart used to do that, and
|
|
8
|
+
* agents re-announced themselves and redid their startup steps (2026-09-25
|
|
9
|
+
* startup-prompt loop). A resumed agent only needs to register again, since
|
|
10
|
+
* the backend's registration state did not survive the restart, and then carry on.
|
|
11
|
+
*
|
|
12
|
+
* @module services/agent/resumed-kickoff
|
|
13
|
+
*/
|
|
14
|
+
/** Where the register-self skill lives, relative to the Crewly project root. */
|
|
15
|
+
export declare const REGISTER_SELF_SKILL_PATHS: {
|
|
16
|
+
/** Team members: config/skills/agent/core/register-self */
|
|
17
|
+
readonly AGENT: readonly ["config", "skills", "agent", "core", "register-self", "execute.sh"];
|
|
18
|
+
/** Orchestrator: config/skills/orchestrator/register-self */
|
|
19
|
+
readonly ORCHESTRATOR: readonly ["config", "skills", "orchestrator", "register-self", "execute.sh"];
|
|
20
|
+
};
|
|
21
|
+
/** Fixed wording of the resumed kickoff. */
|
|
22
|
+
export declare const RESUMED_KICKOFF_TEXT: {
|
|
23
|
+
readonly OPENING: "[Crewly restarted — this is your same conversation, resumed.";
|
|
24
|
+
readonly REGISTER: "Run register-self now (only that step):";
|
|
25
|
+
readonly CONTINUE: "— then continue exactly where you left off. Do not redo your startup steps or re-announce yourself.";
|
|
26
|
+
/** Only for runtimes whose instructions are not loaded as a system prompt. */
|
|
27
|
+
readonly CONTEXT_REFRESH: "If your instructions are no longer in your context, re-read";
|
|
28
|
+
readonly CLOSING: "]";
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Marker that identifies a resumed kickoff, for tests and log checks.
|
|
32
|
+
*/
|
|
33
|
+
export declare const RESUMED_KICKOFF_MARKER: "[Crewly restarted — this is your same conversation, resumed.";
|
|
34
|
+
/**
|
|
35
|
+
* Build the exact register-self command the agent's full prompt tells it to
|
|
36
|
+
* run, so a resumed agent registers the same way a fresh one does.
|
|
37
|
+
*
|
|
38
|
+
* @param projectRoot - Crewly project root (where `config/skills` lives)
|
|
39
|
+
* @param sessionName - The agent's session name
|
|
40
|
+
* @param role - The agent's role
|
|
41
|
+
* @returns A shell command line
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```typescript
|
|
45
|
+
* buildRegisterSelfCommand('/opt/crewly', 'team-sam-1', 'developer');
|
|
46
|
+
* // bash /opt/crewly/config/skills/agent/core/register-self/execute.sh '{"role":"developer","sessionName":"team-sam-1"}'
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildRegisterSelfCommand(projectRoot: string, sessionName: string, role: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Build the short kickoff for a resumed conversation.
|
|
52
|
+
*
|
|
53
|
+
* @param args.projectRoot - Crewly project root
|
|
54
|
+
* @param args.sessionName - The agent's session name
|
|
55
|
+
* @param args.role - The agent's role
|
|
56
|
+
* @param args.promptFilePath - Init prompt file to point at for a context refresh.
|
|
57
|
+
* Omit for Claude Code, whose prompt is loaded as its agent definition.
|
|
58
|
+
* @returns The single-line message to type into the runtime
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildResumedKickoff(args: {
|
|
61
|
+
projectRoot: string;
|
|
62
|
+
sessionName: string;
|
|
63
|
+
role: string;
|
|
64
|
+
promptFilePath?: string;
|
|
65
|
+
}): string;
|
|
66
|
+
//# sourceMappingURL=resumed-kickoff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumed-kickoff.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/resumed-kickoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,gFAAgF;AAChF,eAAO,MAAM,yBAAyB;IACrC,2DAA2D;;IAE3D,6DAA6D;;CAEpD,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB;;;;IAIhC,8EAA8E;;;CAGrE,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,sBAAsB,gEAA+B,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIvG;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAOT"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Kickoff text for an agent whose runtime conversation was resumed
|
|
3
|
+
* (Claude Code `--resume`, Codex `resume`) at a Crewly restart.
|
|
4
|
+
*
|
|
5
|
+
* The full kickoff ("Begin your work now… Step 1, Step 2, Step 3
|
|
6
|
+
* (register-self)") typed into a resumed conversation reads, to the agent, as
|
|
7
|
+
* being started over from scratch. Every release restart used to do that, and
|
|
8
|
+
* agents re-announced themselves and redid their startup steps (2026-09-25
|
|
9
|
+
* startup-prompt loop). A resumed agent only needs to register again, since
|
|
10
|
+
* the backend's registration state did not survive the restart, and then carry on.
|
|
11
|
+
*
|
|
12
|
+
* @module services/agent/resumed-kickoff
|
|
13
|
+
*/
|
|
14
|
+
import path from 'path';
|
|
15
|
+
import { ORCHESTRATOR_ROLE } from '../../constants.js';
|
|
16
|
+
/** Where the register-self skill lives, relative to the Crewly project root. */
|
|
17
|
+
export const REGISTER_SELF_SKILL_PATHS = {
|
|
18
|
+
/** Team members: config/skills/agent/core/register-self */
|
|
19
|
+
AGENT: ['config', 'skills', 'agent', 'core', 'register-self', 'execute.sh'],
|
|
20
|
+
/** Orchestrator: config/skills/orchestrator/register-self */
|
|
21
|
+
ORCHESTRATOR: ['config', 'skills', 'orchestrator', 'register-self', 'execute.sh'],
|
|
22
|
+
};
|
|
23
|
+
/** Fixed wording of the resumed kickoff. */
|
|
24
|
+
export const RESUMED_KICKOFF_TEXT = {
|
|
25
|
+
OPENING: '[Crewly restarted — this is your same conversation, resumed.',
|
|
26
|
+
REGISTER: 'Run register-self now (only that step):',
|
|
27
|
+
CONTINUE: '— then continue exactly where you left off. Do not redo your startup steps or re-announce yourself.',
|
|
28
|
+
/** Only for runtimes whose instructions are not loaded as a system prompt. */
|
|
29
|
+
CONTEXT_REFRESH: 'If your instructions are no longer in your context, re-read',
|
|
30
|
+
CLOSING: ']',
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Marker that identifies a resumed kickoff, for tests and log checks.
|
|
34
|
+
*/
|
|
35
|
+
export const RESUMED_KICKOFF_MARKER = RESUMED_KICKOFF_TEXT.OPENING;
|
|
36
|
+
/**
|
|
37
|
+
* Build the exact register-self command the agent's full prompt tells it to
|
|
38
|
+
* run, so a resumed agent registers the same way a fresh one does.
|
|
39
|
+
*
|
|
40
|
+
* @param projectRoot - Crewly project root (where `config/skills` lives)
|
|
41
|
+
* @param sessionName - The agent's session name
|
|
42
|
+
* @param role - The agent's role
|
|
43
|
+
* @returns A shell command line
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* buildRegisterSelfCommand('/opt/crewly', 'team-sam-1', 'developer');
|
|
48
|
+
* // bash /opt/crewly/config/skills/agent/core/register-self/execute.sh '{"role":"developer","sessionName":"team-sam-1"}'
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export function buildRegisterSelfCommand(projectRoot, sessionName, role) {
|
|
52
|
+
const segments = role === ORCHESTRATOR_ROLE ? REGISTER_SELF_SKILL_PATHS.ORCHESTRATOR : REGISTER_SELF_SKILL_PATHS.AGENT;
|
|
53
|
+
const script = path.join(projectRoot, ...segments);
|
|
54
|
+
return `bash ${script} '${JSON.stringify({ role, sessionName })}'`;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build the short kickoff for a resumed conversation.
|
|
58
|
+
*
|
|
59
|
+
* @param args.projectRoot - Crewly project root
|
|
60
|
+
* @param args.sessionName - The agent's session name
|
|
61
|
+
* @param args.role - The agent's role
|
|
62
|
+
* @param args.promptFilePath - Init prompt file to point at for a context refresh.
|
|
63
|
+
* Omit for Claude Code, whose prompt is loaded as its agent definition.
|
|
64
|
+
* @returns The single-line message to type into the runtime
|
|
65
|
+
*/
|
|
66
|
+
export function buildResumedKickoff(args) {
|
|
67
|
+
const command = buildRegisterSelfCommand(args.projectRoot, args.sessionName, args.role);
|
|
68
|
+
const refresh = args.promptFilePath ? ` ${RESUMED_KICKOFF_TEXT.CONTEXT_REFRESH} ${args.promptFilePath}.` : '';
|
|
69
|
+
return (`${RESUMED_KICKOFF_TEXT.OPENING} ${RESUMED_KICKOFF_TEXT.REGISTER} ${command} ` +
|
|
70
|
+
`${RESUMED_KICKOFF_TEXT.CONTINUE}${refresh}${RESUMED_KICKOFF_TEXT.CLOSING}`);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=resumed-kickoff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resumed-kickoff.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/resumed-kickoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,gFAAgF;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC,2DAA2D;IAC3D,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,YAAY,CAAC;IAC3E,6DAA6D;IAC7D,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,CAAC;CACxE,CAAC;AAEX,4CAA4C;AAC5C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC,OAAO,EAAE,8DAA8D;IACvE,QAAQ,EAAE,yCAAyC;IACnD,QAAQ,EAAE,qGAAqG;IAC/G,8EAA8E;IAC9E,eAAe,EAAE,6DAA6D;IAC9E,OAAO,EAAE,GAAG;CACH,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,OAAO,CAAC;AAEnE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,wBAAwB,CAAC,WAAmB,EAAE,WAAmB,EAAE,IAAY;IAC9F,MAAM,QAAQ,GAAG,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC;IACvH,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;IACnD,OAAO,QAAQ,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAKnC;IACA,MAAM,OAAO,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,oBAAoB,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9G,OAAO,CACN,GAAG,oBAAoB,CAAC,OAAO,IAAI,oBAAoB,CAAC,QAAQ,IAAI,OAAO,GAAG;QAC9E,GAAG,oBAAoB,CAAC,QAAQ,GAAG,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAC3E,CAAC;AACH,CAAC"}
|
|
@@ -162,6 +162,20 @@ export declare class SlackTypingPlaceholderService {
|
|
|
162
162
|
* @returns The key of the owed reply, or null
|
|
163
163
|
*/
|
|
164
164
|
findOwed(agentSession: string, slackChannelId: string): TypingKeyParts | null;
|
|
165
|
+
/**
|
|
166
|
+
* The agent finished its turn. Any placeholder it still owes (pending, or
|
|
167
|
+
* timed out into "still working") and is older than SETTLE_MIN_AGE_MS
|
|
168
|
+
* means it decided no reply was needed — an "ok"/"好"/"没关系", or another
|
|
169
|
+
* agent's acknowledgement. Take the placeholder down instead of leaving a
|
|
170
|
+
* promise that never comes: the owner read those "⏱ still working — the
|
|
171
|
+
* reply will follow" lines as unanswered messages (2026-09-25, 13 of them
|
|
172
|
+
* in two days). A reply that still arrives later posts as a new message.
|
|
173
|
+
*
|
|
174
|
+
* @param agentSession - Agent whose turn ended
|
|
175
|
+
* @param now - Clock (tests)
|
|
176
|
+
* @returns How many placeholders were removed
|
|
177
|
+
*/
|
|
178
|
+
settleTurnWithoutReply(agentSession: string, now?: number): Promise<number>;
|
|
165
179
|
/** Forget timed-out placeholders older than EXPIRED_KEEP_MS. */
|
|
166
180
|
private pruneExpired;
|
|
167
181
|
/** Number of placeholders still waiting for a reply (tests / diagnostics). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,OAAO,CAElF;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,WAAW,IAAI,OAAO,CAAC;IACvB,WAAW,CAAC,OAAO,EAAE;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;KAC5B,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxH,aAAa,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF;AAED,uDAAuD;AACvD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gCAAgC;AAChC,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACzE,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,6BAA6B;IAe5B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAdjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"slack-typing-placeholder.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -140,7 +140,7 @@ export class SlackTypingPlaceholderService {
|
|
|
140
140
|
};
|
|
141
141
|
const timer = setTimer(() => void this.expire(k), this.deps.timeoutMs ?? SLACK_TYPING_CONSTANTS.TIMEOUT_MS);
|
|
142
142
|
unref(timer);
|
|
143
|
-
const entry = { placeholder, timer };
|
|
143
|
+
const entry = { placeholder, timer, startedAt: Date.now() };
|
|
144
144
|
if (phase === 'waking') {
|
|
145
145
|
// A cold start that drags on gets an honest note instead of a stale "waking up…".
|
|
146
146
|
entry.slowTimer = setTimer(() => {
|
|
@@ -266,6 +266,58 @@ export class SlackTypingPlaceholderService {
|
|
|
266
266
|
candidates.sort((a, b) => b.at - a.at);
|
|
267
267
|
return candidates[0]?.key ?? null;
|
|
268
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* The agent finished its turn. Any placeholder it still owes (pending, or
|
|
271
|
+
* timed out into "still working") and is older than SETTLE_MIN_AGE_MS
|
|
272
|
+
* means it decided no reply was needed — an "ok"/"好"/"没关系", or another
|
|
273
|
+
* agent's acknowledgement. Take the placeholder down instead of leaving a
|
|
274
|
+
* promise that never comes: the owner read those "⏱ still working — the
|
|
275
|
+
* reply will follow" lines as unanswered messages (2026-09-25, 13 of them
|
|
276
|
+
* in two days). A reply that still arrives later posts as a new message.
|
|
277
|
+
*
|
|
278
|
+
* @param agentSession - Agent whose turn ended
|
|
279
|
+
* @param now - Clock (tests)
|
|
280
|
+
* @returns How many placeholders were removed
|
|
281
|
+
*/
|
|
282
|
+
async settleTurnWithoutReply(agentSession, now = Date.now()) {
|
|
283
|
+
const minAge = SLACK_TYPING_CONSTANTS.SETTLE_MIN_AGE_MS;
|
|
284
|
+
const victims = [];
|
|
285
|
+
for (const [k, entry] of [...this.pending]) {
|
|
286
|
+
if (!k.startsWith(`${agentSession}:`) || now - entry.startedAt < minAge)
|
|
287
|
+
continue;
|
|
288
|
+
if (this.inFlight.has(k))
|
|
289
|
+
continue;
|
|
290
|
+
const clear = this.deps.clearTimer ?? ((t) => clearTimeout(t));
|
|
291
|
+
clear(entry.timer);
|
|
292
|
+
if (entry.slowTimer)
|
|
293
|
+
clear(entry.slowTimer);
|
|
294
|
+
this.pending.delete(k);
|
|
295
|
+
victims.push(entry.placeholder);
|
|
296
|
+
}
|
|
297
|
+
for (const [k, { placeholder }] of [...this.expired]) {
|
|
298
|
+
if (!k.startsWith(`${agentSession}:`))
|
|
299
|
+
continue;
|
|
300
|
+
this.expired.delete(k);
|
|
301
|
+
victims.push(placeholder);
|
|
302
|
+
}
|
|
303
|
+
for (const placeholder of victims) {
|
|
304
|
+
try {
|
|
305
|
+
if (this.deps.slack.deleteMessage) {
|
|
306
|
+
await this.deps.slack.deleteMessage(placeholder.slackChannelId, placeholder.ts, placeholder.botToken);
|
|
307
|
+
}
|
|
308
|
+
else {
|
|
309
|
+
await this.deps.slack.updateMessage(placeholder.slackChannelId, placeholder.ts, SLACK_TYPING_CONSTANTS.SETTLED_TEXT.replace('{name}', placeholder.displayName), undefined, placeholder.botToken);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
catch (err) {
|
|
313
|
+
this.logger.debug('Could not take down a settled placeholder', { error: err instanceof Error ? err.message : String(err) });
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
if (victims.length > 0) {
|
|
317
|
+
this.logger.info('Agent finished its turn without replying — placeholders taken down', { agentSession, count: victims.length });
|
|
318
|
+
}
|
|
319
|
+
return victims.length;
|
|
320
|
+
}
|
|
269
321
|
/** Forget timed-out placeholders older than EXPIRED_KEEP_MS. */
|
|
270
322
|
pruneExpired() {
|
|
271
323
|
const cutoff = Date.now() - SLACK_TYPING_CONSTANTS.EXPIRED_KEEP_MS;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack-typing-placeholder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"slack-typing-placeholder.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/slack/slack-typing-placeholder.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -615,6 +615,38 @@ export declare class TaskPoolService {
|
|
|
615
615
|
* @returns true when the verification path should fire
|
|
616
616
|
*/
|
|
617
617
|
private requiresVerification;
|
|
618
|
+
/**
|
|
619
|
+
* Explicitly block a running WorkItem (the agent's `/block`, e.g. "waiting
|
|
620
|
+
* on the owner").
|
|
621
|
+
*
|
|
622
|
+
* The item becomes terminal-until-unblocked:
|
|
623
|
+
* - status `running → blocked`, with `blockedReason` and
|
|
624
|
+
* `blockSource: 'explicit'` written atomically with the flip;
|
|
625
|
+
* - the active claim is released (`blocked: <reason>`), which frees the
|
|
626
|
+
* agent's claim slot and leaves no lease for the reconciler to expire,
|
|
627
|
+
* revoke and redeliver;
|
|
628
|
+
* - the reconciler never re-queues an explicitly blocked item (see
|
|
629
|
+
* `detectRecoverableWorkItems` / `detectDependencyResolvedWorkItems`).
|
|
630
|
+
*
|
|
631
|
+
* Unblocking is explicit: {@link releaseBack} (POST
|
|
632
|
+
* `/task-pool/release/:id`, the release-claim skill) or any
|
|
633
|
+
* `blocked → queued` transition puts it back to `queued` and clears the
|
|
634
|
+
* marker. `target` is kept, so it returns to the same agent.
|
|
635
|
+
*
|
|
636
|
+
* Before this (2026-09-25, WI 92327d6d) `/block` kept the claim, and the
|
|
637
|
+
* reconciler flipped the item `blocked → queued` (`reconciler_requeue`)
|
|
638
|
+
* as soon as it saw the agent active, so it was re-claimed and
|
|
639
|
+
* re-dispatched every few minutes.
|
|
640
|
+
*
|
|
641
|
+
* @param workItemId - The running WorkItem to block
|
|
642
|
+
* @param options.agentId - Who blocked it (recorded in metadata)
|
|
643
|
+
* @param options.reason - Why (persisted on `blockedReason`)
|
|
644
|
+
* @throws Error if not found, or the item is not `running` (state machine)
|
|
645
|
+
*/
|
|
646
|
+
blockItem(workItemId: string, options: {
|
|
647
|
+
agentId: string;
|
|
648
|
+
reason?: string;
|
|
649
|
+
}): Promise<void>;
|
|
618
650
|
/**
|
|
619
651
|
* Release the active claim on a WorkItem, if it has one.
|
|
620
652
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-pool.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/task-pool.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG3H,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"task-pool.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/task-pool/task-pool.service.ts"],"names":[],"mappings":"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"}
|