@agentguard-run/spend 0.4.0 → 0.4.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 +8 -2
- package/README.es-419.md +21 -4
- package/README.md +24 -5
- package/README.pt-BR.md +21 -4
- package/dist/{coach → advisor}/anomaly.d.ts +5 -5
- package/dist/advisor/anomaly.d.ts.map +1 -0
- package/dist/{coach → advisor}/anomaly.js +1 -1
- package/dist/advisor/anomaly.js.map +1 -0
- package/dist/{coach → advisor}/conversation.d.ts +23 -17
- package/dist/advisor/conversation.d.ts.map +1 -0
- package/dist/{coach → advisor}/conversation.js +63 -27
- package/dist/advisor/conversation.js.map +1 -0
- package/dist/{coach → advisor}/forecast.d.ts +4 -4
- package/dist/advisor/forecast.d.ts.map +1 -0
- package/dist/{coach → advisor}/forecast.js +1 -1
- package/dist/advisor/forecast.js.map +1 -0
- package/dist/{coach → advisor}/llm-client.d.ts +10 -10
- package/dist/advisor/llm-client.d.ts.map +1 -0
- package/dist/{coach → advisor}/llm-client.js +12 -12
- package/dist/advisor/llm-client.js.map +1 -0
- package/dist/{coach → advisor}/output.d.ts +12 -12
- package/dist/advisor/output.d.ts.map +1 -0
- package/dist/{coach → advisor}/output.js +42 -13
- package/dist/advisor/output.js.map +1 -0
- package/dist/advisor/posture.d.ts +26 -0
- package/dist/advisor/posture.d.ts.map +1 -0
- package/dist/advisor/posture.js +100 -0
- package/dist/advisor/posture.js.map +1 -0
- package/dist/{coach → advisor}/system-prompt.d.ts +5 -5
- package/dist/advisor/system-prompt.d.ts.map +1 -0
- package/dist/{coach → advisor}/system-prompt.js +21 -8
- package/dist/advisor/system-prompt.js.map +1 -0
- package/dist/cli/advisor.d.ts +5 -0
- package/dist/cli/advisor.d.ts.map +1 -0
- package/dist/cli/{coach.js → advisor.js} +63 -47
- package/dist/cli/advisor.js.map +1 -0
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +7 -6
- package/dist/cli/main.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -11
- package/dist/index.js.map +1 -1
- package/dist/telemetry.js +1 -1
- package/package.json +7 -7
- package/src/{coach → advisor}/anomaly.ts +9 -9
- package/src/{coach → advisor}/conversation.ts +80 -39
- package/src/{coach → advisor}/forecast.ts +5 -5
- package/src/{coach → advisor}/llm-client.ts +21 -21
- package/src/{coach → advisor}/output.ts +49 -20
- package/src/advisor/posture.ts +112 -0
- package/src/{coach → advisor}/system-prompt.ts +22 -8
- package/src/cli/{coach.ts → advisor.ts} +74 -58
- package/dist/cli/coach.d.ts +0 -5
- package/dist/cli/coach.d.ts.map +0 -1
- package/dist/cli/coach.js.map +0 -1
- package/dist/coach/anomaly.d.ts.map +0 -1
- package/dist/coach/anomaly.js.map +0 -1
- package/dist/coach/conversation.d.ts.map +0 -1
- package/dist/coach/conversation.js.map +0 -1
- package/dist/coach/forecast.d.ts.map +0 -1
- package/dist/coach/forecast.js.map +0 -1
- package/dist/coach/llm-client.d.ts.map +0 -1
- package/dist/coach/llm-client.js.map +0 -1
- package/dist/coach/output.d.ts.map +0 -1
- package/dist/coach/output.js.map +0 -1
- package/dist/coach/system-prompt.d.ts.map +0 -1
- package/dist/coach/system-prompt.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.1
|
|
4
|
+
|
|
5
|
+
- **Renamed `agentguard coach` to `agentguard advisor`** to better match the business-buyer mental model. The command name now aligns with the outcomes-based positioning, AI policy advisor for your business. v0.4.0 had zero downloads at the time of this release. The rename is clean with no alias.
|
|
6
|
+
- Session logs now stored at `~/.agentguard/advisor-sessions/`.
|
|
7
|
+
- **Added Governance Posture**: Velocity, Standard, and Compliance policy generation modes that shape enforcement mode, capability tiers, downgrade behavior, approval gates, and audit retention. Inspired by @_catwu's Claude Code velocity playbook.
|
|
8
|
+
|
|
3
9
|
## 0.4.0
|
|
4
10
|
|
|
5
|
-
- Added `agentguard
|
|
6
|
-
- Added local
|
|
11
|
+
- Added `agentguard advisor` subcommand: local LLM-driven policy setup via your OpenRouter key.
|
|
12
|
+
- Added local Advisor session logs, policy and quickstart writers, projected savings output, and review and forecast skeletons.
|
|
7
13
|
|
|
8
14
|
## 0.3.0
|
|
9
15
|
|
package/README.es-419.md
CHANGED
|
@@ -17,15 +17,32 @@ agentguard wizard
|
|
|
17
17
|
El wizard escribe `~/.agentguard/policy.yaml`, `~/.agentguard/quickstart.ts` y `~/.agentguard/quickstart.py`. También imprime el snippet listo para pegar en su app.
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
## ¿Necesita ayuda configurando? Ejecute `agentguard
|
|
20
|
+
## ¿Necesita ayuda configurando? Ejecute `agentguard advisor`
|
|
21
21
|
|
|
22
|
-
`agentguard
|
|
22
|
+
`agentguard advisor` usa su clave de OpenRouter, o cualquier endpoint compatible con OpenAI vía `--base-url`, para guiar la configuración en su terminal. La infraestructura de AgentGuard nunca ve prompts, respuestas, claves, detalles de política ni el log de sesión.
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
agentguard
|
|
25
|
+
agentguard advisor
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Advisor escribe `~/.agentguard/policy.yaml`, un quickstart según el lenguaje, la matemática de ahorro proyectado y un log JSONL local en `~/.agentguard/advisor-sessions/`.
|
|
29
|
+
|
|
30
|
+
## Postura de gobernanza
|
|
31
|
+
|
|
32
|
+
Advisor pregunta por un estilo operativo y lo usa para ajustar la política generada.
|
|
33
|
+
|
|
34
|
+
- `velocity`: equipos de software e IA que shippean rápido. Inicia en `shadow`, usa tiers de capacidad permisivos y baja rápido a modelos baratos.
|
|
35
|
+
- `standard`: la mayoría de SaaS, e-commerce, real estate, agencias, servicios locales y startups. Inicia en `enforce`, usa tiers balanceados y conserva 90 días de auditoría.
|
|
36
|
+
- `compliance`: legal, salud, dental, contabilidad, SOX, fintech y flujos regulados. Inicia en `canary`, exige tiers más estrictos, bloquea overflow regulado en vez de hacer downgrade y conserva 7 años de auditoría.
|
|
37
|
+
|
|
38
|
+
Puede sobrescribir la sugerencia:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
agentguard advisor --posture velocity
|
|
42
|
+
agentguard advisor --posture compliance
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
La postura `custom` queda reservada para Outcome Builder en Solo tier.
|
|
29
46
|
|
|
30
47
|
## Por qué OpenRouter
|
|
31
48
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# @agentguard-run/spend
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> **AgentGuard proves what your AI agent attempted, who authorized it, what it cost, and whether it succeeded.**
|
|
4
|
+
>
|
|
5
|
+
> Local-runtime spend caps, capability-gated model routing, and Ed25519-signed receipts for AI agents.
|
|
4
6
|
|
|
5
7
|
> Also available in: [Español (LATAM)](README.es-419.md) · [Português (BR)](README.pt-BR.md)
|
|
6
8
|
|
|
@@ -32,15 +34,32 @@ const response = await guardedClient.chat.completions.create({
|
|
|
32
34
|
Then run your agent. AgentGuard decides locally before any provider call starts, signs the receipt, and applies allow, downgrade, shadow, or block.
|
|
33
35
|
|
|
34
36
|
|
|
35
|
-
## Need help configuring? Run `agentguard
|
|
37
|
+
## Need help configuring? Run `agentguard advisor`
|
|
36
38
|
|
|
37
|
-
`agentguard
|
|
39
|
+
`agentguard advisor` uses your OpenRouter key, or any OpenAI-compatible endpoint you pass with `--base-url`, to run a local setup dialogue in your terminal. AgentGuard infrastructure never sees the prompts, completions, keys, policy details, or session log.
|
|
38
40
|
|
|
39
41
|
```bash
|
|
40
|
-
agentguard
|
|
42
|
+
agentguard advisor
|
|
41
43
|
```
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
Advisor writes `~/.agentguard/policy.yaml`, a language-aware quickstart file, projected savings math, and a local JSONL session log under `~/.agentguard/advisor-sessions/`.
|
|
46
|
+
|
|
47
|
+
## Governance Posture
|
|
48
|
+
|
|
49
|
+
Advisor asks for one operating-style input and uses it to shape the generated policy.
|
|
50
|
+
|
|
51
|
+
- `velocity`: high-ship software and AI teams. Starts in `shadow`, uses permissive capability tiers, and downgrades aggressively to cheaper models.
|
|
52
|
+
- `standard`: most SaaS, e-commerce, real estate, agencies, local services, and startups. Starts in `enforce`, uses balanced capability tiers, and keeps 90 days of audit retention.
|
|
53
|
+
- `compliance`: law, healthcare, dental, accounting, SOX, fintech, and regulated workflows. Starts in `canary`, requires stricter capability tiers, blocks regulated overflow instead of downgrading, and keeps 7 years of audit retention.
|
|
54
|
+
|
|
55
|
+
Override the suggestion when you already know how the team operates:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
agentguard advisor --posture velocity
|
|
59
|
+
agentguard advisor --posture compliance
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`custom` posture is reserved for the Solo tier Outcome Builder.
|
|
44
63
|
|
|
45
64
|
## Why OpenRouter?
|
|
46
65
|
|
package/README.pt-BR.md
CHANGED
|
@@ -17,15 +17,32 @@ agentguard wizard
|
|
|
17
17
|
O wizard escreve `~/.agentguard/policy.yaml`, `~/.agentguard/quickstart.ts` e `~/.agentguard/quickstart.py`. Ele também imprime o snippet pronto para colar no app.
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
## Precisa de ajuda para configurar? Rode `agentguard
|
|
20
|
+
## Precisa de ajuda para configurar? Rode `agentguard advisor`
|
|
21
21
|
|
|
22
|
-
`agentguard
|
|
22
|
+
`agentguard advisor` usa sua chave OpenRouter, ou qualquer endpoint compatível com OpenAI via `--base-url`, para guiar a configuração no terminal. A infraestrutura da AgentGuard nunca vê prompts, respostas, chaves, detalhes de política nem o log de sessão.
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
agentguard
|
|
25
|
+
agentguard advisor
|
|
26
26
|
```
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
Advisor escreve `~/.agentguard/policy.yaml`, um quickstart conforme a linguagem, a matemática de economia projetada e um log JSONL local em `~/.agentguard/advisor-sessions/`.
|
|
29
|
+
|
|
30
|
+
## Postura de governança
|
|
31
|
+
|
|
32
|
+
Advisor pergunta por um estilo operacional e usa isso para ajustar a política gerada.
|
|
33
|
+
|
|
34
|
+
- `velocity`: times de software e IA que lançam rápido. Começa em `shadow`, usa tiers de capacidade permissivos e faz downgrade rápido para modelos baratos.
|
|
35
|
+
- `standard`: a maioria de SaaS, e-commerce, real estate, agências, serviços locais e startups. Começa em `enforce`, usa tiers balanceados e mantém 90 dias de auditoria.
|
|
36
|
+
- `compliance`: jurídico, saúde, dental, contabilidade, SOX, fintech e fluxos regulados. Começa em `canary`, exige tiers mais rígidos, bloqueia overflow regulado em vez de fazer downgrade e mantém 7 anos de auditoria.
|
|
37
|
+
|
|
38
|
+
Você pode sobrescrever a sugestão:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
agentguard advisor --posture velocity
|
|
42
|
+
agentguard advisor --posture compliance
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
A postura `custom` fica reservada para o Outcome Builder no Solo tier.
|
|
29
46
|
|
|
30
47
|
## Por que OpenRouter
|
|
31
48
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgentGuard(TM) Spend: local
|
|
2
|
+
* AgentGuard(TM) Spend: local Advisor anomaly review skeleton.
|
|
3
3
|
*
|
|
4
4
|
* Reads local decision logs only. No network calls are made.
|
|
5
5
|
*
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
8
8
|
* 64/071,781; 64/071,789).
|
|
9
9
|
*/
|
|
10
|
-
export interface
|
|
10
|
+
export interface AdvisorSpendPoint {
|
|
11
11
|
ts: string;
|
|
12
12
|
scope: string;
|
|
13
13
|
agentId: string;
|
|
14
14
|
cents: number;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
16
|
+
export interface AdvisorAnomaly {
|
|
17
17
|
scope: string;
|
|
18
18
|
agentId: string;
|
|
19
19
|
last24hCents: number;
|
|
@@ -21,6 +21,6 @@ export interface CoachAnomaly {
|
|
|
21
21
|
sigmaCents: number;
|
|
22
22
|
suggestion: string;
|
|
23
23
|
}
|
|
24
|
-
export declare function readDecisionSpend(scope?: string, home?: string):
|
|
25
|
-
export declare function reviewAnomalies(points:
|
|
24
|
+
export declare function readDecisionSpend(scope?: string, home?: string): AdvisorSpendPoint[];
|
|
25
|
+
export declare function reviewAnomalies(points: AdvisorSpendPoint[], now?: Date): AdvisorAnomaly[];
|
|
26
26
|
//# sourceMappingURL=anomaly.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomaly.d.ts","sourceRoot":"","sources":["../../src/advisor/anomaly.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,SAAY,EAAE,IAAI,SAAmB,GAAG,iBAAiB,EAAE,CAuBjG;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,GAAG,OAAa,GAAG,cAAc,EAAE,CA6B/F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomaly.js","sourceRoot":"","sources":["../../src/advisor/anomaly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgentGuard(TM) Spend:
|
|
2
|
+
* AgentGuard(TM) Spend: Advisor conversation state.
|
|
3
3
|
*
|
|
4
4
|
* Patent notice: Protected by U.S. patent-pending technology
|
|
5
5
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
6
6
|
* 64/071,781; 64/071,789).
|
|
7
7
|
*/
|
|
8
8
|
import type { CapabilityTier, SpendPolicy } from '../types';
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
|
|
9
|
+
import { type GovernancePosture } from './posture';
|
|
10
|
+
export type AdvisorQuestionId = 'building' | 'posture' | 'scale' | 'tasks' | 'budget' | 'confirm';
|
|
11
|
+
export interface AdvisorQuestion {
|
|
12
|
+
id: AdvisorQuestionId;
|
|
12
13
|
prompt: string;
|
|
13
14
|
}
|
|
14
|
-
export interface
|
|
15
|
+
export interface AdvisorAnswers {
|
|
15
16
|
building?: string;
|
|
16
17
|
scale?: string;
|
|
17
18
|
tasks?: string;
|
|
18
19
|
budget?: string;
|
|
19
20
|
confirm?: string;
|
|
20
21
|
language?: 'ts' | 'py';
|
|
22
|
+
posture?: GovernancePosture;
|
|
21
23
|
}
|
|
22
|
-
export interface
|
|
24
|
+
export interface AdvisorBusinessProfile {
|
|
23
25
|
vertical: string;
|
|
24
26
|
tenantId: string;
|
|
25
27
|
teamSize: number;
|
|
@@ -34,6 +36,7 @@ export interface CoachBusinessProfile {
|
|
|
34
36
|
perMonthCapCents: number;
|
|
35
37
|
scopeLabel: string;
|
|
36
38
|
language: 'ts' | 'py';
|
|
39
|
+
posture: GovernancePosture;
|
|
37
40
|
}
|
|
38
41
|
export interface ProjectedSavingsRow {
|
|
39
42
|
label: string;
|
|
@@ -48,22 +51,25 @@ export interface ProjectedSavings {
|
|
|
48
51
|
monthlySavingsCents: number;
|
|
49
52
|
savingsPercent: number;
|
|
50
53
|
}
|
|
51
|
-
export declare const
|
|
52
|
-
export declare class
|
|
54
|
+
export declare const ADVISOR_QUESTIONS: AdvisorQuestion[];
|
|
55
|
+
export declare class AdvisorConversation {
|
|
53
56
|
private answers;
|
|
54
57
|
private index;
|
|
55
|
-
constructor(initial?:
|
|
56
|
-
currentQuestion():
|
|
58
|
+
constructor(initial?: AdvisorAnswers);
|
|
59
|
+
currentQuestion(): AdvisorQuestion | null;
|
|
57
60
|
answer(value: string): void;
|
|
58
|
-
next():
|
|
59
|
-
back():
|
|
61
|
+
next(): AdvisorQuestion | null;
|
|
62
|
+
back(): AdvisorQuestion | null;
|
|
60
63
|
isComplete(): boolean;
|
|
61
|
-
snapshot():
|
|
62
|
-
|
|
64
|
+
snapshot(): AdvisorAnswers;
|
|
65
|
+
setPosture(posture: GovernancePosture): void;
|
|
66
|
+
profile(cwd?: string): AdvisorBusinessProfile;
|
|
63
67
|
}
|
|
64
|
-
export declare function
|
|
65
|
-
export declare function
|
|
66
|
-
export declare function
|
|
68
|
+
export declare function detectVertical(text: string): string;
|
|
69
|
+
export declare function suggestedPostureForText(text: string): GovernancePosture;
|
|
70
|
+
export declare function buildBusinessProfile(answers: AdvisorAnswers, cwd?: string): AdvisorBusinessProfile;
|
|
71
|
+
export declare function buildPolicyFromProfile(profile: AdvisorBusinessProfile): SpendPolicy;
|
|
72
|
+
export declare function projectedSavings(profile: AdvisorBusinessProfile): ProjectedSavings;
|
|
67
73
|
export declare function formatCents(cents: number): string;
|
|
68
74
|
export declare function detectProjectLanguage(cwd: string): 'ts' | 'py';
|
|
69
75
|
//# sourceMappingURL=conversation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../../src/advisor/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* AgentGuard(TM) Spend:
|
|
3
|
+
* AgentGuard(TM) Spend: Advisor conversation state.
|
|
4
4
|
*
|
|
5
5
|
* Patent notice: Protected by U.S. patent-pending technology
|
|
6
6
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
@@ -40,7 +40,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
};
|
|
41
41
|
})();
|
|
42
42
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
-
exports.
|
|
43
|
+
exports.AdvisorConversation = exports.ADVISOR_QUESTIONS = void 0;
|
|
44
|
+
exports.detectVertical = detectVertical;
|
|
45
|
+
exports.suggestedPostureForText = suggestedPostureForText;
|
|
44
46
|
exports.buildBusinessProfile = buildBusinessProfile;
|
|
45
47
|
exports.buildPolicyFromProfile = buildPolicyFromProfile;
|
|
46
48
|
exports.projectedSavings = projectedSavings;
|
|
@@ -48,8 +50,10 @@ exports.formatCents = formatCents;
|
|
|
48
50
|
exports.detectProjectLanguage = detectProjectLanguage;
|
|
49
51
|
const fs = __importStar(require("fs"));
|
|
50
52
|
const path = __importStar(require("path"));
|
|
51
|
-
|
|
53
|
+
const posture_1 = require("./posture");
|
|
54
|
+
exports.ADVISOR_QUESTIONS = [
|
|
52
55
|
{ id: 'building', prompt: 'What are you building or running? Include your business type and the agent workflow.' },
|
|
56
|
+
{ id: 'posture', prompt: 'Confirm or change governance posture: Velocity / Standard / Compliance.' },
|
|
53
57
|
{ id: 'scale', prompt: 'How big is the team and roughly how many AI calls, tickets, orders, encounters, matters, or jobs happen per month?' },
|
|
54
58
|
{ id: 'tasks', prompt: 'What are the top 3 AI tasks this agent will perform?' },
|
|
55
59
|
{ id: 'budget', prompt: 'What monthly AI budget or per-task ceiling should this stay under?' },
|
|
@@ -65,7 +69,7 @@ const VERTICAL_HINTS = [
|
|
|
65
69
|
{ vertical: 'marketing', needles: ['marketing', 'agency', 'content', 'campaign', 'brand'], scopeLabel: 'campaign', capability: 'data_write', primary: 'openai/gpt-5-mini', fallback: 'openai/gpt-4o-mini', perCall: 25 },
|
|
66
70
|
{ vertical: 'local-services', needles: ['salon', 'gym', 'restaurant', 'landscaping', 'construction', 'photography', 'fitness', 'pet'], scopeLabel: 'job', capability: 'data_write', primary: 'openai/gpt-5-mini', fallback: 'openai/gpt-4o-mini', perCall: 25 },
|
|
67
71
|
];
|
|
68
|
-
class
|
|
72
|
+
class AdvisorConversation {
|
|
69
73
|
answers = {};
|
|
70
74
|
index = 0;
|
|
71
75
|
constructor(initial) {
|
|
@@ -74,16 +78,28 @@ class CoachConversation {
|
|
|
74
78
|
this.index = firstMissingIndex(this.answers);
|
|
75
79
|
}
|
|
76
80
|
currentQuestion() {
|
|
77
|
-
|
|
81
|
+
const question = exports.ADVISOR_QUESTIONS[this.index] ?? null;
|
|
82
|
+
if (question?.id !== 'posture')
|
|
83
|
+
return question;
|
|
84
|
+
const vertical = detectVertical(this.answers.building ?? '');
|
|
85
|
+
const suggested = (0, posture_1.suggestPostureForVertical)(vertical);
|
|
86
|
+
return {
|
|
87
|
+
id: 'posture',
|
|
88
|
+
prompt: `Based on ${vertical}, we suggest ${suggested} governance posture. Confirm or change: Velocity / Standard / Compliance.`,
|
|
89
|
+
};
|
|
78
90
|
}
|
|
79
91
|
answer(value) {
|
|
80
92
|
const question = this.currentQuestion();
|
|
81
93
|
if (!question)
|
|
82
94
|
return;
|
|
95
|
+
if (question.id === 'posture') {
|
|
96
|
+
this.answers.posture = (0, posture_1.normalizePosture)(value) ?? suggestedPostureForText(this.answers.building ?? '');
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
83
99
|
this.answers[question.id] = value.trim();
|
|
84
100
|
}
|
|
85
101
|
next() {
|
|
86
|
-
this.index = Math.min(this.index + 1, exports.
|
|
102
|
+
this.index = Math.min(this.index + 1, exports.ADVISOR_QUESTIONS.length);
|
|
87
103
|
return this.currentQuestion();
|
|
88
104
|
}
|
|
89
105
|
back() {
|
|
@@ -91,19 +107,30 @@ class CoachConversation {
|
|
|
91
107
|
return this.currentQuestion();
|
|
92
108
|
}
|
|
93
109
|
isComplete() {
|
|
94
|
-
return exports.
|
|
110
|
+
return exports.ADVISOR_QUESTIONS.every((question) => Boolean(this.answers[question.id]?.trim()));
|
|
95
111
|
}
|
|
96
112
|
snapshot() {
|
|
97
113
|
return { ...this.answers };
|
|
98
114
|
}
|
|
115
|
+
setPosture(posture) {
|
|
116
|
+
this.answers.posture = posture;
|
|
117
|
+
}
|
|
99
118
|
profile(cwd = process.cwd()) {
|
|
100
119
|
return buildBusinessProfile(this.answers, cwd);
|
|
101
120
|
}
|
|
102
121
|
}
|
|
103
|
-
exports.
|
|
122
|
+
exports.AdvisorConversation = AdvisorConversation;
|
|
123
|
+
function detectVertical(text) {
|
|
124
|
+
const joined = text.toLowerCase();
|
|
125
|
+
return (VERTICAL_HINTS.find((candidate) => candidate.needles.some((needle) => joined.includes(needle))) ?? VERTICAL_HINTS[0]).vertical;
|
|
126
|
+
}
|
|
127
|
+
function suggestedPostureForText(text) {
|
|
128
|
+
return (0, posture_1.suggestPostureForVertical)(detectVertical(text));
|
|
129
|
+
}
|
|
104
130
|
function buildBusinessProfile(answers, cwd = process.cwd()) {
|
|
105
131
|
const joined = `${answers.building ?? ''} ${answers.scale ?? ''} ${answers.tasks ?? ''}`.toLowerCase();
|
|
106
132
|
const hint = VERTICAL_HINTS.find((candidate) => candidate.needles.some((needle) => joined.includes(needle))) ?? VERTICAL_HINTS[0];
|
|
133
|
+
const posture = answers.posture ?? (0, posture_1.suggestPostureForVertical)(hint.vertical);
|
|
107
134
|
const scale = parseScale(answers.scale ?? '');
|
|
108
135
|
const budgetCents = parseBudgetCents(answers.budget ?? '', Math.max(4900, Math.ceil(scale.monthlyVolume * hint.perCall * 0.35)));
|
|
109
136
|
const tasks = parseTasks(answers.tasks ?? answers.building ?? hint.vertical);
|
|
@@ -116,7 +143,7 @@ function buildBusinessProfile(answers, cwd = process.cwd()) {
|
|
|
116
143
|
monthlyVolume: scale.monthlyVolume,
|
|
117
144
|
tasks,
|
|
118
145
|
monthlyBudgetCents: perMonthCapCents,
|
|
119
|
-
requiredCapability: capabilityFor(joined, hint.capability),
|
|
146
|
+
requiredCapability: capabilityFor(joined, hint.capability, posture),
|
|
120
147
|
primaryModel: hint.primary,
|
|
121
148
|
fallbackModel: hint.fallback,
|
|
122
149
|
perCallCapCents: hint.perCall,
|
|
@@ -124,17 +151,30 @@ function buildBusinessProfile(answers, cwd = process.cwd()) {
|
|
|
124
151
|
perMonthCapCents,
|
|
125
152
|
scopeLabel: hint.scopeLabel,
|
|
126
153
|
language: answers.language ?? detectProjectLanguage(cwd),
|
|
154
|
+
posture,
|
|
127
155
|
};
|
|
128
156
|
}
|
|
129
157
|
function buildPolicyFromProfile(profile) {
|
|
158
|
+
const posture = (0, posture_1.postureProfile)(profile.posture);
|
|
159
|
+
const conservativeBlock = profile.posture === 'compliance' && profile.requiredCapability !== 'read_only';
|
|
160
|
+
const perCallAmount = profile.posture === 'velocity'
|
|
161
|
+
? Math.max(1, Math.ceil(profile.perCallCapCents * 0.6))
|
|
162
|
+
: profile.perCallCapCents;
|
|
130
163
|
const caps = [
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
164
|
+
conservativeBlock
|
|
165
|
+
? {
|
|
166
|
+
amountCents: perCallAmount,
|
|
167
|
+
window: 'per_call',
|
|
168
|
+
action: 'block',
|
|
169
|
+
reason: 'Per-call regulated capability budget reached',
|
|
170
|
+
}
|
|
171
|
+
: {
|
|
172
|
+
amountCents: perCallAmount,
|
|
173
|
+
window: 'per_call',
|
|
174
|
+
action: 'downgrade',
|
|
175
|
+
downgradeTo: profile.fallbackModel,
|
|
176
|
+
reason: 'Per-call budget reached, route to fallback model',
|
|
177
|
+
},
|
|
138
178
|
{
|
|
139
179
|
amountCents: profile.perDayCapCents,
|
|
140
180
|
window: 'per_day',
|
|
@@ -149,11 +189,11 @@ function buildPolicyFromProfile(profile) {
|
|
|
149
189
|
},
|
|
150
190
|
];
|
|
151
191
|
return {
|
|
152
|
-
id: `
|
|
153
|
-
name: `
|
|
192
|
+
id: `advisor-${profile.vertical}-v1`,
|
|
193
|
+
name: `Advisor generated ${profile.vertical} policy`,
|
|
154
194
|
scope: { tenantId: profile.tenantId },
|
|
155
195
|
caps,
|
|
156
|
-
mode:
|
|
196
|
+
mode: posture.defaultMode,
|
|
157
197
|
requiredCapability: profile.requiredCapability,
|
|
158
198
|
version: 1,
|
|
159
199
|
effectiveFrom: new Date().toISOString(),
|
|
@@ -192,8 +232,8 @@ function detectProjectLanguage(cwd) {
|
|
|
192
232
|
return 'ts';
|
|
193
233
|
}
|
|
194
234
|
function firstMissingIndex(answers) {
|
|
195
|
-
const index = exports.
|
|
196
|
-
return index === -1 ? exports.
|
|
235
|
+
const index = exports.ADVISOR_QUESTIONS.findIndex((question) => !answers[question.id]?.trim());
|
|
236
|
+
return index === -1 ? exports.ADVISOR_QUESTIONS.length : index;
|
|
197
237
|
}
|
|
198
238
|
function parseScale(value) {
|
|
199
239
|
const numbers = (value.match(/\d[\d,]*/g) ?? []).map((part) => Number(part.replace(/,/g, ''))).filter(Number.isFinite);
|
|
@@ -218,11 +258,7 @@ function tenantIdFromBusiness(value) {
|
|
|
218
258
|
const cleaned = value.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '').slice(0, 40);
|
|
219
259
|
return cleaned || 'local-business';
|
|
220
260
|
}
|
|
221
|
-
function capabilityFor(text, fallback) {
|
|
222
|
-
|
|
223
|
-
return 'payment_initiate';
|
|
224
|
-
if (/write|update|ledger|chart|patient|health|phi|sox|legal|contract|tax|student|employment/.test(text))
|
|
225
|
-
return 'data_write';
|
|
226
|
-
return fallback;
|
|
261
|
+
function capabilityFor(text, fallback, posture) {
|
|
262
|
+
return (0, posture_1.applyPostureCapability)(posture, text, fallback);
|
|
227
263
|
}
|
|
228
264
|
//# sourceMappingURL=conversation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/advisor/conversation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgentGuard(TM) Spend: local
|
|
2
|
+
* AgentGuard(TM) Spend: local Advisor forecast skeleton.
|
|
3
3
|
*
|
|
4
4
|
* Reads local decision logs only. No network calls are made.
|
|
5
5
|
*
|
|
@@ -7,13 +7,13 @@
|
|
|
7
7
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
8
8
|
* 64/071,781; 64/071,789).
|
|
9
9
|
*/
|
|
10
|
-
import type {
|
|
11
|
-
export interface
|
|
10
|
+
import type { AdvisorSpendPoint } from './anomaly';
|
|
11
|
+
export interface AdvisorForecast {
|
|
12
12
|
daysObserved: number;
|
|
13
13
|
monthEndCents: number;
|
|
14
14
|
capCents: number | null;
|
|
15
15
|
overCap: boolean;
|
|
16
16
|
message: string;
|
|
17
17
|
}
|
|
18
|
-
export declare function forecastMonthEnd(points:
|
|
18
|
+
export declare function forecastMonthEnd(points: AdvisorSpendPoint[], capCents?: number | null, now?: Date): AdvisorForecast;
|
|
19
19
|
//# sourceMappingURL=forecast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forecast.d.ts","sourceRoot":"","sources":["../../src/advisor/forecast.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,EAAE,QAAQ,GAAE,MAAM,GAAG,IAAW,EAAE,GAAG,OAAa,GAAG,eAAe,CAoB/H"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forecast.js","sourceRoot":"","sources":["../../src/advisor/forecast.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* AgentGuard(TM) Spend: local
|
|
2
|
+
* AgentGuard(TM) Spend: local Advisor LLM client.
|
|
3
3
|
*
|
|
4
4
|
* All provider calls go from the customer terminal to the configured provider.
|
|
5
5
|
* No AgentGuard service is contacted for prompts or completions.
|
|
@@ -8,24 +8,24 @@
|
|
|
8
8
|
* (App. Nos. 63/983,615; 63/983,621; 63/983,843; 63/984,626;
|
|
9
9
|
* 64/071,781; 64/071,789).
|
|
10
10
|
*/
|
|
11
|
-
export type
|
|
12
|
-
export interface
|
|
11
|
+
export type AdvisorProvider = 'openrouter' | 'openai' | 'anthropic' | 'compatible' | 'mock';
|
|
12
|
+
export interface AdvisorChatMessage {
|
|
13
13
|
role: 'system' | 'user' | 'assistant';
|
|
14
14
|
content: string;
|
|
15
15
|
}
|
|
16
|
-
export interface
|
|
17
|
-
provider?:
|
|
16
|
+
export interface AdvisorClientOptions {
|
|
17
|
+
provider?: AdvisorProvider;
|
|
18
18
|
apiKey?: string;
|
|
19
19
|
baseUrl?: string;
|
|
20
20
|
model?: string;
|
|
21
21
|
timeoutMs?: number;
|
|
22
22
|
fetchImpl?: FetchLike;
|
|
23
23
|
}
|
|
24
|
-
export interface
|
|
25
|
-
provider:
|
|
24
|
+
export interface AdvisorClient {
|
|
25
|
+
provider: AdvisorProvider;
|
|
26
26
|
model: string;
|
|
27
27
|
baseUrl: string;
|
|
28
|
-
streamChat(messages:
|
|
28
|
+
streamChat(messages: AdvisorChatMessage[], signal?: AbortSignalLike): AsyncIterable<string>;
|
|
29
29
|
}
|
|
30
30
|
type FetchLike = (url: string, init: Record<string, unknown>) => Promise<any>;
|
|
31
31
|
type AbortSignalLike = {
|
|
@@ -34,8 +34,8 @@ type AbortSignalLike = {
|
|
|
34
34
|
once?: boolean;
|
|
35
35
|
}) => void;
|
|
36
36
|
};
|
|
37
|
-
export declare function
|
|
38
|
-
export declare function
|
|
37
|
+
export declare function resolveAdvisorApiKey(provider?: AdvisorProvider, explicit?: string): string | null;
|
|
38
|
+
export declare function createAdvisorClient(options?: AdvisorClientOptions): AdvisorClient;
|
|
39
39
|
export declare function parseSseResponse(response: any, pickText: (json: any) => string): AsyncIterable<string>;
|
|
40
40
|
export {};
|
|
41
41
|
//# sourceMappingURL=llm-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/advisor/llm-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAE5F,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,eAAe,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,MAAM,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;CAC7F;AAED,KAAK,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9E,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CAChG,CAAC;AAYF,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE,eAA8B,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAY/G;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAwBrF;AAiED,wBAAuB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAmB7G"}
|