agim-cli 1.1.1 โ 1.1.2
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/CHANGELOG.md +101 -0
- package/README.md +7 -1
- package/README.zh-CN.md +7 -1
- package/dist/cli.js +265 -30
- package/dist/cli.js.map +1 -1
- package/dist/core/a2a.d.ts +36 -0
- package/dist/core/a2a.d.ts.map +1 -0
- package/dist/core/a2a.js +203 -0
- package/dist/core/a2a.js.map +1 -0
- package/dist/core/approval-bus.d.ts +40 -0
- package/dist/core/approval-bus.d.ts.map +1 -1
- package/dist/core/approval-bus.js +106 -0
- package/dist/core/approval-bus.js.map +1 -1
- package/dist/core/approval-router.d.ts.map +1 -1
- package/dist/core/approval-router.js +31 -2
- package/dist/core/approval-router.js.map +1 -1
- package/dist/core/commands/a2a.d.ts +3 -0
- package/dist/core/commands/a2a.d.ts.map +1 -0
- package/dist/core/commands/a2a.js +148 -0
- package/dist/core/commands/a2a.js.map +1 -0
- package/dist/core/commands/job.d.ts.map +1 -1
- package/dist/core/commands/job.js +11 -2
- package/dist/core/commands/job.js.map +1 -1
- package/dist/core/commands/outbox.d.ts +3 -0
- package/dist/core/commands/outbox.d.ts.map +1 -0
- package/dist/core/commands/outbox.js +92 -0
- package/dist/core/commands/outbox.js.map +1 -0
- package/dist/core/job-board.d.ts +122 -1
- package/dist/core/job-board.d.ts.map +1 -1
- package/dist/core/job-board.js +404 -21
- package/dist/core/job-board.js.map +1 -1
- package/dist/core/job-recovery.d.ts +48 -0
- package/dist/core/job-recovery.d.ts.map +1 -0
- package/dist/core/job-recovery.js +185 -0
- package/dist/core/job-recovery.js.map +1 -0
- package/dist/core/message-sink.d.ts +63 -0
- package/dist/core/message-sink.d.ts.map +1 -0
- package/dist/core/message-sink.js +296 -0
- package/dist/core/message-sink.js.map +1 -0
- package/dist/core/outbox.d.ts +71 -0
- package/dist/core/outbox.d.ts.map +1 -0
- package/dist/core/outbox.js +301 -0
- package/dist/core/outbox.js.map +1 -0
- package/dist/core/reminders.d.ts.map +1 -1
- package/dist/core/reminders.js +12 -1
- package/dist/core/reminders.js.map +1 -1
- package/dist/core/restart-completion.d.ts.map +1 -1
- package/dist/core/restart-completion.js +18 -1
- package/dist/core/restart-completion.js.map +1 -1
- package/dist/core/router.d.ts +8 -0
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/router.js +16 -0
- package/dist/core/router.js.map +1 -1
- package/dist/core/types.d.ts +22 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/plugins/agents/claude-code/index.d.ts.map +1 -1
- package/dist/plugins/agents/claude-code/index.js +5 -0
- package/dist/plugins/agents/claude-code/index.js.map +1 -1
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts +21 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.d.ts.map +1 -1
- package/dist/plugins/agents/claude-code/mcp-approval-server.js +106 -0
- package/dist/plugins/agents/claude-code/mcp-approval-server.js.map +1 -1
- package/dist/plugins/agents/codex/index.d.ts.map +1 -1
- package/dist/plugins/agents/codex/index.js +5 -0
- package/dist/plugins/agents/codex/index.js.map +1 -1
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.d.ts.map +1 -1
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js +5 -0
- package/dist/plugins/agents/opencode/opencode-stdio-adapter.js.map +1 -1
- package/dist/web/server.d.ts.map +1 -1
- package/dist/web/server.js +28 -16
- package/dist/web/server.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,8 +4,13 @@ import { sessionManager } from '../session.js';
|
|
|
4
4
|
import { AgentBase } from '../agent-base.js';
|
|
5
5
|
import { createJob, getJob, listJobs, cancelJob, runJob, getJobStats } from '../job-board.js';
|
|
6
6
|
import { workspaceRegistry } from '../workspace.js';
|
|
7
|
+
const JOB_STATUS_ICON = {
|
|
8
|
+
pending: 'โณ', running: '๐', completed: 'โ
', delivered: '๐ฌ',
|
|
9
|
+
failed: 'โ', cancelled: '๐ซ',
|
|
10
|
+
interrupted: 'โ ๏ธ', replaced: '๐', abandoned: '๐',
|
|
11
|
+
};
|
|
7
12
|
function formatJob(j) {
|
|
8
|
-
const icon =
|
|
13
|
+
const icon = JOB_STATUS_ICON[j.status] || 'โ';
|
|
9
14
|
const ts = new Date(`${j.created_at}Z`).toLocaleTimeString('zh-CN', { hour: '2-digit', minute: '2-digit' });
|
|
10
15
|
const preview = j.prompt.substring(0, 50) + (j.prompt.length > 50 ? '...' : '');
|
|
11
16
|
return `${icon} #${j.id} ${j.agent}: ${preview} [${j.status}] ยท ${ts}`;
|
|
@@ -77,7 +82,11 @@ Agent: ${agent.name}
|
|
|
77
82
|
const job = getJob(id, ownerOpts);
|
|
78
83
|
if (!job)
|
|
79
84
|
return `โ ๆชๆพๅฐไปปๅก #${id}ใ`;
|
|
80
|
-
const statusLabel = {
|
|
85
|
+
const statusLabel = {
|
|
86
|
+
pending: 'โณ ๅพ
ๆง่ก', running: '๐ ่ฟ่กไธญ', completed: 'โ
ๅทฒๅฎๆ', delivered: '๐ฌ ๅทฒ้่พพ',
|
|
87
|
+
failed: 'โ ๅคฑ่ดฅ', cancelled: '๐ซ ๅทฒๅๆถ',
|
|
88
|
+
interrupted: 'โ ๏ธ ๅทฒไธญๆญ', replaced: '๐ ๅทฒ้ๅ', abandoned: '๐ ๅทฒๅฝๆกฃ',
|
|
89
|
+
};
|
|
81
90
|
let msg = `๐ **ไปปๅก #${job.id}**
|
|
82
91
|
|
|
83
92
|
Agent: ${job.agent}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/core/commands/job.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAG5F,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAY,MAAM,iBAAiB,CAAA;AACvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAEnD,
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/core/commands/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox.d.ts","sourceRoot":"","sources":["../../../src/core/commands/outbox.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AA+BhD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,MAAM,CAAC,CAgDjB"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// /outbox โ inspect and operate the message-sink delivery queue.
|
|
2
|
+
//
|
|
3
|
+
// Subcommands:
|
|
4
|
+
// /outbox โ same as `status`
|
|
5
|
+
// /outbox status โ aggregate counts (pending / delivered / giving_up)
|
|
6
|
+
// /outbox list [N] โ last N rows (default 10)
|
|
7
|
+
// /outbox failed [N] โ last N rows in 'giving_up' state
|
|
8
|
+
// /outbox retry <id> โ move a 'giving_up' row back to 'pending'
|
|
9
|
+
//
|
|
10
|
+
// Why expose this:
|
|
11
|
+
// - Operators need quick visibility into stuck deliveries without
|
|
12
|
+
// opening sqlite (`sqlite3 ~/.agim/outbox.db` works but isn't IM-friendly).
|
|
13
|
+
// - 'giving_up' is terminal by design โ without a retry knob, a transient
|
|
14
|
+
// IM-side outage that spans the 6-step backoff (~2h cumulative) would
|
|
15
|
+
// leave good messages permanently dead-lettered.
|
|
16
|
+
//
|
|
17
|
+
// Permission model: the underlying outbox table is global. Phase 1 keeps
|
|
18
|
+
// this command admin-only / not multi-tenant โ every IM user sees the same
|
|
19
|
+
// rows. If multi-tenant slicing becomes a requirement, gate by ctx.userId
|
|
20
|
+
// the same way job-board does (createJob's creator_id column).
|
|
21
|
+
import { getOutboxStats, listOutbox, retryGivingUp, } from '../outbox.js';
|
|
22
|
+
function fmtRow(r) {
|
|
23
|
+
const icon = r.status === 'delivered' ? 'โ
'
|
|
24
|
+
: r.status === 'giving_up' ? '๐'
|
|
25
|
+
: '๐ค';
|
|
26
|
+
const ts = new Date(`${r.created_at}Z`).toLocaleTimeString('zh-CN', {
|
|
27
|
+
hour: '2-digit', minute: '2-digit',
|
|
28
|
+
});
|
|
29
|
+
const preview = r.payload.replace(/\n/g, ' ').slice(0, 40)
|
|
30
|
+
+ (r.payload.length > 40 ? 'โฆ' : '');
|
|
31
|
+
const errTail = r.last_error ? ` ยท err: ${r.last_error.slice(0, 60)}` : '';
|
|
32
|
+
return `${icon} #${r.id} ${r.platform}/${r.thread_id} [${r.status} ยท ${r.attempts}x] ${preview} ยท ${ts}${errTail}`;
|
|
33
|
+
}
|
|
34
|
+
function fmtStatus() {
|
|
35
|
+
const stats = getOutboxStats();
|
|
36
|
+
const total = stats.pending + stats.delivered + stats.giving_up;
|
|
37
|
+
return [
|
|
38
|
+
`๐ฌ outbox ยท ๅ
ฑ ${total}`,
|
|
39
|
+
` โณ pending: ${stats.pending}`,
|
|
40
|
+
` โ
delivered: ${stats.delivered}`,
|
|
41
|
+
` ๐ giving_up: ${stats.giving_up}`,
|
|
42
|
+
'',
|
|
43
|
+
`ๆ็คบ: /outbox list ยท /outbox failed ยท /outbox retry <id>`,
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
export async function handleOutboxCommand(args, _ctx) {
|
|
47
|
+
const parts = args.trim().split(/\s+/).filter(Boolean);
|
|
48
|
+
const sub = parts[0] || 'status';
|
|
49
|
+
switch (sub) {
|
|
50
|
+
case 'status':
|
|
51
|
+
case 's':
|
|
52
|
+
return fmtStatus();
|
|
53
|
+
case 'list':
|
|
54
|
+
case 'ls': {
|
|
55
|
+
const n = Math.max(1, Math.min(parseInt(parts[1] || '10', 10) || 10, 50));
|
|
56
|
+
const rows = listOutbox({ limit: n });
|
|
57
|
+
if (rows.length === 0)
|
|
58
|
+
return '๐ฌ outbox ไธบ็ฉบใ';
|
|
59
|
+
return [`๐ฌ outbox ยท ๆ่ฟ ${rows.length} ๆก:`, '', ...rows.map(fmtRow)].join('\n');
|
|
60
|
+
}
|
|
61
|
+
case 'failed': {
|
|
62
|
+
const n = Math.max(1, Math.min(parseInt(parts[1] || '10', 10) || 10, 50));
|
|
63
|
+
const rows = listOutbox({ status: 'giving_up', limit: n });
|
|
64
|
+
if (rows.length === 0)
|
|
65
|
+
return 'โ
ๆฒกๆ giving_up ่กใ';
|
|
66
|
+
return [
|
|
67
|
+
`๐ outbox ๅคฑ่ดฅๅ่กจ ยท ${rows.length} ๆก`,
|
|
68
|
+
'',
|
|
69
|
+
...rows.map(fmtRow),
|
|
70
|
+
'',
|
|
71
|
+
`ๅๆง /outbox retry <id> ๅฏ้ๆฐๅ
ฅ้`,
|
|
72
|
+
].join('\n');
|
|
73
|
+
}
|
|
74
|
+
case 'retry': {
|
|
75
|
+
const id = parseInt(parts[1] || '', 10);
|
|
76
|
+
if (!Number.isFinite(id) || id <= 0) {
|
|
77
|
+
return 'โ ็จๆณ: /outbox retry <id>';
|
|
78
|
+
}
|
|
79
|
+
const ok = retryGivingUp(id);
|
|
80
|
+
return ok
|
|
81
|
+
? `โ
outbox #${id} ๅทฒ้ๆฐๅ
ฅ้ (attempts ้็ฝฎ)`
|
|
82
|
+
: `โ outbox #${id} ไธๅญๅจๆไธๅจ giving_up ็ถๆ`;
|
|
83
|
+
}
|
|
84
|
+
default:
|
|
85
|
+
return [
|
|
86
|
+
`โ ๆช็ฅๅญๅฝไปค: ${sub}`,
|
|
87
|
+
'',
|
|
88
|
+
'ๅฏ็จ: /outbox ยท /outbox list [N] ยท /outbox failed [N] ยท /outbox retry <id>',
|
|
89
|
+
].join('\n');
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=outbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outbox.js","sourceRoot":"","sources":["../../../src/core/commands/outbox.ts"],"names":[],"mappings":"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"}
|
package/dist/core/job-board.d.ts
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
2
|
import type { Logger } from 'pino';
|
|
3
|
-
export type
|
|
3
|
+
export type JobKind = 'job' | 'inline';
|
|
4
|
+
/** Lifecycle states.
|
|
5
|
+
* - pending : created, not yet picked up
|
|
6
|
+
* - running : agent currently executing
|
|
7
|
+
* - completed : agent finished, result captured; for inline kind the
|
|
8
|
+
* reply still has to go through the outbox before terminal
|
|
9
|
+
* 'delivered' (or 'failed' if the outbox gives up).
|
|
10
|
+
* - delivered : (inline only) reply confirmed sent via outbox.
|
|
11
|
+
* - failed : agent threw OR outbox gave up
|
|
12
|
+
* - cancelled : user-initiated cancel
|
|
13
|
+
* - interrupted : (Phase 3) running row was killed by agim shutdown โ the
|
|
14
|
+
* startup scan offers the user a retry.
|
|
15
|
+
* - replaced : (Phase 3) interrupted row whose user picked "retry"; the
|
|
16
|
+
* new row's id lands in `replaced_by`.
|
|
17
|
+
* - abandoned : (Phase 3) interrupted row past the 10-minute window โ no
|
|
18
|
+
* notification fired, archived for audit.
|
|
19
|
+
*/
|
|
20
|
+
export type JobStatus = 'pending' | 'running' | 'completed' | 'delivered' | 'failed' | 'cancelled' | 'interrupted' | 'replaced' | 'abandoned';
|
|
4
21
|
export interface Job {
|
|
5
22
|
id: number;
|
|
6
23
|
status: JobStatus;
|
|
@@ -14,8 +31,60 @@ export interface Job {
|
|
|
14
31
|
creator_id: string;
|
|
15
32
|
/** Workspace this job was created under, or '' if unknown. */
|
|
16
33
|
workspace_id: string;
|
|
34
|
+
/** `${platform}:${channelId}:${threadId}` โ empty for legacy / system rows. */
|
|
35
|
+
thread_key: string;
|
|
36
|
+
/** 'job' = explicit /job (30d retention), 'inline' = auto-tracked inbound
|
|
37
|
+
* message (24h retention + Phase 3 lifecycle hooks). */
|
|
38
|
+
kind: JobKind;
|
|
39
|
+
/** ISO when status first transitioned to 'running'. Null for never-run rows. */
|
|
40
|
+
started_at: string | null;
|
|
41
|
+
/** ISO when the outbox confirmed delivery to IM. Inline kind only. */
|
|
42
|
+
delivered_at: string | null;
|
|
43
|
+
/** Id of the new job that replaced this one (Phase 3 retry flow). */
|
|
44
|
+
replaced_by: number | null;
|
|
45
|
+
/** Last outbox row id that tried to deliver this job's result. Reverse
|
|
46
|
+
* link to `outbox.job_id`. */
|
|
47
|
+
last_outbox_id: number | null;
|
|
48
|
+
/** A2A-L1: id of the inline job whose agent invoked us via
|
|
49
|
+
* mcp__imhub__call_agent. NULL for user-originated rows. */
|
|
50
|
+
parent_id: number | null;
|
|
51
|
+
/** A2A-L1: how deep in the call chain this row sits. 0 = user;
|
|
52
|
+
* caller.call_depth + 1 for each A2A hop. Used to enforce
|
|
53
|
+
* IMHUB_A2A_MAX_DEPTH. */
|
|
54
|
+
call_depth: number;
|
|
17
55
|
}
|
|
18
56
|
type JobRunner = (job: Job, logger: Logger, signal: AbortSignal) => AsyncGenerator<string>;
|
|
57
|
+
/** Phase 3 โ shutdown step. Mark every running inline job as 'interrupted'
|
|
58
|
+
* so the next startup can offer the user a retry. Returns the row count for
|
|
59
|
+
* logging. Safe to call on a degraded DB (returns 0). */
|
|
60
|
+
export declare function markRunningInlineJobsInterrupted(reason?: string): number;
|
|
61
|
+
/** Phase 3 โ startup scan. Return interrupted inline jobs that finished
|
|
62
|
+
* within the recovery window (default 10 min via IMHUB_RECOVERY_WINDOW_MS).
|
|
63
|
+
* Caller iterates the result, sends a per-thread "retry / cancel" prompt,
|
|
64
|
+
* and tracks the user's reply via the in-memory pending-retry map.
|
|
65
|
+
*
|
|
66
|
+
* Older interrupted rows are NOT returned โ they get swept to 'abandoned'
|
|
67
|
+
* by sweepAbandonedInterrupted() so they don't pile up in the table. */
|
|
68
|
+
export declare function findRecoverableInterrupted(windowMs?: number): Job[];
|
|
69
|
+
/** Phase 3 โ startup sweep. Any 'interrupted' inline row past the recovery
|
|
70
|
+
* window transitions to 'abandoned' (preserved for audit but never
|
|
71
|
+
* notified). Returns the row count. */
|
|
72
|
+
export declare function sweepAbandonedInterrupted(windowMs?: number): number;
|
|
73
|
+
/** Phase 3 โ link an old interrupted row to its replacement once the user
|
|
74
|
+
* picks "1 ้ๅ". The new row's id lands in `replaced_by`; the old row
|
|
75
|
+
* transitions interrupted โ replaced so it stops showing up in any future
|
|
76
|
+
* recovery scan. */
|
|
77
|
+
export declare function markJobReplacedBy(oldId: number, newId: number): void;
|
|
78
|
+
/** Phase 3 โ user picked "2 ๅๆถ" on the retry prompt. Interrupted โ cancelled. */
|
|
79
|
+
export declare function markInterruptedCancelled(id: number): void;
|
|
80
|
+
/** Exported for the recovery module so it can use the same window for the
|
|
81
|
+
* user-facing "10 min ๅ
ๆๆ" copy. */
|
|
82
|
+
export declare function getRecoveryWindowMs(): number;
|
|
83
|
+
/** Test hook: artificially age a row's completed_at (or created_at) by a
|
|
84
|
+
* SQLite modifier like '-2 hours' or '-40 days'. Production code must NOT
|
|
85
|
+
* call this; it's the only practical way to exercise retention without
|
|
86
|
+
* sleeping in tests. */
|
|
87
|
+
export declare function _backdateForTests(id: number, modifier: string): void;
|
|
19
88
|
/** Stop the retention sweep (used by tests + graceful shutdown). */
|
|
20
89
|
export declare function stopJobRetentionSweep(): void;
|
|
21
90
|
/** Close the underlying SQLite handle. Called by cli.ts on graceful
|
|
@@ -43,10 +112,62 @@ export interface OwnerOpts {
|
|
|
43
112
|
export interface CreateJobOpts {
|
|
44
113
|
creatorId?: string;
|
|
45
114
|
workspaceId?: string;
|
|
115
|
+
/** 'job' (default) for explicit /job, 'inline' for cli auto-tracking. */
|
|
116
|
+
kind?: JobKind;
|
|
117
|
+
/** `${platform}:${channelId}:${threadId}` โ required for inline kind so
|
|
118
|
+
* Phase 3 can route recovery notifications back to the originating IM
|
|
119
|
+
* thread. Optional for kind='job' (legacy CLI / scheduler callers). */
|
|
120
|
+
threadKey?: string;
|
|
121
|
+
/** A2A-L1: id of the inline job whose agent invoked this one. NULL on
|
|
122
|
+
* user-originated rows. */
|
|
123
|
+
parentId?: number | null;
|
|
124
|
+
/** A2A-L1: call depth (caller.call_depth + 1). 0 for user-originated. */
|
|
125
|
+
callDepth?: number;
|
|
46
126
|
}
|
|
47
127
|
export declare function createJob(agent: string, prompt: string, opts?: CreateJobOpts): number;
|
|
128
|
+
/** Inline-job convenience: same as createJob but never throws โ returns -1
|
|
129
|
+
* when the board is disabled / locked. Caller is expected to log + carry
|
|
130
|
+
* on with the in-memory fast path. The whole tracking machinery short-
|
|
131
|
+
* circuits when env IMHUB_INLINE_JOB_TRACKING=0.
|
|
132
|
+
*
|
|
133
|
+
* parentId/callDepth are A2A-L1 hand-offs: when an agent tool-calls
|
|
134
|
+
* another agent via mcp__imhub__call_agent, the bus routes through here
|
|
135
|
+
* to record the parent/depth relationship. User-originated rows leave
|
|
136
|
+
* these undefined โ NULL parent, depth=0. */
|
|
137
|
+
export declare function createInlineJob(opts: {
|
|
138
|
+
agent: string;
|
|
139
|
+
prompt: string;
|
|
140
|
+
threadKey: string;
|
|
141
|
+
creatorId?: string;
|
|
142
|
+
workspaceId?: string;
|
|
143
|
+
parentId?: number | null;
|
|
144
|
+
callDepth?: number;
|
|
145
|
+
}): number;
|
|
48
146
|
export declare function getJob(id: number, opts?: OwnerOpts): Job | null;
|
|
49
147
|
export declare function listJobs(limit?: number, status?: JobStatus, opts?: OwnerOpts): Job[];
|
|
148
|
+
/** Replace the agent column. Used by inline jobs: cli.ts creates the row with
|
|
149
|
+
* the default agent name before routing resolves the actual agent, then this
|
|
150
|
+
* fires inside onAgentResolved to correct the record. No-op when status is
|
|
151
|
+
* past 'running' so we don't rewrite history. */
|
|
152
|
+
export declare function updateJobAgent(id: number, agent: string): void;
|
|
153
|
+
/** pending โ running. Stamps started_at. Idempotent: an already-running row
|
|
154
|
+
* keeps its original started_at. */
|
|
155
|
+
export declare function markJobRunning(id: number): void;
|
|
156
|
+
/** running โ completed (result captured). For inline kind 'delivered' is the
|
|
157
|
+
* next hop, triggered by the outbox worker once the IM platform confirms.
|
|
158
|
+
* For 'job' kind this is the terminal success state (no delivery channel). */
|
|
159
|
+
export declare function markJobCompleted(id: number, result: string): void;
|
|
160
|
+
/** Link a job row to the outbox row that will (try to) deliver its result.
|
|
161
|
+
* Worker uses outbox.job_id to find this row; this column is the reverse
|
|
162
|
+
* link for /job inspection ("which outbox row carried this reply"). */
|
|
163
|
+
export declare function linkJobOutbox(id: number, outboxId: number): void;
|
|
164
|
+
/** completed โ delivered. Called by the outbox worker after the IM platform
|
|
165
|
+
* ack. No-op if the row isn't in 'completed' (e.g. user cancelled meanwhile). */
|
|
166
|
+
export declare function markJobDelivered(id: number): void;
|
|
167
|
+
/** Terminal failure (agent threw, outbox gave up, etc.). Captures the error
|
|
168
|
+
* on the row. completed_at gets stamped so retention sweeps treat the row
|
|
169
|
+
* the same as a normal terminal state. */
|
|
170
|
+
export declare function markJobFailed(id: number, error: string): void;
|
|
50
171
|
/**
|
|
51
172
|
* Acquire a job slot. Returns immediately when capacity available, otherwise
|
|
52
173
|
* queues the caller and returns a promise that resolves when a slot frees.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-board.d.ts","sourceRoot":"","sources":["../../src/core/job-board.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AA+DlC,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"job-board.d.ts","sourceRoot":"","sources":["../../src/core/job-board.ts"],"names":[],"mappings":"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"}
|