@0xmaxma/claude-gateway 2.0.2 → 2.0.4
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/README.md +1 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +64 -17
- package/dist/agent/runner.js.map +1 -1
- package/dist/orchestration/bridge.d.ts +3 -1
- package/dist/orchestration/bridge.d.ts.map +1 -1
- package/dist/orchestration/bridge.js +66 -49
- package/dist/orchestration/bridge.js.map +1 -1
- package/dist/orchestration/channel-input-media.d.ts +6 -0
- package/dist/orchestration/channel-input-media.d.ts.map +1 -1
- package/dist/orchestration/channel-input-media.js +35 -11
- package/dist/orchestration/channel-input-media.js.map +1 -1
- package/dist/orchestration/channel-media-error.d.ts +11 -0
- package/dist/orchestration/channel-media-error.d.ts.map +1 -0
- package/dist/orchestration/channel-media-error.js +38 -0
- package/dist/orchestration/channel-media-error.js.map +1 -0
- package/dist/orchestration/channel-media.d.ts +1 -1
- package/dist/orchestration/channel-media.d.ts.map +1 -1
- package/dist/orchestration/channel-media.js +37 -7
- package/dist/orchestration/channel-media.js.map +1 -1
- package/dist/orchestration/conversation-intake.d.ts +1 -1
- package/dist/orchestration/conversation-intake.d.ts.map +1 -1
- package/dist/orchestration/conversation-intake.js +1 -1
- package/dist/orchestration/delivery.d.ts +3 -0
- package/dist/orchestration/delivery.d.ts.map +1 -1
- package/dist/orchestration/delivery.js +14 -5
- package/dist/orchestration/delivery.js.map +1 -1
- package/dist/orchestration/inference-errors.d.ts.map +1 -1
- package/dist/orchestration/inference-errors.js +58 -3
- package/dist/orchestration/inference-errors.js.map +1 -1
- package/dist/orchestration/process-turn.d.ts.map +1 -1
- package/dist/orchestration/process-turn.js +28 -5
- package/dist/orchestration/process-turn.js.map +1 -1
- package/dist/orchestration/runtime.d.ts +3 -1
- package/dist/orchestration/runtime.d.ts.map +1 -1
- package/dist/orchestration/runtime.js +136 -61
- package/dist/orchestration/runtime.js.map +1 -1
- package/dist/orchestration/store.d.ts +17 -0
- package/dist/orchestration/store.d.ts.map +1 -1
- package/dist/orchestration/store.js +59 -1
- package/dist/orchestration/store.js.map +1 -1
- package/dist/orchestration/task-questions.d.ts +23 -5
- package/dist/orchestration/task-questions.d.ts.map +1 -1
- package/dist/orchestration/task-questions.js +126 -54
- package/dist/orchestration/task-questions.js.map +1 -1
- package/dist/orchestration/tasks/service.d.ts +2 -0
- package/dist/orchestration/tasks/service.d.ts.map +1 -1
- package/dist/orchestration/tasks/service.js +4 -0
- package/dist/orchestration/tasks/service.js.map +1 -1
- package/dist/voice/session.d.ts.map +1 -1
- package/dist/voice/session.js +7 -1
- package/dist/voice/session.js.map +1 -1
- package/mcp/tools/discord/inbound.ts +1 -1
- package/mcp/tools/discord/receiver-server.ts +1 -1
- package/mcp/tools/discord/types.ts +1 -1
- package/mcp/tools/receiver-spool.test.ts +8 -2
- package/mcp/tools/receiver-spool.ts +198 -25
- package/mcp/tools/tasks/module.ts +1 -0
- package/mcp/tools/telegram/media-group.ts +3 -3
- package/mcp/tools/telegram/receiver-server.ts +1 -1
- package/mcp/types.ts +1 -1
- package/package.json +1 -1
|
@@ -8,10 +8,12 @@ import type { SkillRegistry } from '../skills';
|
|
|
8
8
|
type Scope = {
|
|
9
9
|
role: 'agent';
|
|
10
10
|
capabilities?: (args: Record<string, unknown>) => Promise<unknown>;
|
|
11
|
+
onQuestion?: (context: CommandContext, args: Record<string, unknown>) => unknown;
|
|
11
12
|
context: Omit<CommandContext, 'actionId'>;
|
|
12
13
|
onTaskQueued?: (spoken: string) => void;
|
|
13
14
|
onIntake?: (choice: IntakeChoice) => Promise<unknown>;
|
|
14
|
-
|
|
15
|
+
onMutationResult?: (actionId: string, committed: boolean) => void;
|
|
16
|
+
beforeMutation?: (tool: string, args: Record<string, unknown>, actionId: string) => Promise<void>;
|
|
15
17
|
} | {
|
|
16
18
|
role: 'worker';
|
|
17
19
|
attemptId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAkC,MAAM,SAAS,CAAC;AACzE,OAAO,EAAiB,cAAc,EAAkB,MAAM,4BAA4B,CAAC;AAE3F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,KAAK,KAAK,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;IAAC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,56 +57,72 @@ class TaskBridge {
|
|
|
57
57
|
let result;
|
|
58
58
|
if (scope.role === 'agent') {
|
|
59
59
|
const context = { ...scope.context, actionId: `${scope.context.inputId}:${command.action_id}` };
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
const mutation = ['task_spawn', 'task_update', 'task_answer'].includes(command.tool);
|
|
61
|
+
try {
|
|
62
|
+
if (mutation)
|
|
63
|
+
await scope.beforeMutation?.(command.tool, a, context.actionId);
|
|
64
|
+
switch (command.tool) {
|
|
65
|
+
case 'capabilities_list': {
|
|
66
|
+
this.tasks.store.assertMember(context.conversationId, context.principalId);
|
|
67
|
+
if (!scope.capabilities)
|
|
68
|
+
throw new types_1.OrchestrationError('CAPABILITY_DISCOVERY_UNAVAILABLE');
|
|
69
|
+
result = { ...await scope.capabilities(a), executionAllowedForThisTurn: context.execute, memoryWriteAllowedForThisTurn: context.writeMemory };
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
case 'conversation_intake': {
|
|
73
|
+
if (!scope.onIntake)
|
|
74
|
+
throw new types_1.OrchestrationError('SEMANTIC_INTAKE_DISABLED');
|
|
75
|
+
result = await scope.onIntake(a);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
case 'task_spawn': {
|
|
79
|
+
const skill = (0, skills_1.resolveNamedSkill)(a.skill_name, a.skill_args, this.skills?.());
|
|
80
|
+
if (a.target_profile === 'skill-worker' && !skill)
|
|
81
|
+
throw new types_1.OrchestrationError('UNKNOWN_SKILL');
|
|
82
|
+
if (a.target_profile !== 'skill-worker' && (a.skill_name !== undefined || a.skill_args !== undefined))
|
|
83
|
+
throw new types_1.OrchestrationError('INVALID_INPUT');
|
|
84
|
+
const spoken = typeof a.spoken_acknowledgement === 'string' ? a.spoken_acknowledgement.trim() : '';
|
|
85
|
+
if (scope.onTaskQueued && (!spoken || spoken.length > 600 || spoken.includes('```')))
|
|
86
|
+
throw new types_1.OrchestrationError('VOICE_ACKNOWLEDGEMENT_REQUIRED');
|
|
87
|
+
await this.tasks.validateSpawnProfile(context, a.target_profile);
|
|
88
|
+
// Profile resolution may yield while another input arrives. Recheck
|
|
89
|
+
// readiness immediately before the synchronous task transaction.
|
|
90
|
+
await scope.beforeMutation?.(command.tool, a, context.actionId);
|
|
91
|
+
const task = this.tasks.spawn(context, { title: a.title, instructions: a.instructions, targetProfile: a.target_profile, contextRefs: a.context_refs, continueTaskId: a.continue_task_id, continuationPolicy: a.continuation_policy, ...(skill ? { skill } : {}) });
|
|
92
|
+
scope.onTaskQueued?.(spoken);
|
|
93
|
+
const { skill: _workerOnly, ...receipt } = task;
|
|
94
|
+
result = receipt;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
case 'task_status':
|
|
98
|
+
result = a.task_id
|
|
99
|
+
? this.tasks.status(context.conversationId, context.principalId, a.task_id)
|
|
100
|
+
: this.tasks.context(context.conversationId, context.principalId, context.decisionId);
|
|
101
|
+
break;
|
|
102
|
+
case 'task_cancel':
|
|
103
|
+
result = this.tasks.cancel(context, a.task_id, a.replaced_by_task_id);
|
|
104
|
+
break;
|
|
105
|
+
case 'task_update':
|
|
106
|
+
result = this.tasks.update(context, a.task_id, a.expected_revision, a.instruction, a.mode);
|
|
107
|
+
break;
|
|
108
|
+
case 'task_question': {
|
|
109
|
+
if (!scope.onQuestion)
|
|
110
|
+
throw new types_1.OrchestrationError('QUESTION_CONTROLS_UNAVAILABLE');
|
|
111
|
+
result = scope.onQuestion(context, a);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case 'task_answer':
|
|
115
|
+
result = this.tasks.answer(context, a.task_id, a.question_id, a.answer);
|
|
116
|
+
break;
|
|
117
|
+
default: throw new types_1.OrchestrationError('TOOL_DENIED');
|
|
69
118
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const skill = (0, skills_1.resolveNamedSkill)(a.skill_name, a.skill_args, this.skills?.());
|
|
78
|
-
if (a.target_profile === 'skill-worker' && !skill)
|
|
79
|
-
throw new types_1.OrchestrationError('UNKNOWN_SKILL');
|
|
80
|
-
if (a.target_profile !== 'skill-worker' && (a.skill_name !== undefined || a.skill_args !== undefined))
|
|
81
|
-
throw new types_1.OrchestrationError('INVALID_INPUT');
|
|
82
|
-
const spoken = typeof a.spoken_acknowledgement === 'string' ? a.spoken_acknowledgement.trim() : '';
|
|
83
|
-
if (scope.onTaskQueued && (!spoken || spoken.length > 600 || spoken.includes('```')))
|
|
84
|
-
throw new types_1.OrchestrationError('VOICE_ACKNOWLEDGEMENT_REQUIRED');
|
|
85
|
-
await this.tasks.validateSpawnProfile(context, a.target_profile);
|
|
86
|
-
// Profile resolution may yield while another input arrives. Recheck
|
|
87
|
-
// readiness immediately before the synchronous task transaction.
|
|
88
|
-
await scope.beforeMutation?.(command.tool, a);
|
|
89
|
-
const task = this.tasks.spawn(context, { title: a.title, instructions: a.instructions, targetProfile: a.target_profile, contextRefs: a.context_refs, continueTaskId: a.continue_task_id, continuationPolicy: a.continuation_policy, ...(skill ? { skill } : {}) });
|
|
90
|
-
scope.onTaskQueued?.(spoken);
|
|
91
|
-
const { skill: _workerOnly, ...receipt } = task;
|
|
92
|
-
result = receipt;
|
|
93
|
-
break;
|
|
94
|
-
}
|
|
95
|
-
case 'task_status':
|
|
96
|
-
result = a.task_id
|
|
97
|
-
? this.tasks.status(context.conversationId, context.principalId, a.task_id)
|
|
98
|
-
: this.tasks.context(context.conversationId, context.principalId, context.decisionId);
|
|
99
|
-
break;
|
|
100
|
-
case 'task_cancel':
|
|
101
|
-
result = this.tasks.cancel(context, a.task_id, a.replaced_by_task_id);
|
|
102
|
-
break;
|
|
103
|
-
case 'task_update':
|
|
104
|
-
result = this.tasks.update(context, a.task_id, a.expected_revision, a.instruction, a.mode);
|
|
105
|
-
break;
|
|
106
|
-
case 'task_answer':
|
|
107
|
-
result = this.tasks.answer(context, a.task_id, a.question_id, a.answer);
|
|
108
|
-
break;
|
|
109
|
-
default: throw new types_1.OrchestrationError('TOOL_DENIED');
|
|
119
|
+
if (mutation)
|
|
120
|
+
scope.onMutationResult?.(context.actionId, true);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
if (mutation)
|
|
124
|
+
scope.onMutationResult?.(context.actionId, false);
|
|
125
|
+
throw error;
|
|
110
126
|
}
|
|
111
127
|
}
|
|
112
128
|
else {
|
|
@@ -223,6 +239,7 @@ function containerTaskTools(role, semanticIntake = false) {
|
|
|
223
239
|
['task_status', { task_id: text }, [], 'Read task status without waiting. Pass task_id to retrieve its complete stored result and evidence; task indexes in conversation context are not result reports.'],
|
|
224
240
|
['task_cancel', { task_id: text }, ['task_id'], 'Request cancellation.'],
|
|
225
241
|
['task_update', { task_id: text, expected_revision: { type: 'integer' }, instruction: text, mode: { type: 'string', enum: ['when_ready', 'interrupt_and_resume'] } }, ['task_id', 'expected_revision', 'instruction', 'mode'], 'Replace the current task instructions when the user changes the goal or constraints. Write the complete updated brief, preserving unchanged requirements and citing relevant user input IDs.'],
|
|
242
|
+
['task_question', { action: { type: 'string', enum: ['ask', 'discuss', 'defer', 'mute', 'resume'] }, question_ids: { type: 'array', items: text, minItems: 1, maxItems: 20 }, text, delay_ms: { type: 'integer', minimum: 60000, maximum: 2592000000 } }, ['action', 'question_ids'], 'Manage pending questions without answering or resuming work. Ask stages one natural separate message after your reply; discuss marks ongoing consultation; defer/mute/resume persist the user reminder preference.'],
|
|
226
243
|
['task_answer', { task_id: text, question_id: text, answer: text }, ['task_id', 'question_id', 'answer'], 'Answer a pending worker question. Cite the user input IDs supporting any authorization; distinguish direct user statements from your interpretation. For a changed goal, prefer task_update with a complete replacement brief instead of repeatedly answering the same question.'],
|
|
227
244
|
] : [
|
|
228
245
|
['task_report_progress', { text, checkpoint: workflow_1.WORKFLOW_SCHEMA }, ['text'], 'Report current phase, versioned evidence, checks and findings internally; no user notification is implied.'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/orchestration/bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,5 +7,11 @@ export declare function channelInputMedia(agent: AgentConfig, root: string, sour
|
|
|
7
7
|
name?: string;
|
|
8
8
|
quoted: boolean;
|
|
9
9
|
}[];
|
|
10
|
+
unavailable: {
|
|
11
|
+
code: string;
|
|
12
|
+
name?: string;
|
|
13
|
+
quoted: boolean;
|
|
14
|
+
}[];
|
|
15
|
+
primaryDirectMedia: string | undefined;
|
|
10
16
|
}>;
|
|
11
17
|
//# sourceMappingURL=channel-input-media.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-input-media.d.ts","sourceRoot":"","sources":["../../src/orchestration/channel-input-media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-input-media.d.ts","sourceRoot":"","sources":["../../src/orchestration/channel-input-media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAC,MAAM,KAAG,IAAI;;;;aAgBhG,MAAM;eAAO,MAAM;gBAAQ,OAAO;;;cACpE,MAAM;eAAO,MAAM;gBAAQ,OAAO;;;GA+BlE"}
|
|
@@ -4,25 +4,36 @@ exports.channelInputMedia = channelInputMedia;
|
|
|
4
4
|
const media_1 = require("./media");
|
|
5
5
|
const channel_media_1 = require("./channel-media");
|
|
6
6
|
const types_1 = require("./types");
|
|
7
|
+
const channel_media_error_1 = require("./channel-media-error");
|
|
7
8
|
async function channelInputMedia(agent, root, source, chatId, meta, discard) {
|
|
8
9
|
const items = [];
|
|
9
10
|
if (meta.attachments_json) {
|
|
10
|
-
|
|
11
|
+
let parsed;
|
|
12
|
+
try {
|
|
13
|
+
parsed = JSON.parse(meta.attachments_json);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
17
|
+
}
|
|
11
18
|
if (!Array.isArray(parsed) || parsed.length > 20 || parsed.some(a => !a || typeof a !== 'object' || (a.path !== undefined && typeof a.path !== 'string') || (a.ref !== undefined && typeof a.ref !== 'string') || (a.name !== undefined && typeof a.name !== 'string') || (a.kind !== undefined && typeof a.kind !== 'string') || (a.quoted !== undefined && typeof a.quoted !== 'boolean') || (!a.path && !a.ref)))
|
|
12
19
|
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
13
20
|
items.push(...parsed);
|
|
14
21
|
}
|
|
15
22
|
else {
|
|
16
23
|
if (meta.image_path || meta.document_path || meta.sticker_path)
|
|
17
|
-
items.push({ path: meta.image_path || meta.document_path || meta.sticker_path, name: meta.attachment_name });
|
|
24
|
+
items.push({ path: meta.image_path || meta.document_path || meta.sticker_path, name: meta.attachment_name, size: meta.attachment_size === undefined ? undefined : Number(meta.attachment_size) });
|
|
18
25
|
else if (meta.attachment_file_id)
|
|
19
|
-
items.push({ ref: meta.attachment_file_id, name: meta.attachment_name });
|
|
26
|
+
items.push({ ref: meta.attachment_file_id, name: meta.attachment_name, size: meta.attachment_size === undefined ? undefined : Number(meta.attachment_size) });
|
|
20
27
|
}
|
|
21
28
|
if (meta.replied_image_path)
|
|
22
29
|
items.push({ path: meta.replied_image_path, quoted: true });
|
|
23
30
|
else if (meta.replied_attachment_file_id)
|
|
24
|
-
items.push({ ref: meta.replied_attachment_file_id, name: meta.replied_attachment_name, quoted: true });
|
|
31
|
+
items.push({ ref: meta.replied_attachment_file_id, name: meta.replied_attachment_name, size: meta.replied_attachment_size === undefined ? undefined : Number(meta.replied_attachment_size), quoted: true });
|
|
32
|
+
const primaryDirect = items.find(item => !item.quoted);
|
|
33
|
+
let primaryDirectMedia;
|
|
25
34
|
const media = [], quoted = [], details = [];
|
|
35
|
+
const unavailable = [];
|
|
36
|
+
const discardPaths = new Set();
|
|
26
37
|
const seen = new Map();
|
|
27
38
|
for (const item of items) {
|
|
28
39
|
const key = item.path ?? item.ref;
|
|
@@ -31,24 +42,37 @@ async function channelInputMedia(agent, root, source, chatId, meta, discard) {
|
|
|
31
42
|
let ref = seen.get(key);
|
|
32
43
|
if (!ref) {
|
|
33
44
|
try {
|
|
34
|
-
|
|
45
|
+
if (item.size !== undefined && (!Number.isSafeInteger(item.size) || item.size < 0))
|
|
46
|
+
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
47
|
+
if (item.size !== undefined && item.size > (source === 'telegram' ? 20 : 50) * 1024 * 1024)
|
|
48
|
+
throw new types_1.OrchestrationError('ATTACHMENT_TOO_LARGE');
|
|
49
|
+
ref = item.path ? (0, media_1.ingestOrchestrationMedia)(root, agent.id, `${source}-${chatId}`, item.path) : await (0, channel_media_1.receiveChannelMedia)(agent, root, source, chatId, item.ref, fetch, item.size);
|
|
35
50
|
}
|
|
36
51
|
catch (error) {
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
throw
|
|
40
|
-
|
|
52
|
+
const failure = (0, channel_media_error_1.classifyChannelMediaError)(error);
|
|
53
|
+
if (failure.retryable)
|
|
54
|
+
throw failure;
|
|
55
|
+
const name = item.name?.replace(/[\x00-\x1f\x7f]/g, '').slice(0, 200);
|
|
56
|
+
unavailable.push({ code: failure.code, ...(name ? { name } : {}), quoted: Boolean(item.quoted) });
|
|
41
57
|
continue;
|
|
42
58
|
}
|
|
43
59
|
seen.set(key, ref);
|
|
44
60
|
media.push(ref);
|
|
45
61
|
if (item.path && meta.media_ephemeral === '1')
|
|
46
|
-
|
|
62
|
+
discardPaths.add(item.path);
|
|
47
63
|
}
|
|
64
|
+
if (item === primaryDirect)
|
|
65
|
+
primaryDirectMedia = ref;
|
|
48
66
|
if (item.quoted)
|
|
49
67
|
quoted.push(ref);
|
|
50
68
|
details.push({ ref, name: item.name, quoted: Boolean(item.quoted) });
|
|
51
69
|
}
|
|
52
|
-
|
|
70
|
+
if (unavailable.length) {
|
|
71
|
+
const diagnostic = unavailable.some(item => item.quoted) ? 'A quoted attachment is unavailable. Do not claim to have read it.' : 'An attachment is unavailable. Do not claim to have read it.';
|
|
72
|
+
meta.attachment_error = [meta.attachment_error, diagnostic].filter(Boolean).join(' ');
|
|
73
|
+
}
|
|
74
|
+
for (const path of discardPaths)
|
|
75
|
+
discard(path);
|
|
76
|
+
return { media, quoted: [...new Set(quoted)], details, unavailable, primaryDirectMedia };
|
|
53
77
|
}
|
|
54
78
|
//# sourceMappingURL=channel-input-media.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-input-media.js","sourceRoot":"","sources":["../../src/orchestration/channel-input-media.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"channel-input-media.js","sourceRoot":"","sources":["../../src/orchestration/channel-input-media.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OrchestrationError } from './types';
|
|
2
|
+
/** Safe admission diagnostics: never expose provider URLs, bodies, or credentials. */
|
|
3
|
+
export declare class ChannelMediaError extends OrchestrationError {
|
|
4
|
+
readonly retryable: boolean;
|
|
5
|
+
readonly status?: number | undefined;
|
|
6
|
+
readonly retryAfterMs?: number | undefined;
|
|
7
|
+
constructor(code: string, retryable: boolean, status?: number | undefined, retryAfterMs?: number | undefined);
|
|
8
|
+
}
|
|
9
|
+
export declare function classifyChannelMediaError(error: unknown): ChannelMediaError;
|
|
10
|
+
export declare function channelMediaHttpError(status: number, retryAfter?: string | null): ChannelMediaError;
|
|
11
|
+
//# sourceMappingURL=channel-media-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-media-error.d.ts","sourceRoot":"","sources":["../../src/orchestration/channel-media-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,sFAAsF;AACtF,qBAAa,iBAAkB,SAAQ,kBAAkB;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;gBAAnG,IAAI,EAAE,MAAM,EAAW,SAAS,EAAE,OAAO,EAAW,MAAM,CAAC,EAAE,MAAM,YAAA,EAAW,YAAY,CAAC,EAAE,MAAM,YAAA;CAGhH;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAS3E;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,iBAAiB,CAQnG"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChannelMediaError = void 0;
|
|
4
|
+
exports.classifyChannelMediaError = classifyChannelMediaError;
|
|
5
|
+
exports.channelMediaHttpError = channelMediaHttpError;
|
|
6
|
+
const types_1 = require("./types");
|
|
7
|
+
/** Safe admission diagnostics: never expose provider URLs, bodies, or credentials. */
|
|
8
|
+
class ChannelMediaError extends types_1.OrchestrationError {
|
|
9
|
+
constructor(code, retryable, status, retryAfterMs) {
|
|
10
|
+
super(code);
|
|
11
|
+
this.retryable = retryable;
|
|
12
|
+
this.status = status;
|
|
13
|
+
this.retryAfterMs = retryAfterMs;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.ChannelMediaError = ChannelMediaError;
|
|
17
|
+
function classifyChannelMediaError(error) {
|
|
18
|
+
if (error instanceof ChannelMediaError)
|
|
19
|
+
return error;
|
|
20
|
+
if (error instanceof types_1.OrchestrationError && ['INVALID_ATTACHMENT', 'ATTACHMENT_TOO_LARGE', 'ATTACHMENT_NOT_CONFIGURED'].includes(error.code)) {
|
|
21
|
+
return new ChannelMediaError(error.code, false);
|
|
22
|
+
}
|
|
23
|
+
const code = error?.code;
|
|
24
|
+
// Missing source files cannot be recovered by retrying the same reference.
|
|
25
|
+
// Disk, permission and reconciliation errors may recover after operator action.
|
|
26
|
+
return new ChannelMediaError('ATTACHMENT_UNAVAILABLE', !['ENOENT', 'ENOTDIR', 'EISDIR'].includes(code ?? ''));
|
|
27
|
+
}
|
|
28
|
+
function channelMediaHttpError(status, retryAfter) {
|
|
29
|
+
let retryAfterMs;
|
|
30
|
+
if (retryAfter) {
|
|
31
|
+
const seconds = Number(retryAfter);
|
|
32
|
+
const delay = Number.isFinite(seconds) ? seconds * 1000 : Date.parse(retryAfter) - Date.now();
|
|
33
|
+
if (Number.isFinite(delay) && delay >= 0)
|
|
34
|
+
retryAfterMs = Math.min(delay, 24 * 60 * 60 * 1000);
|
|
35
|
+
}
|
|
36
|
+
return new ChannelMediaError('ATTACHMENT_UNAVAILABLE', status === 408 || status === 429 || status >= 500, status, retryAfterMs);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=channel-media-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-media-error.js","sourceRoot":"","sources":["../../src/orchestration/channel-media-error.ts"],"names":[],"mappings":";;;AASA,8DASC;AAED,sDAQC;AA5BD,mCAA6C;AAE7C,sFAAsF;AACtF,MAAa,iBAAkB,SAAQ,0BAAkB;IACvD,YAAY,IAAY,EAAW,SAAkB,EAAW,MAAe,EAAW,YAAqB;QAC7G,KAAK,CAAC,IAAI,CAAC,CAAC;QADqB,cAAS,GAAT,SAAS,CAAS;QAAW,WAAM,GAAN,MAAM,CAAS;QAAW,iBAAY,GAAZ,YAAY,CAAS;IAE/G,CAAC;CACF;AAJD,8CAIC;AAED,SAAgB,yBAAyB,CAAC,KAAc;IACtD,IAAI,KAAK,YAAY,iBAAiB;QAAE,OAAO,KAAK,CAAC;IACrD,IAAI,KAAK,YAAY,0BAAkB,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,2BAA2B,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5I,OAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,IAAI,GAAI,KAA2C,EAAE,IAAI,CAAC;IAChE,2EAA2E;IAC3E,gFAAgF;IAChF,OAAO,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAChH,CAAC;AAED,SAAgB,qBAAqB,CAAC,MAAc,EAAE,UAA0B;IAC9E,IAAI,YAAgC,CAAC;IACrC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9F,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;YAAE,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,IAAI,iBAAiB,CAAC,wBAAwB,EAAE,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;AAClI,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { AgentConfig } from '../types';
|
|
2
2
|
/** Resolve provider-only attachment references before acknowledging receiver ingress. */
|
|
3
|
-
export declare function receiveChannelMedia(agent: AgentConfig, agentsRoot: string, source: string, chatId: string, ref: string, request?: typeof fetch): Promise<string>;
|
|
3
|
+
export declare function receiveChannelMedia(agent: AgentConfig, agentsRoot: string, source: string, chatId: string, ref: string, request?: typeof fetch, size?: number): Promise<string>;
|
|
4
4
|
//# sourceMappingURL=channel-media.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-media.d.ts","sourceRoot":"","sources":["../../src/orchestration/channel-media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"channel-media.d.ts","sourceRoot":"","sources":["../../src/orchestration/channel-media.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvC,yFAAyF;AACzF,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,OAAO,KAAa,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5L"}
|
|
@@ -6,16 +6,39 @@ const path_1 = require("path");
|
|
|
6
6
|
const crypto_1 = require("crypto");
|
|
7
7
|
const types_1 = require("./types");
|
|
8
8
|
const media_1 = require("./media");
|
|
9
|
+
const channel_media_error_1 = require("./channel-media-error");
|
|
9
10
|
/** Resolve provider-only attachment references before acknowledging receiver ingress. */
|
|
10
|
-
async function receiveChannelMedia(agent, agentsRoot, source, chatId, ref, request = fetch) {
|
|
11
|
+
async function receiveChannelMedia(agent, agentsRoot, source, chatId, ref, request = fetch, size) {
|
|
12
|
+
try {
|
|
13
|
+
return await receive(agent, agentsRoot, source, chatId, ref, request, size);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
throw (0, channel_media_error_1.classifyChannelMediaError)(error);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async function receive(agent, agentsRoot, source, chatId, ref, request, size) {
|
|
20
|
+
const limit = (source === 'telegram' ? 20 : 50) * 1024 * 1024;
|
|
21
|
+
if (size !== undefined && (!Number.isSafeInteger(size) || size < 0))
|
|
22
|
+
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
23
|
+
if (size !== undefined && size > limit)
|
|
24
|
+
throw new types_1.OrchestrationError('ATTACHMENT_TOO_LARGE');
|
|
11
25
|
if (!ref || ref.length > 8192)
|
|
12
26
|
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
13
27
|
let url;
|
|
14
28
|
if (source === 'telegram' && agent.telegram?.botToken) {
|
|
15
29
|
const response = await request(`https://api.telegram.org/bot${agent.telegram.botToken}/getFile`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ file_id: ref }), signal: AbortSignal.timeout(10000) });
|
|
16
|
-
if (!response.ok)
|
|
17
|
-
|
|
30
|
+
if (!response.ok) {
|
|
31
|
+
const errorBody = await response.json().catch(() => undefined);
|
|
32
|
+
const retryAfter = response.headers.get('retry-after') ?? (typeof errorBody?.parameters?.retry_after === 'number' ? String(errorBody.parameters.retry_after) : undefined);
|
|
33
|
+
throw (0, channel_media_error_1.channelMediaHttpError)(response.status, retryAfter);
|
|
34
|
+
}
|
|
18
35
|
const body = await response.json();
|
|
36
|
+
if (!body.ok) {
|
|
37
|
+
const status = body.error_code;
|
|
38
|
+
throw status && Number.isInteger(status) && status >= 400 && status <= 599
|
|
39
|
+
? (0, channel_media_error_1.channelMediaHttpError)(status, body.parameters?.retry_after === undefined ? undefined : String(body.parameters.retry_after))
|
|
40
|
+
: new channel_media_error_1.ChannelMediaError('ATTACHMENT_UNAVAILABLE', true);
|
|
41
|
+
}
|
|
19
42
|
const path = body.result?.file_path;
|
|
20
43
|
if (!body.ok || !path || path.split('/').some(part => part === '..') || !/^[A-Za-z0-9_./-]+$/.test(path))
|
|
21
44
|
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
@@ -24,7 +47,13 @@ async function receiveChannelMedia(agent, agentsRoot, source, chatId, ref, reque
|
|
|
24
47
|
url = `https://api.telegram.org/file/bot${agent.telegram.botToken}/${path}`;
|
|
25
48
|
}
|
|
26
49
|
else if (source === 'discord') {
|
|
27
|
-
|
|
50
|
+
let parsed;
|
|
51
|
+
try {
|
|
52
|
+
parsed = new URL(ref);
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
56
|
+
}
|
|
28
57
|
if (parsed.protocol !== 'https:' || parsed.username || parsed.password || !['cdn.discordapp.com', 'media.discordapp.net'].includes(parsed.hostname))
|
|
29
58
|
throw new types_1.OrchestrationError('INVALID_ATTACHMENT');
|
|
30
59
|
url = parsed.href;
|
|
@@ -32,9 +61,10 @@ async function receiveChannelMedia(agent, agentsRoot, source, chatId, ref, reque
|
|
|
32
61
|
else
|
|
33
62
|
throw new types_1.OrchestrationError('ATTACHMENT_NOT_CONFIGURED');
|
|
34
63
|
const response = await request(url, { redirect: 'error', signal: AbortSignal.timeout(30000) });
|
|
35
|
-
if (!response.ok
|
|
36
|
-
throw
|
|
37
|
-
|
|
64
|
+
if (!response.ok)
|
|
65
|
+
throw (0, channel_media_error_1.channelMediaHttpError)(response.status, response.headers.get('retry-after'));
|
|
66
|
+
if (!response.body)
|
|
67
|
+
throw new channel_media_error_1.ChannelMediaError('ATTACHMENT_UNAVAILABLE', true);
|
|
38
68
|
const reader = response.body.getReader(), chunks = [];
|
|
39
69
|
let bytes = 0;
|
|
40
70
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel-media.js","sourceRoot":"","sources":["../../src/orchestration/channel-media.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"channel-media.js","sourceRoot":"","sources":["../../src/orchestration/channel-media.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export interface IntakeChoice {
|
|
|
7
7
|
clarification?: string;
|
|
8
8
|
task_id?: string;
|
|
9
9
|
}
|
|
10
|
-
export declare const INTAKE_OVERLAY = "Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.\nBefore any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.\nready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed and
|
|
10
|
+
export declare const INTAKE_OVERLAY = "Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.\nBefore any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.\nready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed to the user and speech is attempted when enabled; it is not a private classification, instruction to yourself, or reasoning field. Do not add a waiting period. A successful acknowledgement permits dispatch even when audio is unavailable. If a task tool fails, explain the failure and never claim work started without a successful receipt.\nwait: the user is supplying materials without an action, promises an attachment that has not arrived, or says the instruction will follow. Inspect available images now. Preserve useful facts in preparation, clearly distinguishing observed contents from instructions. Supply one short clarification to ask only if no further input arrives for the configured intake wait interval. Do not speculate about unavailable link contents. End this turn without user-facing text; the gateway owns the waiting timer. Each new item will be read as it arrives.\nupdate: the user changes or supplements a specific existing task. Supply its exact task_id and acknowledge the change; use task_update/task_answer, not an independent duplicate. If the target is ambiguous, ask a precise question instead of guessing.\nNever create work merely to acknowledge material. A complete instruction arriving after materials is ready now; do not request another waiting interval. Preserve all unchanged requirements and refer to the original input/attachment IDs. Urgent stop or prohibition may call task_cancel before acknowledgement; do not delay fencing unsafe work for speech playback.";
|
|
11
11
|
/** Durable preparation is scoped by conversation AND authenticated principal.
|
|
12
12
|
* Source inputs remain canonical; this cache only supplements their full contents. */
|
|
13
13
|
export declare class ConversationIntake {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-intake.d.ts","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"conversation-intake.d.ts","sourceRoot":"","sources":["../../src/orchestration/conversation-intake.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAClC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,cAAc,ioEAKgV,CAAC;AAE5W;sFACsF;AACtF,qBAAa,kBAAkB;IACjB,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,kBAAkB;IAQ7C,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAMvE,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO5B;sEACkE;IAClE,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,YAAY;;;;;;cA7C9C,OAAO,GAAG,MAAM,GAAG,QAAQ;kBAIvB,MAAM;;IAqEhB,GAAG,CAAC,MAAM,SAAO,EAAE,GAAG,SAAa;CAUpC"}
|
|
@@ -5,7 +5,7 @@ const store_1 = require("./store");
|
|
|
5
5
|
const types_1 = require("./types");
|
|
6
6
|
exports.INTAKE_OVERLAY = `Use conversation_intake only for executable work, incomplete materials, or amendments to an existing task. Greetings, introductions, casual conversation and questions you can answer directly need one normal answer: do not call conversation_intake or emit a separate acknowledgement for them.
|
|
7
7
|
Before any work mutation, use conversation_intake to decide how to handle the user's latest input together with pending materials and current tasks.
|
|
8
|
-
ready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed and
|
|
8
|
+
ready: the requested executable action and required material are complete. Supply a brief, specific acknowledgement addressed directly to the user, in their language and your existing persona. This text is immediately displayed to the user and speech is attempted when enabled; it is not a private classification, instruction to yourself, or reasoning field. Do not add a waiting period. A successful acknowledgement permits dispatch even when audio is unavailable. If a task tool fails, explain the failure and never claim work started without a successful receipt.
|
|
9
9
|
wait: the user is supplying materials without an action, promises an attachment that has not arrived, or says the instruction will follow. Inspect available images now. Preserve useful facts in preparation, clearly distinguishing observed contents from instructions. Supply one short clarification to ask only if no further input arrives for the configured intake wait interval. Do not speculate about unavailable link contents. End this turn without user-facing text; the gateway owns the waiting timer. Each new item will be read as it arrives.
|
|
10
10
|
update: the user changes or supplements a specific existing task. Supply its exact task_id and acknowledge the change; use task_update/task_answer, not an independent duplicate. If the target is ambiguous, ask a precise question instead of guessing.
|
|
11
11
|
Never create work merely to acknowledge material. A complete instruction arriving after materials is ready now; do not request another waiting interval. Preserve all unchanged requirements and refer to the original input/attachment IDs. Urgent stop or prohibition may call task_cancel before acknowledgement; do not delay fencing unsafe work for speech playback.`;
|
|
@@ -24,10 +24,13 @@ export declare class DeliveryOutbox {
|
|
|
24
24
|
private readonly store;
|
|
25
25
|
private readonly send;
|
|
26
26
|
private active?;
|
|
27
|
+
private activeText?;
|
|
27
28
|
constructor(store: OrchestrationStore, send: ChannelSender);
|
|
28
29
|
/** Called inside the decision commit transaction. Each chunk has its own receipt. */
|
|
29
30
|
enqueue(responseId: string, bindingId: string, text: string, controls?: DeliveryControl[]): void;
|
|
30
31
|
enqueueSpeech(responseId: string, bindingId: string, speech: SpeechDelivery): void;
|
|
32
|
+
/** Text has its own serialized lane so slow speech cannot block acknowledgements. */
|
|
33
|
+
tickText(): Promise<void>;
|
|
31
34
|
tick(): Promise<void>;
|
|
32
35
|
private run;
|
|
33
36
|
}
|