orquesta-agent 0.2.121 → 0.2.122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/coordination.d.ts.map +1 -1
- package/dist/coordination.js +35 -13
- package/dist/coordination.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUhE;
|
|
1
|
+
{"version":3,"file":"coordination.d.ts","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAmBA,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CACxB;AAID,+EAA+E;AAC/E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAUhE;AA2ED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAqDnG"}
|
package/dist/coordination.js
CHANGED
|
@@ -43,6 +43,24 @@ async function rr(spec, path, init) {
|
|
|
43
43
|
* short channel reply given the recent history. Returns null if it has nothing
|
|
44
44
|
* to say. Robust across models because it's text-in/text-out.
|
|
45
45
|
*/
|
|
46
|
+
/**
|
|
47
|
+
* Decide IN CODE whether a reply is owed (don't let the model wriggle out with
|
|
48
|
+
* NOREPLY on a direct request). A reply is owed when there's a message from
|
|
49
|
+
* someone else, addressed to everyone or to me, that arrived AFTER my own last
|
|
50
|
+
* message on the channel. Operator messages ("[👤 OPERATOR]") always count.
|
|
51
|
+
*/
|
|
52
|
+
function replyIsOwed(spec, history) {
|
|
53
|
+
const mine = history.filter(m => m.from === spec.callsign).map(m => m.at ?? 0);
|
|
54
|
+
const lastMineAt = mine.length ? Math.max(...mine) : 0;
|
|
55
|
+
return history.some(m => m.from && m.from !== spec.callsign &&
|
|
56
|
+
(m.at ?? 0) > lastMineAt &&
|
|
57
|
+
(m.to === 'all' || m.to === spec.callsign || /\[👤 OPERATOR\]/.test(m.text || '')));
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Ask the model (via the Batuta proxy, plain completion — no tools) to WRITE the
|
|
61
|
+
* reply. The decision of whether to reply is made in code (replyIsOwed); here
|
|
62
|
+
* the model only drafts the text. Text-in/text-out → robust across all models.
|
|
63
|
+
*/
|
|
46
64
|
async function draftReply(spec, history) {
|
|
47
65
|
const apiUrl = (process.env.ORQUESTA_API_URL || 'https://getorquesta.com').replace(/\/$/, '');
|
|
48
66
|
const token = process.env.ORQUESTA_TOKEN;
|
|
@@ -51,9 +69,9 @@ async function draftReply(spec, history) {
|
|
|
51
69
|
const transcript = history
|
|
52
70
|
.filter(m => m.from && m.from !== spec.callsign)
|
|
53
71
|
.slice(-12)
|
|
54
|
-
.map(m => `${m.from
|
|
72
|
+
.map(m => `${m.from ?? '?'}: ${m.text ?? ''}`)
|
|
55
73
|
.join('\n');
|
|
56
|
-
const sys = `You are the Orquesta coordination agent for the project "${spec.projectName}", callsign "${spec.callsign}", on a RogerThat channel with peer agents and a human operator. Messages prefixed "[👤 OPERATOR]" are your operator (authoritative); other callsigns are peers.
|
|
74
|
+
const sys = `You are the Orquesta coordination agent for the project "${spec.projectName}", callsign "${spec.callsign}", on a RogerThat channel with peer agents and a human operator. Messages prefixed "[👤 OPERATOR]" are your operator (authoritative); other callsigns are peers. Someone has addressed you or the channel and you MUST answer. Write ONE short reply (1-3 sentences, plain text, no markdown) — answer the status request / question / hand-off directly. Do not refuse, do not ask for confirmation, do not output NOREPLY; just answer as ${spec.callsign}.`;
|
|
57
75
|
const user = `Recent channel messages:\n${transcript || '(empty)'}\n\nYour reply as ${spec.callsign}:`;
|
|
58
76
|
try {
|
|
59
77
|
const res = await fetch(`${apiUrl}/api/v1/chat/completions`, {
|
|
@@ -70,9 +88,10 @@ async function draftReply(spec, history) {
|
|
|
70
88
|
return null;
|
|
71
89
|
}
|
|
72
90
|
const j = await res.json();
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
91
|
+
let text = (j.choices?.[0]?.message?.content || '').trim().replace(/^NOREPLY\b[:.\s]*/i, '').trim();
|
|
92
|
+
// Model still refused → send a safe default so the operator isn't left hanging.
|
|
93
|
+
if (!text)
|
|
94
|
+
text = `${spec.callsign} (${spec.projectName}): online and standing by.`;
|
|
76
95
|
return text.slice(0, 1500);
|
|
77
96
|
}
|
|
78
97
|
catch (e) {
|
|
@@ -108,18 +127,20 @@ export async function runCoordination(spec, log) {
|
|
|
108
127
|
};
|
|
109
128
|
let replied = false;
|
|
110
129
|
try {
|
|
111
|
-
// 2. HISTORY →
|
|
130
|
+
// 2. HISTORY → reply if one is owed (decided in code, not by the model)
|
|
112
131
|
const hr = await rr(spec, `/api/channels/${spec.channelId}/history?limit=12`);
|
|
113
|
-
const hist = (await hr.json().catch(() => ({})));
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
132
|
+
const hist = (await hr.json().catch(() => ({}))).history || [];
|
|
133
|
+
if (replyIsOwed(spec, hist)) {
|
|
134
|
+
const reply = await draftReply(spec, hist);
|
|
135
|
+
if (reply) {
|
|
136
|
+
await send(reply);
|
|
137
|
+
replied = true;
|
|
138
|
+
log(`Replied: ${reply.slice(0, 120)}`);
|
|
139
|
+
}
|
|
119
140
|
}
|
|
120
141
|
else {
|
|
121
142
|
await send(`${spec.callsign} re-joined, standing by`, 'status');
|
|
122
|
-
log('
|
|
143
|
+
log('Nothing addressed to me since my last message — announced presence');
|
|
123
144
|
}
|
|
124
145
|
// 3. LISTEN briefly for an immediate follow-up (bounded; never loops forever)
|
|
125
146
|
for (let i = 0; i < 3; i++) {
|
|
@@ -128,6 +149,7 @@ export async function runCoordination(spec, log) {
|
|
|
128
149
|
const fresh = (data.messages || []).filter(m => m.from && m.from !== spec.callsign);
|
|
129
150
|
if (fresh.length === 0)
|
|
130
151
|
continue;
|
|
152
|
+
// A peer/operator spoke after we joined → a reply is owed.
|
|
131
153
|
const follow = await draftReply(spec, fresh);
|
|
132
154
|
if (follow) {
|
|
133
155
|
await send(follow);
|
package/dist/coordination.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAYrC,MAAM,SAAS,GAAG,wCAAwC,CAAA;AAE1D,+EAA+E;AAC/E,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACjC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAc,CAAA;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAA;QACxF,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAID,KAAK,UAAU,EAAE,CAAC,IAAe,EAAE,IAAY,EAAE,IAAkB;IACjE,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,EAAE;QACvD,GAAG,IAAI;QACP,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,YAAY,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,EAAE;KACxH,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,UAAU,CAAC,IAAe,EAAE,OAAyB;IAClE,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,yBAAyB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC7F,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAA;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,UAAU,GAAG,OAAO;SACvB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC;SAC/C,KAAK,CAAC,CAAC,EAAE,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"coordination.js","sourceRoot":"","sources":["../src/coordination.ts"],"names":[],"mappings":"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"}
|