@tenet-ai/sdk 0.1.2 → 0.3.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 +131 -21
- package/dist/client.d.ts +63 -9
- package/dist/client.js +195 -60
- package/dist/client.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ When your AI agent approves a $10,000 refund or denies a loan application, can y
|
|
|
15
15
|
- **Would it decide the same way** if we ran it again?
|
|
16
16
|
- **Who overrode** the agent's recommendation?
|
|
17
17
|
|
|
18
|
-
Tenet AI captures every decision your agent makes with full context, enabling **audit trails**, **replay verification**, and **
|
|
18
|
+
Tenet AI captures every decision your agent makes with full context, enabling **audit trails**, **replay verification**, **drift detection**, and **guardrails enforcement**.
|
|
19
19
|
|
|
20
20
|
---
|
|
21
21
|
|
|
@@ -61,21 +61,21 @@ import { Tenet, ResultType, ActorType } from "@tenet-ai/sdk";
|
|
|
61
61
|
|
|
62
62
|
const tenet = new Tenet({ apiKey: "tnt_your_key" });
|
|
63
63
|
|
|
64
|
-
// 1. Create an intent
|
|
65
|
-
const intent =
|
|
64
|
+
// 1. Create an intent (fire-and-forget, returns immediately)
|
|
65
|
+
const intent = tenet.createIntent({
|
|
66
66
|
goal: "Process refund request",
|
|
67
67
|
agentId: "support-agent",
|
|
68
68
|
});
|
|
69
69
|
|
|
70
70
|
// 2. Capture what the agent saw
|
|
71
|
-
|
|
71
|
+
intent.snapshotContext({
|
|
72
72
|
customer_tier: "gold",
|
|
73
73
|
order_amount: 149.99,
|
|
74
74
|
days_since_delivery: 5,
|
|
75
75
|
});
|
|
76
76
|
|
|
77
77
|
// 3. Record the decision with options considered
|
|
78
|
-
|
|
78
|
+
intent.decide({
|
|
79
79
|
options: [
|
|
80
80
|
{ action: "approve_refund", score: 0.95, reason: "Gold customer, within policy" },
|
|
81
81
|
{ action: "deny_refund", score: 0.05, reason: "N/A" },
|
|
@@ -86,11 +86,14 @@ await intent.decide({
|
|
|
86
86
|
});
|
|
87
87
|
|
|
88
88
|
// 4. Record execution
|
|
89
|
-
const executionId =
|
|
89
|
+
const executionId = intent.execute({
|
|
90
90
|
action: "approve_refund",
|
|
91
91
|
target: { order_id: "ORD-123" },
|
|
92
92
|
result: ResultType.SUCCESS,
|
|
93
93
|
});
|
|
94
|
+
|
|
95
|
+
// In tests: wait for all writes to land
|
|
96
|
+
await tenet.flush();
|
|
94
97
|
```
|
|
95
98
|
|
|
96
99
|
---
|
|
@@ -102,14 +105,14 @@ const executionId = await intent.execute({
|
|
|
102
105
|
Store the prompt and re-run decisions to verify consistency:
|
|
103
106
|
|
|
104
107
|
```ts
|
|
105
|
-
const intent =
|
|
108
|
+
const intent = tenet.createIntent({
|
|
106
109
|
goal: "Handle support ticket",
|
|
107
110
|
agentId: "support-agent",
|
|
108
111
|
});
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
intent.snapshotContext({ ticket_id: "T-123", priority: "high" });
|
|
111
114
|
|
|
112
|
-
|
|
115
|
+
intent.decide({
|
|
113
116
|
options: [{ action: "escalate", score: 0.9 }],
|
|
114
117
|
chosenAction: "escalate",
|
|
115
118
|
confidence: 0.9,
|
|
@@ -118,12 +121,15 @@ await intent.decide({
|
|
|
118
121
|
replayConfig: { model: "gpt-4o-mini", temperature: 0.0 },
|
|
119
122
|
});
|
|
120
123
|
|
|
121
|
-
const execId =
|
|
124
|
+
const execId = intent.execute({
|
|
122
125
|
action: "escalate",
|
|
123
126
|
target: { ticket_id: "T-123" },
|
|
124
127
|
result: ResultType.SUCCESS,
|
|
125
128
|
});
|
|
126
129
|
|
|
130
|
+
// Flush writes before reading back
|
|
131
|
+
await tenet.flush();
|
|
132
|
+
|
|
127
133
|
// Later: verify the decision is still consistent
|
|
128
134
|
const replay = await tenet.replay({ executionId: execId });
|
|
129
135
|
|
|
@@ -138,40 +144,40 @@ if (replay.diverged) {
|
|
|
138
144
|
Track complex workflows with multiple agents or MCP tool calls:
|
|
139
145
|
|
|
140
146
|
```ts
|
|
141
|
-
const parent =
|
|
147
|
+
const parent = tenet.createIntent({
|
|
142
148
|
goal: "Process customer request",
|
|
143
149
|
agentId: "orchestrator",
|
|
144
150
|
});
|
|
145
151
|
|
|
146
|
-
|
|
152
|
+
parent.snapshotContext({ request: "refund for order 123" });
|
|
147
153
|
|
|
148
154
|
// Spawn child intent for sub-agent
|
|
149
|
-
const child =
|
|
155
|
+
const child = parent.childIntent({
|
|
150
156
|
goal: "Search order history",
|
|
151
157
|
mcpServer: "database",
|
|
152
158
|
});
|
|
153
159
|
|
|
154
|
-
|
|
155
|
-
|
|
160
|
+
child.snapshotContext({ query: "order 123" });
|
|
161
|
+
child.decide({
|
|
156
162
|
options: [{ action: "query_db", score: 1.0 }],
|
|
157
163
|
chosenAction: "query_db",
|
|
158
164
|
confidence: 1.0,
|
|
159
165
|
});
|
|
160
|
-
|
|
166
|
+
child.execute({
|
|
161
167
|
action: "query_db",
|
|
162
168
|
target: { order_id: "123" },
|
|
163
169
|
result: ResultType.SUCCESS,
|
|
164
170
|
});
|
|
165
171
|
|
|
166
172
|
// Parent continues with child's result
|
|
167
|
-
|
|
173
|
+
parent.decide({
|
|
168
174
|
options: [
|
|
169
175
|
{ action: "approve_refund", score: 0.9, reason: "Order found, within policy" },
|
|
170
176
|
],
|
|
171
177
|
chosenAction: "approve_refund",
|
|
172
178
|
confidence: 0.9,
|
|
173
179
|
});
|
|
174
|
-
|
|
180
|
+
parent.execute({
|
|
175
181
|
action: "approve_refund",
|
|
176
182
|
target: { order_id: "123" },
|
|
177
183
|
result: ResultType.SUCCESS,
|
|
@@ -183,7 +189,7 @@ await parent.execute({
|
|
|
183
189
|
When humans override agent decisions:
|
|
184
190
|
|
|
185
191
|
```ts
|
|
186
|
-
|
|
192
|
+
intent.execute({
|
|
187
193
|
action: "deny_refund", // Human chose differently
|
|
188
194
|
target: { order_id: "123" },
|
|
189
195
|
result: ResultType.SUCCESS,
|
|
@@ -192,6 +198,94 @@ await intent.execute({
|
|
|
192
198
|
});
|
|
193
199
|
```
|
|
194
200
|
|
|
201
|
+
### Guardrails — Block, Warn, or Log Agent Actions
|
|
202
|
+
|
|
203
|
+
Define rules that are evaluated server-side before decisions are recorded. Rules with `block` enforcement reject the decision with HTTP 403.
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
// Create a guardrail rule via the API
|
|
207
|
+
const response = await fetch(`${endpoint}/api/v1/guardrails`, {
|
|
208
|
+
method: "POST",
|
|
209
|
+
headers: { "X-API-Key": apiKey, "Content-Type": "application/json" },
|
|
210
|
+
body: JSON.stringify({
|
|
211
|
+
name: "Block dangerous actions",
|
|
212
|
+
rule_type: "action_blocklist",
|
|
213
|
+
enforcement_level: "block",
|
|
214
|
+
rule_config: { blocked_actions: ["delete_account", "drop_table"] },
|
|
215
|
+
}),
|
|
216
|
+
});
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Supported rule types:
|
|
220
|
+
- `action_allowlist` — only allow specific actions
|
|
221
|
+
- `action_blocklist` — block specific actions
|
|
222
|
+
- `confidence_threshold` — require minimum confidence
|
|
223
|
+
- `context_field_check` — check a context input field (e.g. amount > 10000)
|
|
224
|
+
- `regex_match` — regex on action or field
|
|
225
|
+
- `json_path_check` — dot-path check into context
|
|
226
|
+
- `value_range` — min/max range on any numeric field
|
|
227
|
+
|
|
228
|
+
Enforcement levels: `block` (reject with 403), `warn` (flag but allow), `log` (silent record).
|
|
229
|
+
|
|
230
|
+
### Ghost SDK — Zero-Impact Observability
|
|
231
|
+
|
|
232
|
+
All write operations (intent, context, decision, execution) generate UUIDs client-side and fire-and-forget via background promises. Your agent never waits for Tenet.
|
|
233
|
+
|
|
234
|
+
**The Ghost SDK Promise:**
|
|
235
|
+
- **Main-thread overhead: <5ms** per full decision lifecycle (4 writes)
|
|
236
|
+
- **Silent failure:** Network errors are caught silently — never thrown to your agent
|
|
237
|
+
- **Client-side UUIDs:** IDs are available immediately, no round-trip needed
|
|
238
|
+
- **100% uptime guarantee** for your primary process
|
|
239
|
+
|
|
240
|
+
```ts
|
|
241
|
+
import { Tenet } from '@tenet-ai/sdk';
|
|
242
|
+
|
|
243
|
+
// Ghost SDK is enabled by default
|
|
244
|
+
const tenet = new Tenet({ apiKey: 'tnt_your_key' });
|
|
245
|
+
|
|
246
|
+
// All write calls return immediately — no await needed
|
|
247
|
+
const intent = tenet.createIntent({
|
|
248
|
+
goal: 'Process refund',
|
|
249
|
+
agentId: 'support-agent',
|
|
250
|
+
});
|
|
251
|
+
intent.snapshotContext({ customer_tier: 'gold' });
|
|
252
|
+
intent.decide({ options: [...], chosenAction: 'approve', confidence: 0.95 });
|
|
253
|
+
intent.execute({ action: 'approve', target: { order: '123' }, result: ResultType.SUCCESS });
|
|
254
|
+
|
|
255
|
+
// In tests, await flush() to ensure writes have landed
|
|
256
|
+
await tenet.flush();
|
|
257
|
+
|
|
258
|
+
// For graceful shutdown
|
|
259
|
+
await tenet.shutdown();
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
**Configuration:**
|
|
263
|
+
|
|
264
|
+
| Parameter | Default | Description |
|
|
265
|
+
|-----------|---------|-------------|
|
|
266
|
+
| `asyncWrites` | `true` | Set to `false` for synchronous mode (legacy compat) |
|
|
267
|
+
| `onError` | `undefined` | Callback `(error, payload)` for observability |
|
|
268
|
+
| `maxRetries` | `3` | Retry count before silent drop |
|
|
269
|
+
|
|
270
|
+
### Capture Health Monitoring
|
|
271
|
+
|
|
272
|
+
Check whether data is actually reaching the Tenet backend:
|
|
273
|
+
|
|
274
|
+
```ts
|
|
275
|
+
const stats = tenet.getStats();
|
|
276
|
+
// { sent: 42, failed: 0, lastSuccessAt: Date }
|
|
277
|
+
|
|
278
|
+
if (stats.failed > 0) {
|
|
279
|
+
console.warn(`${stats.failed} captures did not reach Tenet — check connectivity and API key`);
|
|
280
|
+
}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
- **`sent`** — total successful writes to the backend
|
|
284
|
+
- **`failed`** — writes that exhausted all retries (data NOT in Tenet)
|
|
285
|
+
- **`lastSuccessAt`** — `Date` of the most recent successful write, or `null`
|
|
286
|
+
|
|
287
|
+
Failed captures also emit a `console.warn` with the path, attempt count, and error message so they surface in your production logs automatically.
|
|
288
|
+
|
|
195
289
|
---
|
|
196
290
|
|
|
197
291
|
## Framework Integrations
|
|
@@ -267,6 +361,8 @@ const tenet = new Tenet({
|
|
|
267
361
|
endpoint: "https://ael-backend.onrender.com", // Optional (default: production)
|
|
268
362
|
environment: "production", // Optional
|
|
269
363
|
timeout: 30000, // Optional (ms)
|
|
364
|
+
asyncWrites: true, // Optional (Ghost SDK, default: true)
|
|
365
|
+
onError: (err, payload) => console.error(err), // Optional
|
|
270
366
|
});
|
|
271
367
|
```
|
|
272
368
|
|
|
@@ -276,12 +372,15 @@ const tenet = new Tenet({
|
|
|
276
372
|
|--------|-------------|
|
|
277
373
|
| `tenet.trace({ agentId, fn, ... })` | Wrap a function call with automatic audit trail |
|
|
278
374
|
| `tenet.replay({ executionId })` | Replay a past decision and detect drift |
|
|
375
|
+
| `tenet.flush()` | Wait for all background writes to complete |
|
|
376
|
+
| `tenet.shutdown()` | Flush and clean up |
|
|
377
|
+
| `tenet.getStats()` | Return `{ sent, failed, lastSuccessAt }` capture counters |
|
|
279
378
|
|
|
280
|
-
### Low-Level Methods
|
|
379
|
+
### Low-Level Methods (Synchronous — Fire-and-Forget)
|
|
281
380
|
|
|
282
381
|
| Method | Description |
|
|
283
382
|
|--------|-------------|
|
|
284
|
-
| `tenet.createIntent({ goal, agentId })` | Create an intent, returns `IntentHandle` |
|
|
383
|
+
| `tenet.createIntent({ goal, agentId })` | Create an intent, returns `IntentHandle` immediately |
|
|
285
384
|
| `intent.snapshotContext(inputs)` | Capture what the agent sees |
|
|
286
385
|
| `intent.decide({ options, chosenAction, confidence })` | Record a decision |
|
|
287
386
|
| `intent.execute({ action, target, result })` | Record execution |
|
|
@@ -300,6 +399,17 @@ const tenet = new Tenet({
|
|
|
300
399
|
| `tenet.getExecution(id)` | Get execution details |
|
|
301
400
|
| `tenet.getSessionTimeline(sessionId)` | Get full session timeline |
|
|
302
401
|
|
|
402
|
+
### Guardrail Endpoints
|
|
403
|
+
|
|
404
|
+
| Method | Description |
|
|
405
|
+
|--------|-------------|
|
|
406
|
+
| `POST /api/v1/guardrails` | Create a guardrail rule |
|
|
407
|
+
| `GET /api/v1/guardrails` | List guardrails (filter by `is_active`, `rule_type`) |
|
|
408
|
+
| `GET /api/v1/guardrails/{id}` | Get guardrail by ID |
|
|
409
|
+
| `PATCH /api/v1/guardrails/{id}` | Update a guardrail |
|
|
410
|
+
| `DELETE /api/v1/guardrails/{id}` | Delete a guardrail |
|
|
411
|
+
| `GET /api/v1/guardrails/{id}/evaluations` | List evaluation history |
|
|
412
|
+
|
|
303
413
|
### Advanced
|
|
304
414
|
|
|
305
415
|
| Method | Description |
|
package/dist/client.d.ts
CHANGED
|
@@ -7,6 +7,9 @@ declare class TenetError extends Error {
|
|
|
7
7
|
/**
|
|
8
8
|
* Handle for an in-progress intent. Provides methods to snapshot context,
|
|
9
9
|
* record decisions, and record executions.
|
|
10
|
+
*
|
|
11
|
+
* All write methods generate UUIDs client-side and fire-and-forget via
|
|
12
|
+
* the background queue (Ghost SDK). IDs are available immediately.
|
|
10
13
|
*/
|
|
11
14
|
declare class IntentHandle {
|
|
12
15
|
private client;
|
|
@@ -16,7 +19,7 @@ declare class IntentHandle {
|
|
|
16
19
|
decisionId?: string;
|
|
17
20
|
constructor(client: Tenet, intentId: string, sessionId: string);
|
|
18
21
|
/** Snapshot the context the agent sees at decision time. */
|
|
19
|
-
snapshotContext(inputs: Record<string, unknown>, externalVersions?: Record<string, string>):
|
|
22
|
+
snapshotContext(inputs: Record<string, unknown>, externalVersions?: Record<string, string>): string;
|
|
20
23
|
/** Record a decision made by the agent. */
|
|
21
24
|
decide(params: {
|
|
22
25
|
options: ActionOption[];
|
|
@@ -29,7 +32,7 @@ declare class IntentHandle {
|
|
|
29
32
|
metadata?: Record<string, unknown>;
|
|
30
33
|
replayPrompt?: string;
|
|
31
34
|
replayConfig?: ReplayConfig;
|
|
32
|
-
}):
|
|
35
|
+
}): string;
|
|
33
36
|
/** Record an execution — the actual action taken. */
|
|
34
37
|
execute(params: {
|
|
35
38
|
action: string;
|
|
@@ -40,7 +43,7 @@ declare class IntentHandle {
|
|
|
40
43
|
actor?: ActorType;
|
|
41
44
|
overrideReason?: string;
|
|
42
45
|
overriddenBy?: string;
|
|
43
|
-
}):
|
|
46
|
+
}): string;
|
|
44
47
|
/** Create a child intent linked to this one (for multi-agent/MCP). */
|
|
45
48
|
childIntent(params: {
|
|
46
49
|
goal: string;
|
|
@@ -49,7 +52,7 @@ declare class IntentHandle {
|
|
|
49
52
|
constraints?: string[];
|
|
50
53
|
mcpServer?: string;
|
|
51
54
|
toolName?: string;
|
|
52
|
-
}):
|
|
55
|
+
}): IntentHandle;
|
|
53
56
|
}
|
|
54
57
|
/**
|
|
55
58
|
* Tenet AI SDK client.
|
|
@@ -75,13 +78,61 @@ declare class Tenet {
|
|
|
75
78
|
private apiKey;
|
|
76
79
|
private environment;
|
|
77
80
|
private timeout;
|
|
81
|
+
private asyncWrites;
|
|
82
|
+
private maxRetries;
|
|
83
|
+
private onError?;
|
|
84
|
+
/** In-flight background write promises. */
|
|
85
|
+
private _pending;
|
|
86
|
+
/** Capture stats — incremented by _sendWithRetry. */
|
|
87
|
+
private _sent;
|
|
88
|
+
private _failed;
|
|
89
|
+
private _lastSuccessAt;
|
|
78
90
|
constructor(config: TenetConfig);
|
|
79
91
|
private request;
|
|
80
92
|
private post;
|
|
81
93
|
private get;
|
|
94
|
+
/**
|
|
95
|
+
* Fire-and-forget POST for write operations.
|
|
96
|
+
* In async mode, the promise is tracked internally and errors are silently caught.
|
|
97
|
+
* In sync mode (asyncWrites=false), this is a no-op queuer — callers must
|
|
98
|
+
* still await the underlying post call themselves via postWriteSync.
|
|
99
|
+
*
|
|
100
|
+
* @internal — used by IntentHandle and createIntent.
|
|
101
|
+
*/
|
|
102
|
+
postWrite(path: string, body: Record<string, unknown>): void;
|
|
103
|
+
private _sendWithRetry;
|
|
104
|
+
/**
|
|
105
|
+
* Return capture counters for this client instance.
|
|
106
|
+
*
|
|
107
|
+
* ```ts
|
|
108
|
+
* const stats = tenet.getStats();
|
|
109
|
+
* // { sent: 42, failed: 0, lastSuccessAt: Date }
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* `failed > 0` means executions were NOT recorded in Tenet — check
|
|
113
|
+
* backend connectivity and API key.
|
|
114
|
+
*/
|
|
115
|
+
getStats(): {
|
|
116
|
+
sent: number;
|
|
117
|
+
failed: number;
|
|
118
|
+
lastSuccessAt: Date | null;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* Block until all queued background writes have completed (or failed).
|
|
122
|
+
* Use this in tests to ensure writes have landed before reading back.
|
|
123
|
+
*/
|
|
124
|
+
flush(): Promise<void>;
|
|
125
|
+
/**
|
|
126
|
+
* Flush remaining writes. Equivalent to flush() for the JS SDK since
|
|
127
|
+
* there is no background thread to stop — just pending promises.
|
|
128
|
+
*/
|
|
129
|
+
shutdown(): Promise<void>;
|
|
82
130
|
/**
|
|
83
131
|
* Trace a function call, capturing the decision automatically.
|
|
84
132
|
*
|
|
133
|
+
* The function is still awaited (blocking), but all audit writes
|
|
134
|
+
* (intent, context, decision, execution) are fire-and-forget.
|
|
135
|
+
*
|
|
85
136
|
* ```ts
|
|
86
137
|
* const result = await tenet.trace({
|
|
87
138
|
* agentId: 'finance-bot-v1',
|
|
@@ -101,13 +152,16 @@ declare class Tenet {
|
|
|
101
152
|
* ```
|
|
102
153
|
*/
|
|
103
154
|
replay(params: ReplayParams): Promise<ReplayResult>;
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
|
|
155
|
+
/**
|
|
156
|
+
* Create an intent and return a handle for chaining context/decision/execution.
|
|
157
|
+
* UUID is generated client-side; the write is fire-and-forget.
|
|
158
|
+
*/
|
|
159
|
+
createIntent(params: IntentCreateParams): IntentHandle;
|
|
160
|
+
/** @deprecated Use intent.snapshotContext() instead. Kept for backward compat. */
|
|
107
161
|
createContext(params: ContextCreateParams): Promise<ContextResponse>;
|
|
108
|
-
/**
|
|
162
|
+
/** @deprecated Use intent.decide() instead. Kept for backward compat. */
|
|
109
163
|
createDecision(params: DecisionCreateParams): Promise<DecisionResponse>;
|
|
110
|
-
/**
|
|
164
|
+
/** @deprecated Use intent.execute() instead. Kept for backward compat. */
|
|
111
165
|
createExecution(params: ExecutionCreateParams): Promise<ExecutionResponse>;
|
|
112
166
|
/** Get an intent by ID. */
|
|
113
167
|
getIntent(intentId: string): Promise<IntentResponse>;
|
package/dist/client.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.IntentHandle = exports.TenetError = exports.Tenet = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const types_1 = require("./types");
|
|
6
|
+
const SDK_VERSION = "0.2.0";
|
|
6
7
|
class TenetError extends Error {
|
|
7
8
|
status;
|
|
8
9
|
body;
|
|
@@ -17,6 +18,9 @@ exports.TenetError = TenetError;
|
|
|
17
18
|
/**
|
|
18
19
|
* Handle for an in-progress intent. Provides methods to snapshot context,
|
|
19
20
|
* record decisions, and record executions.
|
|
21
|
+
*
|
|
22
|
+
* All write methods generate UUIDs client-side and fire-and-forget via
|
|
23
|
+
* the background queue (Ghost SDK). IDs are available immediately.
|
|
20
24
|
*/
|
|
21
25
|
class IntentHandle {
|
|
22
26
|
client;
|
|
@@ -30,57 +34,76 @@ class IntentHandle {
|
|
|
30
34
|
this.sessionId = sessionId;
|
|
31
35
|
}
|
|
32
36
|
/** Snapshot the context the agent sees at decision time. */
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
37
|
+
snapshotContext(inputs, externalVersions) {
|
|
38
|
+
const contextId = (0, crypto_1.randomUUID)();
|
|
39
|
+
this.client.postWrite("/contexts", {
|
|
40
|
+
id: contextId,
|
|
41
|
+
intent_id: this.intentId,
|
|
36
42
|
inputs,
|
|
37
|
-
externalVersions,
|
|
43
|
+
external_versions: externalVersions ?? {},
|
|
38
44
|
});
|
|
39
|
-
this.contextId =
|
|
45
|
+
this.contextId = contextId;
|
|
40
46
|
return this.contextId;
|
|
41
47
|
}
|
|
42
48
|
/** Record a decision made by the agent. */
|
|
43
|
-
|
|
49
|
+
decide(params) {
|
|
44
50
|
if (!this.contextId) {
|
|
45
51
|
throw new Error("Must call snapshotContext before decide");
|
|
46
52
|
}
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
53
|
+
const decisionId = (0, crypto_1.randomUUID)();
|
|
54
|
+
const body = {
|
|
55
|
+
id: decisionId,
|
|
56
|
+
intent_id: this.intentId,
|
|
57
|
+
context_id: this.contextId,
|
|
50
58
|
options: params.options,
|
|
51
|
-
|
|
59
|
+
chosen_action: params.chosenAction,
|
|
52
60
|
confidence: params.confidence,
|
|
53
|
-
|
|
54
|
-
|
|
61
|
+
model_version: params.modelVersion ?? "unknown",
|
|
62
|
+
rules_evaluated: params.rulesEvaluated ?? [],
|
|
55
63
|
reasoning: params.reasoning,
|
|
56
|
-
tags: params.tags,
|
|
57
|
-
metadata: params.metadata,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
tags: params.tags ?? [],
|
|
65
|
+
metadata: params.metadata ?? {},
|
|
66
|
+
};
|
|
67
|
+
if (params.replayPrompt)
|
|
68
|
+
body.replay_prompt = params.replayPrompt;
|
|
69
|
+
if (params.replayConfig) {
|
|
70
|
+
body.replay_config = {
|
|
71
|
+
model: params.replayConfig.model,
|
|
72
|
+
temperature: params.replayConfig.temperature,
|
|
73
|
+
max_tokens: params.replayConfig.maxTokens,
|
|
74
|
+
api_base: params.replayConfig.apiBase,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
this.client.postWrite("/decisions", body);
|
|
78
|
+
this.decisionId = decisionId;
|
|
62
79
|
return this.decisionId;
|
|
63
80
|
}
|
|
64
81
|
/** Record an execution — the actual action taken. */
|
|
65
|
-
|
|
82
|
+
execute(params) {
|
|
66
83
|
if (!this.decisionId) {
|
|
67
84
|
throw new Error("Must call decide before execute");
|
|
68
85
|
}
|
|
69
|
-
const
|
|
70
|
-
|
|
86
|
+
const executionId = (0, crypto_1.randomUUID)();
|
|
87
|
+
const body = {
|
|
88
|
+
id: executionId,
|
|
89
|
+
decision_id: this.decisionId,
|
|
71
90
|
action: params.action,
|
|
72
91
|
target: params.target,
|
|
73
|
-
result: params.result,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
92
|
+
result: params.result ?? types_1.ResultType.SUCCESS,
|
|
93
|
+
side_effects: params.sideEffects ?? [],
|
|
94
|
+
actor: params.actor ?? types_1.ActorType.AGENT,
|
|
95
|
+
};
|
|
96
|
+
if (params.revertAction)
|
|
97
|
+
body.revert_action = params.revertAction;
|
|
98
|
+
if (params.overrideReason)
|
|
99
|
+
body.override_reason = params.overrideReason;
|
|
100
|
+
if (params.overriddenBy)
|
|
101
|
+
body.overridden_by = params.overriddenBy;
|
|
102
|
+
this.client.postWrite("/executions", body);
|
|
103
|
+
return executionId;
|
|
81
104
|
}
|
|
82
105
|
/** Create a child intent linked to this one (for multi-agent/MCP). */
|
|
83
|
-
|
|
106
|
+
childIntent(params) {
|
|
84
107
|
return this.client.createIntent({
|
|
85
108
|
goal: params.goal,
|
|
86
109
|
agentId: params.agentId,
|
|
@@ -118,11 +141,23 @@ class Tenet {
|
|
|
118
141
|
apiKey;
|
|
119
142
|
environment;
|
|
120
143
|
timeout;
|
|
144
|
+
asyncWrites;
|
|
145
|
+
maxRetries;
|
|
146
|
+
onError;
|
|
147
|
+
/** In-flight background write promises. */
|
|
148
|
+
_pending = [];
|
|
149
|
+
/** Capture stats — incremented by _sendWithRetry. */
|
|
150
|
+
_sent = 0;
|
|
151
|
+
_failed = 0;
|
|
152
|
+
_lastSuccessAt = null;
|
|
121
153
|
constructor(config) {
|
|
122
154
|
this.apiKey = config.apiKey;
|
|
123
155
|
this.endpoint = (config.endpoint ?? "https://ael-backend.onrender.com").replace(/\/+$/, "");
|
|
124
156
|
this.environment = config.environment ?? "production";
|
|
125
157
|
this.timeout = config.timeout ?? 30000;
|
|
158
|
+
this.asyncWrites = config.asyncWrites !== false; // default true
|
|
159
|
+
this.maxRetries = config.maxRetries ?? 3;
|
|
160
|
+
this.onError = config.onError;
|
|
126
161
|
}
|
|
127
162
|
// --- HTTP helpers ---
|
|
128
163
|
async request(method, path, body) {
|
|
@@ -130,6 +165,7 @@ class Tenet {
|
|
|
130
165
|
const headers = {
|
|
131
166
|
"Content-Type": "application/json",
|
|
132
167
|
"X-API-Key": this.apiKey,
|
|
168
|
+
"User-Agent": `tenet-sdk-node/${SDK_VERSION}`,
|
|
133
169
|
};
|
|
134
170
|
const controller = new AbortController();
|
|
135
171
|
const timer = setTimeout(() => controller.abort(), this.timeout);
|
|
@@ -165,12 +201,93 @@ class Tenet {
|
|
|
165
201
|
get(path) {
|
|
166
202
|
return this.request("GET", path);
|
|
167
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Fire-and-forget POST for write operations.
|
|
206
|
+
* In async mode, the promise is tracked internally and errors are silently caught.
|
|
207
|
+
* In sync mode (asyncWrites=false), this is a no-op queuer — callers must
|
|
208
|
+
* still await the underlying post call themselves via postWriteSync.
|
|
209
|
+
*
|
|
210
|
+
* @internal — used by IntentHandle and createIntent.
|
|
211
|
+
*/
|
|
212
|
+
postWrite(path, body) {
|
|
213
|
+
if (!this.asyncWrites) {
|
|
214
|
+
// Synchronous mode: run the request and track the promise so flush() works
|
|
215
|
+
const p = this._sendWithRetry(path, body).catch(() => { });
|
|
216
|
+
this._pending.push(p);
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// Async (Ghost) mode: fire-and-forget with silent error handling
|
|
220
|
+
const p = this._sendWithRetry(path, body).catch(() => { });
|
|
221
|
+
this._pending.push(p);
|
|
222
|
+
}
|
|
223
|
+
async _sendWithRetry(path, body, attempt = 0) {
|
|
224
|
+
try {
|
|
225
|
+
await this.post(path, body);
|
|
226
|
+
this._sent++;
|
|
227
|
+
this._lastSuccessAt = new Date();
|
|
228
|
+
}
|
|
229
|
+
catch (err) {
|
|
230
|
+
if (attempt + 1 < this.maxRetries) {
|
|
231
|
+
return this._sendWithRetry(path, body, attempt + 1);
|
|
232
|
+
}
|
|
233
|
+
// Final failure — log a visible warning and increment counter
|
|
234
|
+
this._failed++;
|
|
235
|
+
const attempts = attempt + 1;
|
|
236
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
237
|
+
console.warn(`[tenet] capture FAILED for ${path} after ${attempts} attempt(s): ${msg} — ` +
|
|
238
|
+
`this execution will NOT appear in the Tenet dashboard.`);
|
|
239
|
+
if (this.onError && err instanceof Error) {
|
|
240
|
+
try {
|
|
241
|
+
this.onError(err, { path, body, attempts });
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
// Never let the callback crash us
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Return capture counters for this client instance.
|
|
251
|
+
*
|
|
252
|
+
* ```ts
|
|
253
|
+
* const stats = tenet.getStats();
|
|
254
|
+
* // { sent: 42, failed: 0, lastSuccessAt: Date }
|
|
255
|
+
* ```
|
|
256
|
+
*
|
|
257
|
+
* `failed > 0` means executions were NOT recorded in Tenet — check
|
|
258
|
+
* backend connectivity and API key.
|
|
259
|
+
*/
|
|
260
|
+
getStats() {
|
|
261
|
+
return {
|
|
262
|
+
sent: this._sent,
|
|
263
|
+
failed: this._failed,
|
|
264
|
+
lastSuccessAt: this._lastSuccessAt,
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Block until all queued background writes have completed (or failed).
|
|
269
|
+
* Use this in tests to ensure writes have landed before reading back.
|
|
270
|
+
*/
|
|
271
|
+
async flush() {
|
|
272
|
+
const pending = this._pending.splice(0);
|
|
273
|
+
await Promise.all(pending);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Flush remaining writes. Equivalent to flush() for the JS SDK since
|
|
277
|
+
* there is no background thread to stop — just pending promises.
|
|
278
|
+
*/
|
|
279
|
+
async shutdown() {
|
|
280
|
+
await this.flush();
|
|
281
|
+
}
|
|
168
282
|
// ============================================================
|
|
169
283
|
// High-level API (matches docs)
|
|
170
284
|
// ============================================================
|
|
171
285
|
/**
|
|
172
286
|
* Trace a function call, capturing the decision automatically.
|
|
173
287
|
*
|
|
288
|
+
* The function is still awaited (blocking), but all audit writes
|
|
289
|
+
* (intent, context, decision, execution) are fire-and-forget.
|
|
290
|
+
*
|
|
174
291
|
* ```ts
|
|
175
292
|
* const result = await tenet.trace({
|
|
176
293
|
* agentId: 'finance-bot-v1',
|
|
@@ -183,22 +300,19 @@ class Tenet {
|
|
|
183
300
|
async trace(params) {
|
|
184
301
|
const sessionId = params.sessionId ?? (0, crypto_1.randomUUID)();
|
|
185
302
|
const modelVersion = params.modelVersion ?? "unknown";
|
|
186
|
-
// 1. Create intent
|
|
187
|
-
const intent =
|
|
303
|
+
// 1. Create intent (fire-and-forget)
|
|
304
|
+
const intent = this.createIntent({
|
|
188
305
|
goal: `trace:${params.agentId}`,
|
|
189
306
|
agentId: params.agentId,
|
|
190
307
|
sessionId,
|
|
191
308
|
origin: types_1.OriginType.AGENT,
|
|
192
309
|
environment: this.environment,
|
|
193
310
|
});
|
|
194
|
-
// 2. Snapshot context (
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
metadata: params.metadata ?? {},
|
|
200
|
-
tags: params.tags ?? [],
|
|
201
|
-
},
|
|
311
|
+
// 2. Snapshot context (fire-and-forget)
|
|
312
|
+
const contextId = intent.snapshotContext({
|
|
313
|
+
agent_id: params.agentId,
|
|
314
|
+
metadata: params.metadata ?? {},
|
|
315
|
+
tags: params.tags ?? [],
|
|
202
316
|
});
|
|
203
317
|
// 3. Execute the wrapped function
|
|
204
318
|
let output;
|
|
@@ -212,10 +326,8 @@ class Tenet {
|
|
|
212
326
|
error = e instanceof Error ? e.message : String(e);
|
|
213
327
|
output = undefined;
|
|
214
328
|
}
|
|
215
|
-
// 4. Record decision
|
|
216
|
-
const
|
|
217
|
-
intentId: intent.intentId,
|
|
218
|
-
contextId: context.id,
|
|
329
|
+
// 4. Record decision (fire-and-forget)
|
|
330
|
+
const decisionId = intent.decide({
|
|
219
331
|
options: [
|
|
220
332
|
{
|
|
221
333
|
action: params.agentId,
|
|
@@ -229,9 +341,8 @@ class Tenet {
|
|
|
229
341
|
tags: params.tags,
|
|
230
342
|
metadata: params.metadata,
|
|
231
343
|
});
|
|
232
|
-
// 5. Record execution
|
|
233
|
-
const
|
|
234
|
-
decisionId: decision.id,
|
|
344
|
+
// 5. Record execution (fire-and-forget)
|
|
345
|
+
const executionId = intent.execute({
|
|
235
346
|
action: params.agentId,
|
|
236
347
|
target: { output: success ? output : null },
|
|
237
348
|
result: success ? types_1.ResultType.SUCCESS : types_1.ResultType.FAILURE,
|
|
@@ -241,12 +352,12 @@ class Tenet {
|
|
|
241
352
|
throw new Error(error);
|
|
242
353
|
}
|
|
243
354
|
return {
|
|
244
|
-
id:
|
|
355
|
+
id: decisionId,
|
|
245
356
|
output,
|
|
246
357
|
intentId: intent.intentId,
|
|
247
|
-
contextId
|
|
248
|
-
decisionId
|
|
249
|
-
executionId
|
|
358
|
+
contextId,
|
|
359
|
+
decisionId,
|
|
360
|
+
executionId,
|
|
250
361
|
};
|
|
251
362
|
}
|
|
252
363
|
/**
|
|
@@ -302,10 +413,15 @@ class Tenet {
|
|
|
302
413
|
// ============================================================
|
|
303
414
|
// Low-level API (full control, mirrors Python SDK)
|
|
304
415
|
// ============================================================
|
|
305
|
-
/**
|
|
306
|
-
|
|
416
|
+
/**
|
|
417
|
+
* Create an intent and return a handle for chaining context/decision/execution.
|
|
418
|
+
* UUID is generated client-side; the write is fire-and-forget.
|
|
419
|
+
*/
|
|
420
|
+
createIntent(params) {
|
|
307
421
|
const sessionId = params.sessionId ?? (0, crypto_1.randomUUID)();
|
|
422
|
+
const intentId = (0, crypto_1.randomUUID)();
|
|
308
423
|
const body = {
|
|
424
|
+
id: intentId,
|
|
309
425
|
goal: params.goal,
|
|
310
426
|
agent_id: params.agentId ?? "default",
|
|
311
427
|
session_id: sessionId,
|
|
@@ -320,20 +436,29 @@ class Tenet {
|
|
|
320
436
|
body.tool_name = params.toolName;
|
|
321
437
|
if (params.environment)
|
|
322
438
|
body.environment = params.environment;
|
|
323
|
-
|
|
324
|
-
return new IntentHandle(this,
|
|
439
|
+
this.postWrite("/intents", body);
|
|
440
|
+
return new IntentHandle(this, intentId, sessionId);
|
|
325
441
|
}
|
|
326
|
-
/**
|
|
442
|
+
/** @deprecated Use intent.snapshotContext() instead. Kept for backward compat. */
|
|
327
443
|
async createContext(params) {
|
|
328
|
-
|
|
444
|
+
const contextId = (0, crypto_1.randomUUID)();
|
|
445
|
+
const body = {
|
|
446
|
+
id: contextId,
|
|
329
447
|
intent_id: params.intentId,
|
|
330
448
|
inputs: params.inputs,
|
|
331
449
|
external_versions: params.externalVersions ?? {},
|
|
332
|
-
}
|
|
450
|
+
};
|
|
451
|
+
if (this.asyncWrites) {
|
|
452
|
+
this.postWrite("/contexts", body);
|
|
453
|
+
return { id: contextId, intent_id: params.intentId, inputs: params.inputs, external_versions: params.externalVersions ?? {}, snapshot_hash: "", created_at: "" };
|
|
454
|
+
}
|
|
455
|
+
return this.post("/contexts", body);
|
|
333
456
|
}
|
|
334
|
-
/**
|
|
457
|
+
/** @deprecated Use intent.decide() instead. Kept for backward compat. */
|
|
335
458
|
async createDecision(params) {
|
|
459
|
+
const decisionId = (0, crypto_1.randomUUID)();
|
|
336
460
|
const body = {
|
|
461
|
+
id: decisionId,
|
|
337
462
|
intent_id: params.intentId,
|
|
338
463
|
context_id: params.contextId,
|
|
339
464
|
options: params.options,
|
|
@@ -355,11 +480,17 @@ class Tenet {
|
|
|
355
480
|
api_base: params.replayConfig.apiBase,
|
|
356
481
|
};
|
|
357
482
|
}
|
|
483
|
+
if (this.asyncWrites) {
|
|
484
|
+
this.postWrite("/decisions", body);
|
|
485
|
+
return { id: decisionId, intent_id: params.intentId, context_id: params.contextId, options: params.options, chosen_action: params.chosenAction, confidence: params.confidence, model_version: params.modelVersion, rules_evaluated: params.rulesEvaluated ?? [], tags: params.tags ?? [], metadata: params.metadata ?? {}, created_at: "" };
|
|
486
|
+
}
|
|
358
487
|
return this.post("/decisions", body);
|
|
359
488
|
}
|
|
360
|
-
/**
|
|
489
|
+
/** @deprecated Use intent.execute() instead. Kept for backward compat. */
|
|
361
490
|
async createExecution(params) {
|
|
491
|
+
const executionId = (0, crypto_1.randomUUID)();
|
|
362
492
|
const body = {
|
|
493
|
+
id: executionId,
|
|
363
494
|
decision_id: params.decisionId,
|
|
364
495
|
action: params.action,
|
|
365
496
|
target: params.target,
|
|
@@ -373,6 +504,10 @@ class Tenet {
|
|
|
373
504
|
body.override_reason = params.overrideReason;
|
|
374
505
|
if (params.overriddenBy)
|
|
375
506
|
body.overridden_by = params.overriddenBy;
|
|
507
|
+
if (this.asyncWrites) {
|
|
508
|
+
this.postWrite("/executions", body);
|
|
509
|
+
return { id: executionId, decision_id: params.decisionId, action: params.action, target: params.target, result: (params.result ?? types_1.ResultType.SUCCESS), side_effects: params.sideEffects ?? [], actor: (params.actor ?? types_1.ActorType.AGENT), created_at: "" };
|
|
510
|
+
}
|
|
376
511
|
return this.post("/executions", body);
|
|
377
512
|
}
|
|
378
513
|
// --- Read endpoints ---
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -17,6 +17,12 @@ export interface TenetConfig {
|
|
|
17
17
|
endpoint?: string;
|
|
18
18
|
environment?: string;
|
|
19
19
|
timeout?: number;
|
|
20
|
+
/** Enable fire-and-forget writes via background queue. Defaults to true. */
|
|
21
|
+
asyncWrites?: boolean;
|
|
22
|
+
/** Max retries for failed background writes before silent drop. Defaults to 3. */
|
|
23
|
+
maxRetries?: number;
|
|
24
|
+
/** Callback for observability into background write failures. */
|
|
25
|
+
onError?: (error: Error, payload: Record<string, unknown>) => void;
|
|
20
26
|
}
|
|
21
27
|
export interface ActionOption {
|
|
22
28
|
action: string;
|