@t4h/agent-runtime 0.1.0 → 0.2.0
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 +77 -5
- package/catalog/agents.catalog.yaml +123 -0
- package/dist/catalog.d.ts +13 -0
- package/dist/catalog.js +39 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli.js +33 -8
- package/dist/cli.js.map +1 -1
- package/dist/connector.d.ts +13 -0
- package/dist/connector.js +208 -0
- package/dist/connector.js.map +1 -0
- package/dist/env.d.ts +56 -0
- package/dist/env.js +134 -0
- package/dist/env.js.map +1 -0
- package/dist/evals.js +1 -1
- package/dist/host.d.ts +111 -13
- package/dist/host.js +251 -43
- package/dist/host.js.map +1 -1
- package/dist/index.d.ts +16 -4
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/notifier.d.ts +1 -1
- package/dist/policy.js +12 -1
- package/dist/policy.js.map +1 -1
- package/dist/prompt.d.ts +8 -0
- package/dist/prompt.js +10 -3
- package/dist/prompt.js.map +1 -1
- package/dist/round.js +2 -1
- package/dist/round.js.map +1 -1
- package/dist/runtime-tools.d.ts +1 -1
- package/dist/runtime-tools.js +3 -3
- package/dist/runtime-tools.js.map +1 -1
- package/dist/signature.d.ts +34 -0
- package/dist/signature.js +87 -0
- package/dist/signature.js.map +1 -0
- package/dist/start.d.ts +31 -0
- package/dist/start.js +109 -0
- package/dist/start.js.map +1 -0
- package/dist/store/long-term.d.ts +63 -3
- package/dist/store/long-term.js +71 -11
- package/dist/store/long-term.js.map +1 -1
- package/dist/store/migrations.d.ts +1 -1
- package/dist/store/migrations.js +24 -0
- package/dist/store/migrations.js.map +1 -1
- package/dist/wiring.d.ts +11 -0
- package/dist/wiring.js +32 -0
- package/dist/wiring.js.map +1 -0
- package/package.json +19 -12
- package/proto/t4h/agents/v1/agents.proto +176 -0
package/dist/policy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt.d.ts
CHANGED
|
@@ -16,9 +16,17 @@ export declare function itemPrompt(opts: {
|
|
|
16
16
|
history: ActionRow[];
|
|
17
17
|
corrections: ActionRow[];
|
|
18
18
|
}): string;
|
|
19
|
+
/**
|
|
20
|
+
* A conversa. O id e as trocas anteriores do fio vêm de quem chama: vão dentro do envelope
|
|
21
|
+
* de dados não confiáveis, como a mensagem.
|
|
22
|
+
*/
|
|
19
23
|
export declare function conversationPrompt(opts: {
|
|
20
24
|
asker: string;
|
|
21
25
|
askerKind: 'person' | 'agent';
|
|
22
26
|
message: string;
|
|
23
27
|
conversationId: string;
|
|
28
|
+
previous?: Array<{
|
|
29
|
+
message: string;
|
|
30
|
+
answer: string | null;
|
|
31
|
+
}>;
|
|
24
32
|
}): string;
|
package/dist/prompt.js
CHANGED
|
@@ -72,13 +72,20 @@ export function itemPrompt(opts) {
|
|
|
72
72
|
}
|
|
73
73
|
return parts.join('\n\n');
|
|
74
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* A conversa. O id e as trocas anteriores do fio vêm de quem chama: vão dentro do envelope
|
|
77
|
+
* de dados não confiáveis, como a mensagem.
|
|
78
|
+
*/
|
|
75
79
|
export function conversationPrompt(opts) {
|
|
76
|
-
|
|
80
|
+
const previous = opts.previous?.length
|
|
81
|
+
? `\n\nTrocas anteriores desta conversa, com a mesma pessoa (mais antiga primeiro):\n${untrusted('conversa anterior', opts.previous.map((p) => ({ pergunta: p.message, resposta: p.answer ?? '' })))}`
|
|
82
|
+
: '';
|
|
83
|
+
return `# Conversa
|
|
77
84
|
Quem pergunta: ${opts.asker} (${opts.askerKind === 'agent' ? 'outro agente' : 'pessoa'}).
|
|
78
85
|
Nesta conversa você só lê, com o seu próprio acesso. Para agir, a demanda entra como item de uma rotina.
|
|
79
86
|
Você responde como um colega: compartilhe o necessário para a pergunta, nunca dado pessoal (CPF, salário, endereço), e na dúvida sobre sensibilidade, escale.
|
|
80
|
-
Para dizer o que você fez e por quê, consulte ${RUNTIME_SERVER}.history: é o seu registro oficial
|
|
87
|
+
Para dizer o que você fez e por quê, consulte ${RUNTIME_SERVER}.history: é o seu registro oficial.${previous}
|
|
81
88
|
|
|
82
|
-
${untrusted('mensagem', { text: opts.message })}`;
|
|
89
|
+
${untrusted('mensagem', { conversa: opts.conversationId, text: opts.message })}`;
|
|
83
90
|
}
|
|
84
91
|
//# sourceMappingURL=prompt.js.map
|
package/dist/prompt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/round.js
CHANGED
|
@@ -33,7 +33,8 @@ export async function runRound(d) {
|
|
|
33
33
|
let roundId;
|
|
34
34
|
let roundError;
|
|
35
35
|
try {
|
|
36
|
-
|
|
36
|
+
// Mesmo prazo do lock: item `working` mais velho que isso ficou de uma rodada que caiu.
|
|
37
|
+
const batch = await d.store.leaseBatch(m.id, m.limits.itemsPerRound, m.limits.roundTimeoutSec + 60);
|
|
37
38
|
if (!batch.length)
|
|
38
39
|
return { ...report, skipped: 'empty' };
|
|
39
40
|
roundId = await d.store.startRound(m.id);
|
package/dist/round.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"round.js","sourceRoot":"","sources":["../src/round.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMzC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,YAAY,EAAgB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAsBlD,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,MAAgC;IAC9E,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAC3C,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;SACtF,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,CAAY;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC3B,MAAM,MAAM,GAAgB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAEtD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,IAAI,IAAI;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC;IAEvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,IAAI,SAAS,UAAU,EAAE,EAAE,CAAC;IACnD,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;QAAE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IAEnH,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,OAA2B,CAAC;IAChC,IAAI,UAA8B,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"round.js","sourceRoot":"","sources":["../src/round.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime-tools.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ import type { LoadedAgent } from './manifest.js';
|
|
|
10
10
|
import type { Notifier } from './notifier.js';
|
|
11
11
|
import { type PolicyGate } from './policy.js';
|
|
12
12
|
import type { ShortTermMemory } from './short-term.js';
|
|
13
|
-
import type
|
|
13
|
+
import { type LongTermStore } from './store/long-term.js';
|
|
14
14
|
export interface ItemOutcome {
|
|
15
15
|
status: 'done' | 'waiting';
|
|
16
16
|
summary: string;
|
package/dist/runtime-tools.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
import { createSdkMcpServer, tool } from '@anthropic-ai/claude-agent-sdk';
|
|
9
9
|
import { z } from 'zod';
|
|
10
10
|
import { RUNTIME_SERVER } from './policy.js';
|
|
11
|
+
import { CONVERSATION_ROUTINE } from './store/long-term.js';
|
|
11
12
|
const text = (t, isError = false) => ({ content: [{ type: 'text', text: t }], ...(isError ? { isError } : {}) });
|
|
12
13
|
/** Estado das ferramentas para um item (ou uma conversa). */
|
|
13
14
|
export class RuntimeTools {
|
|
@@ -67,11 +68,10 @@ export class RuntimeTools {
|
|
|
67
68
|
history: async (a) => {
|
|
68
69
|
const rows = await this.d.store.history(this.d.agent.manifest.id, {
|
|
69
70
|
...(a.subject ? { subject: a.subject } : {}),
|
|
71
|
+
excludeRoutine: CONVERSATION_ROUTINE,
|
|
70
72
|
limit: Math.min(a.limit ?? 20, 50),
|
|
71
73
|
});
|
|
72
|
-
const lines = rows
|
|
73
|
-
.filter((r) => r.routine !== '_conversation')
|
|
74
|
-
.map((r) => `#${r.id} ${new Date(r.created_at).toISOString().slice(0, 16)} ${r.subject ?? '-'} ${r.tool} (${r.mode}, ${r.status})${r.reason ? ` motivo: ${r.reason}` : ''}${r.decided_by ? ` ${r.status === 'corrected' ? 'corrigida' : r.status === 'rejected' ? 'recusada' : 'aprovada'} por ${r.decided_by}` : ''}${r.note ? ` nota: ${r.note}` : ''}`);
|
|
74
|
+
const lines = rows.map((r) => `#${r.id} ${new Date(r.created_at).toISOString().slice(0, 16)} ${r.subject ?? '-'} ${r.tool} (${r.mode}, ${r.status})${r.reason ? ` motivo: ${r.reason}` : ''}${r.decided_by ? ` ${r.status === 'corrected' ? 'corrigida' : r.status === 'rejected' ? 'recusada' : 'aprovada'} por ${r.decided_by}` : ''}${r.note ? ` nota: ${r.note}` : ''}`);
|
|
75
75
|
return text(lines.length ? lines.join('\n') : 'Nenhuma ação registrada.');
|
|
76
76
|
},
|
|
77
77
|
ask_agent: async (a) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tools.js","sourceRoot":"","sources":["../src/runtime-tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAuC,MAAM,gCAAgC,CAAC;AAC/G,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-tools.js","sourceRoot":"","sources":["../src/runtime-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const SOURCE_HEADER = "x-t4h-source";
|
|
2
|
+
export declare const SIGNATURE_HEADER = "x-t4h-signature";
|
|
3
|
+
export declare const SIGNATURE_TOLERANCE_SEC = 300;
|
|
4
|
+
/** Fonte do evento: vira prefixo do `source_id` (dedup por fonte) e coluna `source`. */
|
|
5
|
+
export declare const SOURCE_PATTERN: RegExp;
|
|
6
|
+
/** Fonte usada fora de produção quando não há segredo nem header de fonte. */
|
|
7
|
+
export declare const UNSIGNED_SOURCE = "local";
|
|
8
|
+
/**
|
|
9
|
+
* `fonte1=segredo1,fonte2=segredo2`. Entrada malformada falha (fail-fast no boot). A
|
|
10
|
+
* mensagem de erro vai para o log: diz a posição e, se for válido, o nome da fonte, nunca
|
|
11
|
+
* o conteúdo da entrada (que pode ser só o segredo, colado sem `fonte=`).
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseEventSecrets(raw: string | undefined): Map<string, string>;
|
|
14
|
+
/** Monta o header `x-t4h-signature` (para quem envia e para testes). */
|
|
15
|
+
export declare function signEvent(secret: string, rawBody: string, t?: number): string;
|
|
16
|
+
export type SignatureCheck = {
|
|
17
|
+
ok: true;
|
|
18
|
+
source: string;
|
|
19
|
+
} | {
|
|
20
|
+
ok: false;
|
|
21
|
+
reason: string;
|
|
22
|
+
};
|
|
23
|
+
export interface VerifyEventOptions {
|
|
24
|
+
raw: string;
|
|
25
|
+
source: string | string[] | undefined;
|
|
26
|
+
signature: string | string[] | undefined;
|
|
27
|
+
secrets: ReadonlyMap<string, string>;
|
|
28
|
+
/** Sem segredos, só aceita sem assinatura fora de produção. */
|
|
29
|
+
production: boolean;
|
|
30
|
+
/** Unix em segundos. Padrão: agora. */
|
|
31
|
+
now?: number;
|
|
32
|
+
toleranceSec?: number;
|
|
33
|
+
}
|
|
34
|
+
export declare function verifyEventSignature(o: VerifyEventOptions): SignatureCheck;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assinatura dos eventos que chegam pelo webhook.
|
|
3
|
+
*
|
|
4
|
+
* x-t4h-source: <fonte>
|
|
5
|
+
* x-t4h-signature: t=<unix s>,v1=<hex>
|
|
6
|
+
* v1 = HMAC-SHA256(segredo da fonte, "<t>.<corpo cru>")
|
|
7
|
+
*
|
|
8
|
+
* Cada fonte tem o próprio segredo (`EVENTS_HMAC_SECRETS="fonte1=s1,fonte2=s2"`): vazou um,
|
|
9
|
+
* troca um. O `t` entra no HMAC e tem tolerância de 5 minutos, para um evento capturado
|
|
10
|
+
* não ser reenviado depois. Mais de um `v1` no header vale (troca de segredo sem janela).
|
|
11
|
+
*/
|
|
12
|
+
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
13
|
+
export const SOURCE_HEADER = 'x-t4h-source';
|
|
14
|
+
export const SIGNATURE_HEADER = 'x-t4h-signature';
|
|
15
|
+
export const SIGNATURE_TOLERANCE_SEC = 300;
|
|
16
|
+
/** Fonte do evento: vira prefixo do `source_id` (dedup por fonte) e coluna `source`. */
|
|
17
|
+
export const SOURCE_PATTERN = /^[a-z0-9][a-z0-9_.-]{0,63}$/;
|
|
18
|
+
/** Fonte usada fora de produção quando não há segredo nem header de fonte. */
|
|
19
|
+
export const UNSIGNED_SOURCE = 'local';
|
|
20
|
+
/**
|
|
21
|
+
* `fonte1=segredo1,fonte2=segredo2`. Entrada malformada falha (fail-fast no boot). A
|
|
22
|
+
* mensagem de erro vai para o log: diz a posição e, se for válido, o nome da fonte, nunca
|
|
23
|
+
* o conteúdo da entrada (que pode ser só o segredo, colado sem `fonte=`).
|
|
24
|
+
*/
|
|
25
|
+
export function parseEventSecrets(raw) {
|
|
26
|
+
const out = new Map();
|
|
27
|
+
let position = 0;
|
|
28
|
+
for (const part of (raw ?? '').split(',')) {
|
|
29
|
+
const entry = part.trim();
|
|
30
|
+
if (!entry)
|
|
31
|
+
continue;
|
|
32
|
+
position++;
|
|
33
|
+
const eq = entry.indexOf('=');
|
|
34
|
+
const source = eq > 0 ? entry.slice(0, eq).trim() : '';
|
|
35
|
+
const secret = eq > 0 ? entry.slice(eq + 1).trim() : '';
|
|
36
|
+
if (!SOURCE_PATTERN.test(source) || !secret) {
|
|
37
|
+
const which = SOURCE_PATTERN.test(source) ? ` (fonte "${source}" sem segredo)` : '';
|
|
38
|
+
throw new Error(`EVENTS_HMAC_SECRETS: entrada #${position} inválida${which}: use fonte=segredo, fonte em ${SOURCE_PATTERN}`);
|
|
39
|
+
}
|
|
40
|
+
if (out.has(source))
|
|
41
|
+
throw new Error(`EVENTS_HMAC_SECRETS: fonte "${source}" repetida`);
|
|
42
|
+
out.set(source, secret);
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/** Monta o header `x-t4h-signature` (para quem envia e para testes). */
|
|
47
|
+
export function signEvent(secret, rawBody, t = Math.floor(Date.now() / 1000)) {
|
|
48
|
+
return `t=${t},v1=${createHmac('sha256', secret).update(`${t}.${rawBody}`).digest('hex')}`;
|
|
49
|
+
}
|
|
50
|
+
export function verifyEventSignature(o) {
|
|
51
|
+
const source = typeof o.source === 'string' ? o.source.trim() : undefined;
|
|
52
|
+
if (source !== undefined && !SOURCE_PATTERN.test(source))
|
|
53
|
+
return { ok: false, reason: 'fonte inválida' };
|
|
54
|
+
if (o.secrets.size === 0) {
|
|
55
|
+
if (o.production)
|
|
56
|
+
return { ok: false, reason: 'sem segredo configurado' };
|
|
57
|
+
return { ok: true, source: source || UNSIGNED_SOURCE };
|
|
58
|
+
}
|
|
59
|
+
if (!source)
|
|
60
|
+
return { ok: false, reason: `falta o header ${SOURCE_HEADER}` };
|
|
61
|
+
const secret = o.secrets.get(source);
|
|
62
|
+
if (!secret)
|
|
63
|
+
return { ok: false, reason: 'fonte desconhecida' };
|
|
64
|
+
if (typeof o.signature !== 'string')
|
|
65
|
+
return { ok: false, reason: 'sem assinatura' };
|
|
66
|
+
let t;
|
|
67
|
+
const v1 = [];
|
|
68
|
+
for (const part of o.signature.split(',')) {
|
|
69
|
+
const [k, v] = part.trim().split('=', 2);
|
|
70
|
+
if (k === 't' && v && /^\d{1,12}$/.test(v))
|
|
71
|
+
t = Number(v);
|
|
72
|
+
else if (k === 'v1' && v && /^[0-9a-f]{64}$/.test(v))
|
|
73
|
+
v1.push(v);
|
|
74
|
+
}
|
|
75
|
+
if (t === undefined || !v1.length)
|
|
76
|
+
return { ok: false, reason: 'assinatura malformada' };
|
|
77
|
+
const now = o.now ?? Math.floor(Date.now() / 1000);
|
|
78
|
+
if (Math.abs(now - t) > (o.toleranceSec ?? SIGNATURE_TOLERANCE_SEC))
|
|
79
|
+
return { ok: false, reason: 'assinatura fora da janela de tempo' };
|
|
80
|
+
const expected = Buffer.from(createHmac('sha256', secret).update(`${t}.${o.raw}`).digest('hex'));
|
|
81
|
+
// Compara todos, sem sair no primeiro: o tempo não diz qual candidato chegou perto.
|
|
82
|
+
let match = false;
|
|
83
|
+
for (const candidate of v1)
|
|
84
|
+
match = timingSafeEqual(Buffer.from(candidate), expected) || match;
|
|
85
|
+
return match ? { ok: true, source } : { ok: false, reason: 'assinatura não confere' };
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=signature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
|
package/dist/start.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type Brain } from './brain.js';
|
|
2
|
+
import { type AgentEnv } from './env.js';
|
|
3
|
+
import { AgentHost } from './host.js';
|
|
4
|
+
import { type Notifier } from './notifier.js';
|
|
5
|
+
import { type Wiring } from './wiring.js';
|
|
6
|
+
export interface StartAgentsOptions {
|
|
7
|
+
agentsDir: string;
|
|
8
|
+
pluginsDir?: string;
|
|
9
|
+
/** Substitui o gateway (modo local, stub). Em produção, recusado: tudo passa pelo gateway. */
|
|
10
|
+
wiring?: Wiring;
|
|
11
|
+
notifier?: Notifier;
|
|
12
|
+
brain?: Brain;
|
|
13
|
+
/** Padrão: `process.env`. */
|
|
14
|
+
env?: NodeJS.ProcessEnv;
|
|
15
|
+
/** Liga SIGINT/SIGTERM ao `stop()` e sai do processo no fim. Padrão: true. */
|
|
16
|
+
handleSignals?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* O conector recusa passaporte sem vínculo com a chamada. Padrão: o ambiente
|
|
19
|
+
* (`PROVIDER_REQUIRE_CALL_BINDING=1`); desligado, como no SDK de providers.
|
|
20
|
+
*/
|
|
21
|
+
requireCallBinding?: boolean;
|
|
22
|
+
}
|
|
23
|
+
export interface StartedAgents {
|
|
24
|
+
host: AgentHost;
|
|
25
|
+
env: AgentEnv;
|
|
26
|
+
eventsPort: number;
|
|
27
|
+
/** Porta do conector gRPC, se ele subiu. */
|
|
28
|
+
connectorPort?: number;
|
|
29
|
+
stop(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
export declare function startAgents(opts: StartAgentsOptions): Promise<StartedAgents>;
|
package/dist/start.js
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Boot de um repositório de agentes: um processo com todos os agentes da pasta.
|
|
3
|
+
*
|
|
4
|
+
* - ambiente validado no boot (`loadAgentEnv`);
|
|
5
|
+
* - Postgres (PGlite fora de produção) com as migrações;
|
|
6
|
+
* - entrada de eventos por webhook assinado (EVENTS_PORT, padrão 8080);
|
|
7
|
+
* - despertar por evento novo, cron de cada agente e agenda das rotinas;
|
|
8
|
+
* - o conector `agents_<círculo>` para o gateway (gRPC, PORT, padrão 50051);
|
|
9
|
+
* - SIGINT/SIGTERM param na ordem: conector, entrada, conversas e rodadas em andamento,
|
|
10
|
+
* banco.
|
|
11
|
+
*
|
|
12
|
+
* O entrypoint do repositório do círculo fica com poucas linhas: `startAgents({ agentsDir })`.
|
|
13
|
+
*/
|
|
14
|
+
import { createProviderServer, loadProviderContract } from '@t4h/mcp-provider-sdk';
|
|
15
|
+
import { ClaudeBrain } from './brain.js';
|
|
16
|
+
import { agentsConnectorHandlers, agentsProtoPath, AGENTS_SERVICE_FQN } from './connector.js';
|
|
17
|
+
import { loadAgentEnv } from './env.js';
|
|
18
|
+
import { AgentHost } from './host.js';
|
|
19
|
+
import { loadAgents } from './manifest.js';
|
|
20
|
+
import { consoleNotifier } from './notifier.js';
|
|
21
|
+
import { LongTermStore } from './store/long-term.js';
|
|
22
|
+
import { sqlFromUrl } from './store/sql.js';
|
|
23
|
+
import { gatewayWiring } from './wiring.js';
|
|
24
|
+
export async function startAgents(opts) {
|
|
25
|
+
const agents = loadAgents(opts.agentsDir);
|
|
26
|
+
const env = loadAgentEnv(agents, opts.env ?? process.env);
|
|
27
|
+
if (env.isProduction && opts.wiring)
|
|
28
|
+
throw new Error('wiring próprio não vale em produção: os agentes usam os sistemas só pelo gateway');
|
|
29
|
+
if (!opts.wiring && !env.gateway)
|
|
30
|
+
throw new Error('sem GATEWAY_URL: defina o gateway ou passe um wiring local (stub)');
|
|
31
|
+
const wiring = opts.wiring ?? gatewayWiring(agents, env);
|
|
32
|
+
// Sem notificador, bloqueio, rebaixamento e proposta só aparecem no stdout.
|
|
33
|
+
if (env.isProduction && !opts.notifier) {
|
|
34
|
+
console.warn('notifier: nenhum notificador configurado; avisos de bloqueio, rebaixamento, proposta e exceção só vão para o stdout. Passe `notifier` no startAgents.');
|
|
35
|
+
}
|
|
36
|
+
const store = new LongTermStore(await sqlFromUrl(env.databaseUrl));
|
|
37
|
+
await store.migrate();
|
|
38
|
+
const host = new AgentHost({
|
|
39
|
+
agents,
|
|
40
|
+
store,
|
|
41
|
+
brain: opts.brain ?? new ClaudeBrain({ debug: env.debug }),
|
|
42
|
+
notifier: opts.notifier ?? consoleNotifier,
|
|
43
|
+
...(opts.pluginsDir ? { pluginsDir: opts.pluginsDir } : {}),
|
|
44
|
+
askWaitMs: env.askWaitMs,
|
|
45
|
+
wakeDebounceMs: env.events.wakeDebounceMs,
|
|
46
|
+
...wiring,
|
|
47
|
+
});
|
|
48
|
+
let provider;
|
|
49
|
+
let connectorPort;
|
|
50
|
+
let eventsPort;
|
|
51
|
+
try {
|
|
52
|
+
eventsPort = await host.listen(env.events.port, {
|
|
53
|
+
secrets: env.events.secrets,
|
|
54
|
+
allowManualRounds: env.events.allowManualRounds,
|
|
55
|
+
production: env.isProduction,
|
|
56
|
+
});
|
|
57
|
+
host.startSchedules((id, r) => {
|
|
58
|
+
if (!r.skipped)
|
|
59
|
+
console.info(JSON.stringify({ round: { agent: id, ...r } }));
|
|
60
|
+
});
|
|
61
|
+
if (env.connector) {
|
|
62
|
+
provider = await createProviderServer({
|
|
63
|
+
handlers: agentsConnectorHandlers(host),
|
|
64
|
+
contract: await loadProviderContract(agentsProtoPath(), AGENTS_SERVICE_FQN),
|
|
65
|
+
passport: env.connector.passport,
|
|
66
|
+
...(env.connector.tls ? { tls: env.connector.tls } : {}),
|
|
67
|
+
isProduction: env.isProduction,
|
|
68
|
+
requireCallBinding: opts.requireCallBinding ?? env.requireCallBinding,
|
|
69
|
+
onAudit: (event) => console.info(JSON.stringify({ audit: event })),
|
|
70
|
+
});
|
|
71
|
+
connectorPort = await provider.listen(`0.0.0.0:${env.connector.port}`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
console.warn('conector de agentes desligado: sem GATEWAY_JWKS_URL/SERVICE_JWT_PUBLIC_KEY (só fora de produção)');
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (e) {
|
|
78
|
+
await host.stop(0).catch(() => { });
|
|
79
|
+
await store.close().catch(() => { });
|
|
80
|
+
throw e;
|
|
81
|
+
}
|
|
82
|
+
console.info(`agentes: ${agents.map((a) => a.manifest.id).join(', ')} · eventos em :${eventsPort}` +
|
|
83
|
+
(connectorPort !== undefined ? ` · conector (gRPC) em :${connectorPort}` : ''));
|
|
84
|
+
let stopping;
|
|
85
|
+
const stop = () => (stopping ??= (async () => {
|
|
86
|
+
// Primeiro o conector: para de aceitar chamadas e drena as que estão no meio (uma
|
|
87
|
+
// pergunta espera até askWaitMs). Depois a entrada do host (webhook, cron, novas
|
|
88
|
+
// perguntas) e as conversas e rodadas em andamento. Por último o banco, que elas
|
|
89
|
+
// ainda usam para gravar o resultado.
|
|
90
|
+
await provider?.shutdown();
|
|
91
|
+
await host.stop();
|
|
92
|
+
await store.close();
|
|
93
|
+
})());
|
|
94
|
+
if (opts.handleSignals ?? true) {
|
|
95
|
+
for (const signal of ['SIGINT', 'SIGTERM']) {
|
|
96
|
+
process.once(signal, () => {
|
|
97
|
+
console.info(`${signal}: encerrando`);
|
|
98
|
+
// Segundo sinal durante o encerramento: sai na hora.
|
|
99
|
+
process.once(signal, () => process.exit(1));
|
|
100
|
+
stop().then(() => process.exit(0), (e) => {
|
|
101
|
+
console.error(e);
|
|
102
|
+
process.exit(1);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return { host, env, eventsPort, ...(connectorPort !== undefined ? { connectorPort } : {}), stop };
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=start.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,21 +47,46 @@ export interface ActionRow {
|
|
|
47
47
|
created_at: string;
|
|
48
48
|
subject?: string | null;
|
|
49
49
|
}
|
|
50
|
+
/** Rotina com que o host registra cada conversa: guarda quem perguntou o quê. */
|
|
51
|
+
export declare const CONVERSATION_ROUTINE = "_conversation";
|
|
52
|
+
export type ConversationStatus = 'running' | 'done' | 'error';
|
|
53
|
+
export interface ConversationRow {
|
|
54
|
+
id: string;
|
|
55
|
+
agent_id: string;
|
|
56
|
+
asker: string;
|
|
57
|
+
asker_kind: 'person' | 'agent';
|
|
58
|
+
thread_id: string;
|
|
59
|
+
message: string;
|
|
60
|
+
status: ConversationStatus;
|
|
61
|
+
answer: string | null;
|
|
62
|
+
error: string | null;
|
|
63
|
+
cost_usd: number | null;
|
|
64
|
+
created_at: string;
|
|
65
|
+
finished_at: string | null;
|
|
66
|
+
}
|
|
50
67
|
export declare class LongTermStore {
|
|
51
68
|
private readonly sql;
|
|
52
69
|
constructor(sql: Sql);
|
|
53
70
|
migrate(): Promise<void>;
|
|
54
71
|
close(): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Grava o evento e junta no item aberto do mesmo assunto. Repetido não entra. Com
|
|
74
|
+
* `source` (a fonte do webhook), o id na origem vira `<fonte>:<id>`: duas fontes podem
|
|
75
|
+
* usar o mesmo id sem uma descartar o evento da outra.
|
|
76
|
+
*/
|
|
77
|
+
enqueue(agentId: string, ev: IncomingEvent, kind: EventKind, source?: string): Promise<{
|
|
57
78
|
itemId: number | null;
|
|
58
79
|
duplicate: boolean;
|
|
59
80
|
}>;
|
|
60
81
|
/**
|
|
61
82
|
* Pega o próximo lote na ordem de prioridade. `SKIP LOCKED` deixa duas réplicas
|
|
62
83
|
* dividirem a fila sem pegar o mesmo item; o lock da rodada já evita isso no caso comum.
|
|
84
|
+
*
|
|
85
|
+
* Item `working` há mais de `staleAfterSec` também entra: a rodada que o pegou não
|
|
86
|
+
* terminou (a réplica caiu, o deploy derrubou o processo) e ninguém mais vai fechá-lo.
|
|
87
|
+
* Quem chama passa o mesmo prazo do lock da rodada, que já venceu nesse caso.
|
|
63
88
|
*/
|
|
64
|
-
leaseBatch(agentId: string, limit: number): Promise<Array<ItemRow & {
|
|
89
|
+
leaseBatch(agentId: string, limit: number, staleAfterSec?: number): Promise<Array<ItemRow & {
|
|
65
90
|
events: EventRow[];
|
|
66
91
|
}>>;
|
|
67
92
|
/**
|
|
@@ -114,10 +139,12 @@ export declare class LongTermStore {
|
|
|
114
139
|
executedSince(agentId: string, routine: string, since: Date): Promise<number>;
|
|
115
140
|
/** Desfechos das execuções mais recentes da rotina, mais novo primeiro. */
|
|
116
141
|
recentOutcomes(agentId: string, routine: string, n: number): Promise<OutcomeStatus[]>;
|
|
142
|
+
/** `excludeRoutine`: deixa de fora uma rotina (ex.: `_conversation`, que guarda quem perguntou o quê). */
|
|
117
143
|
history(agentId: string, opts?: {
|
|
118
144
|
subject?: string;
|
|
119
145
|
status?: ActionStatus;
|
|
120
146
|
mode?: ActionMode;
|
|
147
|
+
excludeRoutine?: string;
|
|
121
148
|
limit?: number;
|
|
122
149
|
}): Promise<ActionRow[]>;
|
|
123
150
|
levelCaps(agentId: string): Promise<Map<string, {
|
|
@@ -127,6 +154,39 @@ export declare class LongTermStore {
|
|
|
127
154
|
setLevelCap(agentId: string, routine: string, cap: EffectiveLevel, reason: string): Promise<void>;
|
|
128
155
|
/** Volta a valer o nível do manifesto (decisão de pessoa, depois de tratar a causa). */
|
|
129
156
|
clearLevelCap(agentId: string, routine: string): Promise<void>;
|
|
157
|
+
startConversation(c: {
|
|
158
|
+
id: string;
|
|
159
|
+
agentId: string;
|
|
160
|
+
asker: string;
|
|
161
|
+
askerKind: 'person' | 'agent';
|
|
162
|
+
threadId: string;
|
|
163
|
+
message: string;
|
|
164
|
+
}): Promise<void>;
|
|
165
|
+
/** Fecha a conversa. Só uma `running`: a que já foi dada como interrompida fica assim. */
|
|
166
|
+
finishConversation(id: string, r: {
|
|
167
|
+
status: 'done' | 'error';
|
|
168
|
+
answer?: string;
|
|
169
|
+
error?: string;
|
|
170
|
+
costUsd?: number;
|
|
171
|
+
}): Promise<void>;
|
|
172
|
+
/**
|
|
173
|
+
* As últimas trocas terminadas de um fio, mais antiga primeiro. Só as do mesmo agente e
|
|
174
|
+
* de quem pergunta: o fio de uma pessoa nunca aparece para outra.
|
|
175
|
+
*/
|
|
176
|
+
threadHistory(agentId: string, threadId: string, asker: string, limit: number): Promise<Array<Pick<ConversationRow, 'message' | 'answer'>>>;
|
|
177
|
+
/**
|
|
178
|
+
* Conversas ainda rodando com este agente (de todas as réplicas), no total e de quem
|
|
179
|
+
* pergunta. A `running` mais velha que `staleAfterSec` não conta: a réplica caiu.
|
|
180
|
+
*/
|
|
181
|
+
runningConversations(agentId: string, asker: string, staleAfterSec: number): Promise<{
|
|
182
|
+
total: number;
|
|
183
|
+
mine: number;
|
|
184
|
+
}>;
|
|
185
|
+
/**
|
|
186
|
+
* Lê a conversa. A `running` mais velha que `staleAfterSec` vira erro: a réplica que
|
|
187
|
+
* rodava caiu no meio, e ninguém mais vai fechar essa linha.
|
|
188
|
+
*/
|
|
189
|
+
getConversation(id: string, staleAfterSec?: number): Promise<ConversationRow | undefined>;
|
|
130
190
|
killSwitch(agentId: string): Promise<{
|
|
131
191
|
reason: string;
|
|
132
192
|
set_by: string;
|