@tenet-ai/sdk 0.1.2 → 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 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 **drift detection**.
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 = await tenet.createIntent({
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
- await intent.snapshotContext({
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
- await intent.decide({
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 = await intent.execute({
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 = await tenet.createIntent({
108
+ const intent = tenet.createIntent({
106
109
  goal: "Handle support ticket",
107
110
  agentId: "support-agent",
108
111
  });
109
112
 
110
- await intent.snapshotContext({ ticket_id: "T-123", priority: "high" });
113
+ intent.snapshotContext({ ticket_id: "T-123", priority: "high" });
111
114
 
112
- await intent.decide({
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 = await intent.execute({
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 = await tenet.createIntent({
147
+ const parent = tenet.createIntent({
142
148
  goal: "Process customer request",
143
149
  agentId: "orchestrator",
144
150
  });
145
151
 
146
- await parent.snapshotContext({ request: "refund for order 123" });
152
+ parent.snapshotContext({ request: "refund for order 123" });
147
153
 
148
154
  // Spawn child intent for sub-agent
149
- const child = await parent.childIntent({
155
+ const child = parent.childIntent({
150
156
  goal: "Search order history",
151
157
  mcpServer: "database",
152
158
  });
153
159
 
154
- await child.snapshotContext({ query: "order 123" });
155
- await child.decide({
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
- await child.execute({
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
- await parent.decide({
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
- await parent.execute({
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
- await intent.execute({
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,75 @@ 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
+
195
270
  ---
196
271
 
197
272
  ## Framework Integrations
@@ -267,6 +342,8 @@ const tenet = new Tenet({
267
342
  endpoint: "https://ael-backend.onrender.com", // Optional (default: production)
268
343
  environment: "production", // Optional
269
344
  timeout: 30000, // Optional (ms)
345
+ asyncWrites: true, // Optional (Ghost SDK, default: true)
346
+ onError: (err, payload) => console.error(err), // Optional
270
347
  });
271
348
  ```
272
349
 
@@ -276,12 +353,14 @@ const tenet = new Tenet({
276
353
  |--------|-------------|
277
354
  | `tenet.trace({ agentId, fn, ... })` | Wrap a function call with automatic audit trail |
278
355
  | `tenet.replay({ executionId })` | Replay a past decision and detect drift |
356
+ | `tenet.flush()` | Wait for all background writes to complete |
357
+ | `tenet.shutdown()` | Flush and clean up |
279
358
 
280
- ### Low-Level Methods
359
+ ### Low-Level Methods (Synchronous — Fire-and-Forget)
281
360
 
282
361
  | Method | Description |
283
362
  |--------|-------------|
284
- | `tenet.createIntent({ goal, agentId })` | Create an intent, returns `IntentHandle` |
363
+ | `tenet.createIntent({ goal, agentId })` | Create an intent, returns `IntentHandle` immediately |
285
364
  | `intent.snapshotContext(inputs)` | Capture what the agent sees |
286
365
  | `intent.decide({ options, chosenAction, confidence })` | Record a decision |
287
366
  | `intent.execute({ action, target, result })` | Record execution |
@@ -300,6 +379,17 @@ const tenet = new Tenet({
300
379
  | `tenet.getExecution(id)` | Get execution details |
301
380
  | `tenet.getSessionTimeline(sessionId)` | Get full session timeline |
302
381
 
382
+ ### Guardrail Endpoints
383
+
384
+ | Method | Description |
385
+ |--------|-------------|
386
+ | `POST /api/v1/guardrails` | Create a guardrail rule |
387
+ | `GET /api/v1/guardrails` | List guardrails (filter by `is_active`, `rule_type`) |
388
+ | `GET /api/v1/guardrails/{id}` | Get guardrail by ID |
389
+ | `PATCH /api/v1/guardrails/{id}` | Update a guardrail |
390
+ | `DELETE /api/v1/guardrails/{id}` | Delete a guardrail |
391
+ | `GET /api/v1/guardrails/{id}/evaluations` | List evaluation history |
392
+
303
393
  ### Advanced
304
394
 
305
395
  | 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>): Promise<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
- }): Promise<string>;
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
- }): Promise<string>;
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
- }): Promise<IntentHandle>;
55
+ }): IntentHandle;
53
56
  }
54
57
  /**
55
58
  * Tenet AI SDK client.
@@ -75,13 +78,41 @@ 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;
78
86
  constructor(config: TenetConfig);
79
87
  private request;
80
88
  private post;
81
89
  private get;
90
+ /**
91
+ * Fire-and-forget POST for write operations.
92
+ * In async mode, the promise is tracked internally and errors are silently caught.
93
+ * In sync mode (asyncWrites=false), this is a no-op queuer — callers must
94
+ * still await the underlying post call themselves via postWriteSync.
95
+ *
96
+ * @internal — used by IntentHandle and createIntent.
97
+ */
98
+ postWrite(path: string, body: Record<string, unknown>): void;
99
+ private _sendWithRetry;
100
+ /**
101
+ * Block until all queued background writes have completed (or failed).
102
+ * Use this in tests to ensure writes have landed before reading back.
103
+ */
104
+ flush(): Promise<void>;
105
+ /**
106
+ * Flush remaining writes. Equivalent to flush() for the JS SDK since
107
+ * there is no background thread to stop — just pending promises.
108
+ */
109
+ shutdown(): Promise<void>;
82
110
  /**
83
111
  * Trace a function call, capturing the decision automatically.
84
112
  *
113
+ * The function is still awaited (blocking), but all audit writes
114
+ * (intent, context, decision, execution) are fire-and-forget.
115
+ *
85
116
  * ```ts
86
117
  * const result = await tenet.trace({
87
118
  * agentId: 'finance-bot-v1',
@@ -101,13 +132,16 @@ declare class Tenet {
101
132
  * ```
102
133
  */
103
134
  replay(params: ReplayParams): Promise<ReplayResult>;
104
- /** Create an intent and return a handle for chaining context/decision/execution. */
105
- createIntent(params: IntentCreateParams): Promise<IntentHandle>;
106
- /** Snapshot context for an intent. */
135
+ /**
136
+ * Create an intent and return a handle for chaining context/decision/execution.
137
+ * UUID is generated client-side; the write is fire-and-forget.
138
+ */
139
+ createIntent(params: IntentCreateParams): IntentHandle;
140
+ /** @deprecated Use intent.snapshotContext() instead. Kept for backward compat. */
107
141
  createContext(params: ContextCreateParams): Promise<ContextResponse>;
108
- /** Record a decision. */
142
+ /** @deprecated Use intent.decide() instead. Kept for backward compat. */
109
143
  createDecision(params: DecisionCreateParams): Promise<DecisionResponse>;
110
- /** Record an execution. */
144
+ /** @deprecated Use intent.execute() instead. Kept for backward compat. */
111
145
  createExecution(params: ExecutionCreateParams): Promise<ExecutionResponse>;
112
146
  /** Get an intent by ID. */
113
147
  getIntent(intentId: string): Promise<IntentResponse>;
package/dist/client.js CHANGED
@@ -17,6 +17,9 @@ exports.TenetError = TenetError;
17
17
  /**
18
18
  * Handle for an in-progress intent. Provides methods to snapshot context,
19
19
  * record decisions, and record executions.
20
+ *
21
+ * All write methods generate UUIDs client-side and fire-and-forget via
22
+ * the background queue (Ghost SDK). IDs are available immediately.
20
23
  */
21
24
  class IntentHandle {
22
25
  client;
@@ -30,57 +33,76 @@ class IntentHandle {
30
33
  this.sessionId = sessionId;
31
34
  }
32
35
  /** Snapshot the context the agent sees at decision time. */
33
- async snapshotContext(inputs, externalVersions) {
34
- const response = await this.client.createContext({
35
- intentId: this.intentId,
36
+ snapshotContext(inputs, externalVersions) {
37
+ const contextId = (0, crypto_1.randomUUID)();
38
+ this.client.postWrite("/contexts", {
39
+ id: contextId,
40
+ intent_id: this.intentId,
36
41
  inputs,
37
- externalVersions,
42
+ external_versions: externalVersions ?? {},
38
43
  });
39
- this.contextId = response.id;
44
+ this.contextId = contextId;
40
45
  return this.contextId;
41
46
  }
42
47
  /** Record a decision made by the agent. */
43
- async decide(params) {
48
+ decide(params) {
44
49
  if (!this.contextId) {
45
50
  throw new Error("Must call snapshotContext before decide");
46
51
  }
47
- const response = await this.client.createDecision({
48
- intentId: this.intentId,
49
- contextId: this.contextId,
52
+ const decisionId = (0, crypto_1.randomUUID)();
53
+ const body = {
54
+ id: decisionId,
55
+ intent_id: this.intentId,
56
+ context_id: this.contextId,
50
57
  options: params.options,
51
- chosenAction: params.chosenAction,
58
+ chosen_action: params.chosenAction,
52
59
  confidence: params.confidence,
53
- modelVersion: params.modelVersion ?? "unknown",
54
- rulesEvaluated: params.rulesEvaluated,
60
+ model_version: params.modelVersion ?? "unknown",
61
+ rules_evaluated: params.rulesEvaluated ?? [],
55
62
  reasoning: params.reasoning,
56
- tags: params.tags,
57
- metadata: params.metadata,
58
- replayPrompt: params.replayPrompt,
59
- replayConfig: params.replayConfig,
60
- });
61
- this.decisionId = response.id;
63
+ tags: params.tags ?? [],
64
+ metadata: params.metadata ?? {},
65
+ };
66
+ if (params.replayPrompt)
67
+ body.replay_prompt = params.replayPrompt;
68
+ if (params.replayConfig) {
69
+ body.replay_config = {
70
+ model: params.replayConfig.model,
71
+ temperature: params.replayConfig.temperature,
72
+ max_tokens: params.replayConfig.maxTokens,
73
+ api_base: params.replayConfig.apiBase,
74
+ };
75
+ }
76
+ this.client.postWrite("/decisions", body);
77
+ this.decisionId = decisionId;
62
78
  return this.decisionId;
63
79
  }
64
80
  /** Record an execution — the actual action taken. */
65
- async execute(params) {
81
+ execute(params) {
66
82
  if (!this.decisionId) {
67
83
  throw new Error("Must call decide before execute");
68
84
  }
69
- const response = await this.client.createExecution({
70
- decisionId: this.decisionId,
85
+ const executionId = (0, crypto_1.randomUUID)();
86
+ const body = {
87
+ id: executionId,
88
+ decision_id: this.decisionId,
71
89
  action: params.action,
72
90
  target: params.target,
73
- result: params.result,
74
- sideEffects: params.sideEffects,
75
- revertAction: params.revertAction,
76
- actor: params.actor,
77
- overrideReason: params.overrideReason,
78
- overriddenBy: params.overriddenBy,
79
- });
80
- return response.id;
91
+ result: params.result ?? types_1.ResultType.SUCCESS,
92
+ side_effects: params.sideEffects ?? [],
93
+ actor: params.actor ?? types_1.ActorType.AGENT,
94
+ };
95
+ if (params.revertAction)
96
+ body.revert_action = params.revertAction;
97
+ if (params.overrideReason)
98
+ body.override_reason = params.overrideReason;
99
+ if (params.overriddenBy)
100
+ body.overridden_by = params.overriddenBy;
101
+ this.client.postWrite("/executions", body);
102
+ return executionId;
81
103
  }
82
104
  /** Create a child intent linked to this one (for multi-agent/MCP). */
83
- async childIntent(params) {
105
+ childIntent(params) {
84
106
  return this.client.createIntent({
85
107
  goal: params.goal,
86
108
  agentId: params.agentId,
@@ -118,11 +140,19 @@ class Tenet {
118
140
  apiKey;
119
141
  environment;
120
142
  timeout;
143
+ asyncWrites;
144
+ maxRetries;
145
+ onError;
146
+ /** In-flight background write promises. */
147
+ _pending = [];
121
148
  constructor(config) {
122
149
  this.apiKey = config.apiKey;
123
150
  this.endpoint = (config.endpoint ?? "https://ael-backend.onrender.com").replace(/\/+$/, "");
124
151
  this.environment = config.environment ?? "production";
125
152
  this.timeout = config.timeout ?? 30000;
153
+ this.asyncWrites = config.asyncWrites !== false; // default true
154
+ this.maxRetries = config.maxRetries ?? 3;
155
+ this.onError = config.onError;
126
156
  }
127
157
  // --- HTTP helpers ---
128
158
  async request(method, path, body) {
@@ -165,12 +195,68 @@ class Tenet {
165
195
  get(path) {
166
196
  return this.request("GET", path);
167
197
  }
198
+ /**
199
+ * Fire-and-forget POST for write operations.
200
+ * In async mode, the promise is tracked internally and errors are silently caught.
201
+ * In sync mode (asyncWrites=false), this is a no-op queuer — callers must
202
+ * still await the underlying post call themselves via postWriteSync.
203
+ *
204
+ * @internal — used by IntentHandle and createIntent.
205
+ */
206
+ postWrite(path, body) {
207
+ if (!this.asyncWrites) {
208
+ // Synchronous mode: run the request and track the promise so flush() works
209
+ const p = this._sendWithRetry(path, body).catch(() => { });
210
+ this._pending.push(p);
211
+ return;
212
+ }
213
+ // Async (Ghost) mode: fire-and-forget with silent error handling
214
+ const p = this._sendWithRetry(path, body).catch(() => { });
215
+ this._pending.push(p);
216
+ }
217
+ async _sendWithRetry(path, body, attempt = 0) {
218
+ try {
219
+ await this.post(path, body);
220
+ }
221
+ catch (err) {
222
+ if (attempt + 1 < this.maxRetries) {
223
+ return this._sendWithRetry(path, body, attempt + 1);
224
+ }
225
+ // Final failure: report silently
226
+ if (this.onError && err instanceof Error) {
227
+ try {
228
+ this.onError(err, { path, body, attempts: attempt + 1 });
229
+ }
230
+ catch {
231
+ // Never let the callback crash us
232
+ }
233
+ }
234
+ }
235
+ }
236
+ /**
237
+ * Block until all queued background writes have completed (or failed).
238
+ * Use this in tests to ensure writes have landed before reading back.
239
+ */
240
+ async flush() {
241
+ const pending = this._pending.splice(0);
242
+ await Promise.all(pending);
243
+ }
244
+ /**
245
+ * Flush remaining writes. Equivalent to flush() for the JS SDK since
246
+ * there is no background thread to stop — just pending promises.
247
+ */
248
+ async shutdown() {
249
+ await this.flush();
250
+ }
168
251
  // ============================================================
169
252
  // High-level API (matches docs)
170
253
  // ============================================================
171
254
  /**
172
255
  * Trace a function call, capturing the decision automatically.
173
256
  *
257
+ * The function is still awaited (blocking), but all audit writes
258
+ * (intent, context, decision, execution) are fire-and-forget.
259
+ *
174
260
  * ```ts
175
261
  * const result = await tenet.trace({
176
262
  * agentId: 'finance-bot-v1',
@@ -183,22 +269,19 @@ class Tenet {
183
269
  async trace(params) {
184
270
  const sessionId = params.sessionId ?? (0, crypto_1.randomUUID)();
185
271
  const modelVersion = params.modelVersion ?? "unknown";
186
- // 1. Create intent
187
- const intent = await this.createIntent({
272
+ // 1. Create intent (fire-and-forget)
273
+ const intent = this.createIntent({
188
274
  goal: `trace:${params.agentId}`,
189
275
  agentId: params.agentId,
190
276
  sessionId,
191
277
  origin: types_1.OriginType.AGENT,
192
278
  environment: this.environment,
193
279
  });
194
- // 2. Snapshot context (capture params as inputs)
195
- const context = await this.createContext({
196
- intentId: intent.intentId,
197
- inputs: {
198
- agent_id: params.agentId,
199
- metadata: params.metadata ?? {},
200
- tags: params.tags ?? [],
201
- },
280
+ // 2. Snapshot context (fire-and-forget)
281
+ const contextId = intent.snapshotContext({
282
+ agent_id: params.agentId,
283
+ metadata: params.metadata ?? {},
284
+ tags: params.tags ?? [],
202
285
  });
203
286
  // 3. Execute the wrapped function
204
287
  let output;
@@ -212,10 +295,8 @@ class Tenet {
212
295
  error = e instanceof Error ? e.message : String(e);
213
296
  output = undefined;
214
297
  }
215
- // 4. Record decision
216
- const decision = await this.createDecision({
217
- intentId: intent.intentId,
218
- contextId: context.id,
298
+ // 4. Record decision (fire-and-forget)
299
+ const decisionId = intent.decide({
219
300
  options: [
220
301
  {
221
302
  action: params.agentId,
@@ -229,9 +310,8 @@ class Tenet {
229
310
  tags: params.tags,
230
311
  metadata: params.metadata,
231
312
  });
232
- // 5. Record execution
233
- const execution = await this.createExecution({
234
- decisionId: decision.id,
313
+ // 5. Record execution (fire-and-forget)
314
+ const executionId = intent.execute({
235
315
  action: params.agentId,
236
316
  target: { output: success ? output : null },
237
317
  result: success ? types_1.ResultType.SUCCESS : types_1.ResultType.FAILURE,
@@ -241,12 +321,12 @@ class Tenet {
241
321
  throw new Error(error);
242
322
  }
243
323
  return {
244
- id: decision.id,
324
+ id: decisionId,
245
325
  output,
246
326
  intentId: intent.intentId,
247
- contextId: context.id,
248
- decisionId: decision.id,
249
- executionId: execution.id,
327
+ contextId,
328
+ decisionId,
329
+ executionId,
250
330
  };
251
331
  }
252
332
  /**
@@ -302,10 +382,15 @@ class Tenet {
302
382
  // ============================================================
303
383
  // Low-level API (full control, mirrors Python SDK)
304
384
  // ============================================================
305
- /** Create an intent and return a handle for chaining context/decision/execution. */
306
- async createIntent(params) {
385
+ /**
386
+ * Create an intent and return a handle for chaining context/decision/execution.
387
+ * UUID is generated client-side; the write is fire-and-forget.
388
+ */
389
+ createIntent(params) {
307
390
  const sessionId = params.sessionId ?? (0, crypto_1.randomUUID)();
391
+ const intentId = (0, crypto_1.randomUUID)();
308
392
  const body = {
393
+ id: intentId,
309
394
  goal: params.goal,
310
395
  agent_id: params.agentId ?? "default",
311
396
  session_id: sessionId,
@@ -320,20 +405,29 @@ class Tenet {
320
405
  body.tool_name = params.toolName;
321
406
  if (params.environment)
322
407
  body.environment = params.environment;
323
- const response = await this.post("/intents", body);
324
- return new IntentHandle(this, response.id, sessionId);
408
+ this.postWrite("/intents", body);
409
+ return new IntentHandle(this, intentId, sessionId);
325
410
  }
326
- /** Snapshot context for an intent. */
411
+ /** @deprecated Use intent.snapshotContext() instead. Kept for backward compat. */
327
412
  async createContext(params) {
328
- return this.post("/contexts", {
413
+ const contextId = (0, crypto_1.randomUUID)();
414
+ const body = {
415
+ id: contextId,
329
416
  intent_id: params.intentId,
330
417
  inputs: params.inputs,
331
418
  external_versions: params.externalVersions ?? {},
332
- });
419
+ };
420
+ if (this.asyncWrites) {
421
+ this.postWrite("/contexts", body);
422
+ return { id: contextId, intent_id: params.intentId, inputs: params.inputs, external_versions: params.externalVersions ?? {}, snapshot_hash: "", created_at: "" };
423
+ }
424
+ return this.post("/contexts", body);
333
425
  }
334
- /** Record a decision. */
426
+ /** @deprecated Use intent.decide() instead. Kept for backward compat. */
335
427
  async createDecision(params) {
428
+ const decisionId = (0, crypto_1.randomUUID)();
336
429
  const body = {
430
+ id: decisionId,
337
431
  intent_id: params.intentId,
338
432
  context_id: params.contextId,
339
433
  options: params.options,
@@ -355,11 +449,17 @@ class Tenet {
355
449
  api_base: params.replayConfig.apiBase,
356
450
  };
357
451
  }
452
+ if (this.asyncWrites) {
453
+ this.postWrite("/decisions", body);
454
+ 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: "" };
455
+ }
358
456
  return this.post("/decisions", body);
359
457
  }
360
- /** Record an execution. */
458
+ /** @deprecated Use intent.execute() instead. Kept for backward compat. */
361
459
  async createExecution(params) {
460
+ const executionId = (0, crypto_1.randomUUID)();
362
461
  const body = {
462
+ id: executionId,
363
463
  decision_id: params.decisionId,
364
464
  action: params.action,
365
465
  target: params.target,
@@ -373,6 +473,10 @@ class Tenet {
373
473
  body.override_reason = params.overrideReason;
374
474
  if (params.overriddenBy)
375
475
  body.overridden_by = params.overriddenBy;
476
+ if (this.asyncWrites) {
477
+ this.postWrite("/executions", body);
478
+ 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: "" };
479
+ }
376
480
  return this.post("/executions", body);
377
481
  }
378
482
  // --- Read endpoints ---
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA,mCAAoC;AACpC,mCA2BiB;AAEjB,MAAM,UAAW,SAAQ,KAAK;IACrB,MAAM,CAAS;IACf,IAAI,CAAU;IAErB,YAAY,OAAe,EAAE,MAAc,EAAE,IAAc;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAmjBe,gCAAU;AAjjB1B;;;GAGG;AACH,MAAM,YAAY;IACR,MAAM,CAAQ;IACN,QAAQ,CAAS;IACjB,SAAS,CAAS;IAC3B,SAAS,CAAU;IACnB,UAAU,CAAU;IAE3B,YAAY,MAAa,EAAE,QAAgB,EAAE,SAAiB;QAC5D,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,eAAe,CACnB,MAA+B,EAC/B,gBAAyC;QAEzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;YAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM;YACN,gBAAgB;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,MAAM,CAAC,MAWZ;QACC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAChD,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,SAAS;YAC9C,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,qDAAqD;IACrD,KAAK,CAAC,OAAO,CAAC,MASb;QACC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACjD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC;IACrB,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,WAAW,CAAC,MAOjB;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;YAC9B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,kBAAU,CAAC,KAAK;YACzC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;CACF;AAgc2B,oCAAY;AA9bxC;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,KAAK;IACD,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,WAAW,CAAS;IACpB,OAAO,CAAS;IAExB,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,kCAAkC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,YAAY,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;IACzC,CAAC;IAED,uBAAuB;IAEf,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc;QAEd,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,UAAU,IAAI,EAAE,CAAC;QAC7C,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,WAAW,EAAE,IAAI,CAAC,MAAM;SACzB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,OAAO,GAAgB;gBAC3B,MAAM;gBACN,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;YACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,SAAkB,CAAC;gBACvB,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;gBACD,MAAM,IAAI,UAAU,CAClB,aAAa,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,EACtD,QAAQ,CAAC,MAAM,EACf,SAAS,CACV,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;QACtC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,IAAI,CAAI,IAAY,EAAE,IAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,GAAG,CAAI,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,+DAA+D;IAC/D,iCAAiC;IACjC,+DAA+D;IAE/D;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,KAAK,CAAI,MAAsB;QACnC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAA,mBAAU,GAAE,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC;QAEtD,mBAAmB;QACnB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC;YACrC,IAAI,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;YAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS;YACT,MAAM,EAAE,kBAAU,CAAC,KAAK;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE;gBACN,QAAQ,EAAE,MAAM,CAAC,OAAO;gBACxB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;gBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;aACxB;SACF,CAAC,CAAC;QAEH,kCAAkC;QAClC,IAAI,MAAS,CAAC;QACd,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,KAAyB,CAAC;QAE9B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,GAAG,KAAK,CAAC;YAChB,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,GAAG,SAAc,CAAC;QAC1B,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;YACzC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,OAAO,EAAE;gBACP;oBACE,MAAM,EAAE,MAAM,CAAC,OAAO;oBACtB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;oBAC1B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE;iBACjD;aACF;YACD,YAAY,EAAE,MAAM,CAAC,OAAO;YAC5B,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;YAC/B,YAAY;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC;YAC3C,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,MAAM,EAAE,MAAM,CAAC,OAAO;YACtB,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE;YAC3C,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,kBAAU,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAU,CAAC,OAAO;YACzD,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC;SAC/C,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,WAAW,EAAE,SAAS,CAAC,EAAE;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,uEAAuE;QACvE,iEAAiE;QACjE,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAErC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtC,iDAAiD;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAC/B,qBAAqB,CACtB,CAAC;YACF,4DAA4D;YAC5D,qEAAqE;YACrE,qCAAqC;YACrC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,IAAI,GAA4B;YACpC,cAAc,EAAE,MAAM,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;SACjE,CAAC;QACF,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,aAAa,CAAC;QAC9C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAC5B,WAAW,WAAW,EAAE,EACxB,IAAI,CACL,CAAC;QAEF,iEAAiE;QACjE,IAAI,UAAU,GAAG,GAAG,CAAC;QACrB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,UAAU,GAAG,GAAG,CAAC;QACnB,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YACnE,UAAU,GAAG,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;YACL,GAAG,MAAM;YACT,WAAW,EAAE,UAAU;YACvB,IAAI,EAAE,MAAM,CAAC,KAAK;gBAChB,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;oBACtB,CAAC,CAAC,KAAK;oBACP,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;iBACnE,CAAC,CACH;gBACH,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,oDAAoD;IACpD,+DAA+D;IAE/D,oFAAoF;IACpF,KAAK,CAAC,YAAY,CAAC,MAA0B;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAA,mBAAU,GAAE,CAAC;QAEnD,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,OAAO,IAAI,SAAS;YACrC,UAAU,EAAE,SAAS;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,kBAAU,CAAC,KAAK;YACzC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;SACtC,CAAC;QACF,IAAI,MAAM,CAAC,cAAc;YAAE,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,cAAc,CAAC;QACzE,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;QACzD,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACtD,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAiB,UAAU,EAAE,IAAI,CAAC,CAAC;QACnE,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,aAAa,CAAC,MAA2B;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAkB,WAAW,EAAE;YAC7C,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,iBAAiB,EAAE,MAAM,CAAC,gBAAgB,IAAI,EAAE;SACjD,CAAC,CAAC;IACL,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,cAAc,CAClB,MAA4B;QAE5B,MAAM,IAAI,GAA4B;YACpC,SAAS,EAAE,MAAM,CAAC,QAAQ;YAC1B,UAAU,EAAE,MAAM,CAAC,SAAS;YAC5B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,eAAe,EAAE,MAAM,CAAC,cAAc,IAAI,EAAE;YAC5C,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;SAChC,CAAC;QACF,IAAI,MAAM,CAAC,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QAClE,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG;gBACnB,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK;gBAChC,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,WAAW;gBAC5C,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS;gBACzC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO;aACtC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAmB,YAAY,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,eAAe,CACnB,MAA6B;QAE7B,MAAM,IAAI,GAA4B;YACpC,WAAW,EAAE,MAAM,CAAC,UAAU;YAC9B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,kBAAU,CAAC,OAAO;YAC3C,YAAY,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE;YACtC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,iBAAS,CAAC,KAAK;SACvC,CAAC;QACF,IAAI,MAAM,CAAC,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QAClE,IAAI,MAAM,CAAC,cAAc;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC;QACxE,IAAI,MAAM,CAAC,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAoB,aAAa,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,yBAAyB;IAEzB,2BAA2B;IAC3B,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAiB,YAAY,QAAQ,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,OAAO,IAAI,CAAC,GAAG,CAAmB,YAAY,QAAQ,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QACvC,OAAO,IAAI,CAAC,GAAG,CAAmB,YAAY,QAAQ,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,aAAa,CACjB,QAAgB;QAEhB,OAAO,IAAI,CAAC,GAAG,CAA0B,YAAY,QAAQ,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,UAAU,CAAC,SAAiB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAkB,aAAa,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,4BAA4B;IAC5B,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,GAAG,CAAmB,cAAc,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,aAAa,CACjB,SAA8B,EAAE;QAEhC,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM;YAAE,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,aAAa;YAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9E,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;YAC9B,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI;YAC9B,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAEtE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAqB,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,GAAG,CAAoB,eAAe,WAAW,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,cAAc,CAAC,SAMjB,EAAE;QACJ,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,WAAW;YAAE,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;QACtE,IAAI,MAAM,CAAC,SAAS;YAAE,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,IAAI,MAAM,CAAC,OAAO;YAAE,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAsB,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,OAAO,IAAI,CAAC,GAAG,CAAkB,aAAa,SAAS,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAiB,WAAW,MAAM,CAAC,WAAW,EAAE,EAAE;YAChE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,KAAK;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAE7B,2DAA2D;IAC3D,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/D,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QACnD,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAC9D,IAAI,MAAM,CAAC,UAAU,IAAI,IAAI;YAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACpE,IAAI,MAAM,CAAC,eAAe,IAAI,IAAI;YAChC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAmB,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,wBAAwB,CAC5B,MAA8B;QAE9B,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;QAC/D,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;QACvE,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,MAAM,CAAC,UAAU;YAAE,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAC3D,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;QACnD,OAAO,IAAI,CAAC,IAAI,CAAmB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;CACF;AAEQ,sBAAK"}
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tenet-ai/sdk",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Node.js SDK for Tenet AI - Audit trail and replay for AI agents",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",