@vorionsys/atsf-core 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/index.d.ts +1 -1
- package/dist/api/index.js +1 -1
- package/dist/api/server.d.ts +2 -2
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +147 -184
- package/dist/api/server.js.map +1 -1
- package/dist/arbitration/index.d.ts +4 -4
- package/dist/arbitration/index.d.ts.map +1 -1
- package/dist/arbitration/index.js +41 -46
- package/dist/arbitration/index.js.map +1 -1
- package/dist/arbitration/types.d.ts +10 -10
- package/dist/arbitration/types.d.ts.map +1 -1
- package/dist/basis/evaluator.d.ts +1 -1
- package/dist/basis/evaluator.d.ts.map +1 -1
- package/dist/basis/evaluator.js +54 -56
- package/dist/basis/evaluator.js.map +1 -1
- package/dist/basis/index.d.ts +3 -3
- package/dist/basis/index.js +3 -3
- package/dist/basis/parser.d.ts +2 -2
- package/dist/basis/parser.d.ts.map +1 -1
- package/dist/basis/parser.js +25 -32
- package/dist/basis/parser.js.map +1 -1
- package/dist/basis/types.d.ts +2 -2
- package/dist/chain/index.d.ts.map +1 -1
- package/dist/chain/index.js +16 -16
- package/dist/chain/index.js.map +1 -1
- package/dist/cognigate/index.d.ts +1 -1
- package/dist/cognigate/index.d.ts.map +1 -1
- package/dist/cognigate/index.js +33 -44
- package/dist/cognigate/index.js.map +1 -1
- package/dist/common/adapters.d.ts +4 -4
- package/dist/common/adapters.d.ts.map +1 -1
- package/dist/common/adapters.js +52 -62
- package/dist/common/adapters.js.map +1 -1
- package/dist/common/config.d.ts +69 -68
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +50 -50
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +4 -4
- package/dist/common/index.js +4 -4
- package/dist/common/logger.d.ts +1 -1
- package/dist/common/logger.js +8 -8
- package/dist/common/types.d.ts +5 -5
- package/dist/common/types.js +5 -5
- package/dist/containment/index.d.ts +3 -3
- package/dist/containment/index.d.ts.map +1 -1
- package/dist/containment/index.js +105 -119
- package/dist/containment/index.js.map +1 -1
- package/dist/containment/types.d.ts +11 -11
- package/dist/containment/types.d.ts.map +1 -1
- package/dist/contracts/index.d.ts +9 -9
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +54 -59
- package/dist/contracts/index.js.map +1 -1
- package/dist/contracts/types.d.ts +12 -12
- package/dist/contracts/types.d.ts.map +1 -1
- package/dist/crewai/callback.d.ts +2 -2
- package/dist/crewai/callback.d.ts.map +1 -1
- package/dist/crewai/callback.js +27 -27
- package/dist/crewai/callback.js.map +1 -1
- package/dist/crewai/executor.d.ts +95 -4
- package/dist/crewai/executor.d.ts.map +1 -1
- package/dist/crewai/executor.js +457 -16
- package/dist/crewai/executor.js.map +1 -1
- package/dist/crewai/index.d.ts +4 -4
- package/dist/crewai/index.js +4 -4
- package/dist/crewai/tools.d.ts +1 -1
- package/dist/crewai/tools.d.ts.map +1 -1
- package/dist/crewai/tools.js +38 -39
- package/dist/crewai/tools.js.map +1 -1
- package/dist/crewai/types.d.ts +66 -3
- package/dist/crewai/types.d.ts.map +1 -1
- package/dist/enforce/index.d.ts +229 -7
- package/dist/enforce/index.d.ts.map +1 -1
- package/dist/enforce/index.js +52 -80
- package/dist/enforce/index.js.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.d.ts +8 -8
- package/dist/enforce/trust-aware-enforcement-service.d.ts.map +1 -1
- package/dist/enforce/trust-aware-enforcement-service.js +107 -125
- package/dist/enforce/trust-aware-enforcement-service.js.map +1 -1
- package/dist/governance/fluid-workflow.d.ts +8 -8
- package/dist/governance/fluid-workflow.d.ts.map +1 -1
- package/dist/governance/fluid-workflow.js +86 -114
- package/dist/governance/fluid-workflow.js.map +1 -1
- package/dist/governance/index.d.ts +7 -7
- package/dist/governance/index.d.ts.map +1 -1
- package/dist/governance/index.js +74 -81
- package/dist/governance/index.js.map +1 -1
- package/dist/governance/proof-bridge.d.ts +6 -6
- package/dist/governance/proof-bridge.d.ts.map +1 -1
- package/dist/governance/proof-bridge.js +5 -5
- package/dist/governance/proof-bridge.js.map +1 -1
- package/dist/governance/types.d.ts +9 -16
- package/dist/governance/types.d.ts.map +1 -1
- package/dist/governance/types.js.map +1 -1
- package/dist/index.d.ts +27 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -31
- package/dist/index.js.map +1 -1
- package/dist/intent/index.d.ts +55 -5
- package/dist/intent/index.d.ts.map +1 -1
- package/dist/intent/index.js +21 -24
- package/dist/intent/index.js.map +1 -1
- package/dist/intent/persistent-intent-service.d.ts +2 -2
- package/dist/intent/persistent-intent-service.d.ts.map +1 -1
- package/dist/intent/persistent-intent-service.js +31 -43
- package/dist/intent/persistent-intent-service.js.map +1 -1
- package/dist/intent/supabase-intent-repository.d.ts +124 -0
- package/dist/intent/supabase-intent-repository.d.ts.map +1 -0
- package/dist/intent/supabase-intent-repository.js +404 -0
- package/dist/intent/supabase-intent-repository.js.map +1 -0
- package/dist/langchain/callback.d.ts +2 -2
- package/dist/langchain/callback.d.ts.map +1 -1
- package/dist/langchain/callback.js +30 -30
- package/dist/langchain/callback.js.map +1 -1
- package/dist/langchain/executor.d.ts +4 -4
- package/dist/langchain/executor.d.ts.map +1 -1
- package/dist/langchain/executor.js +80 -82
- package/dist/langchain/executor.js.map +1 -1
- package/dist/langchain/index.d.ts +5 -5
- package/dist/langchain/index.js +5 -5
- package/dist/langchain/tools.d.ts +1 -1
- package/dist/langchain/tools.d.ts.map +1 -1
- package/dist/langchain/tools.js +34 -36
- package/dist/langchain/tools.js.map +1 -1
- package/dist/langchain/types.d.ts +3 -3
- package/dist/langchain/types.d.ts.map +1 -1
- package/dist/layers/implementations/L0-request-format.d.ts +2 -2
- package/dist/layers/implementations/L0-request-format.d.ts.map +1 -1
- package/dist/layers/implementations/L0-request-format.js +52 -54
- package/dist/layers/implementations/L0-request-format.js.map +1 -1
- package/dist/layers/implementations/L1-input-size.d.ts +2 -2
- package/dist/layers/implementations/L1-input-size.d.ts.map +1 -1
- package/dist/layers/implementations/L1-input-size.js +39 -49
- package/dist/layers/implementations/L1-input-size.js.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts +2 -2
- package/dist/layers/implementations/L2-charset-sanitizer.d.ts.map +1 -1
- package/dist/layers/implementations/L2-charset-sanitizer.js +71 -81
- package/dist/layers/implementations/L2-charset-sanitizer.js.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.d.ts +3 -3
- package/dist/layers/implementations/L3-schema-conformance.d.ts.map +1 -1
- package/dist/layers/implementations/L3-schema-conformance.js +73 -82
- package/dist/layers/implementations/L3-schema-conformance.js.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.d.ts +4 -4
- package/dist/layers/implementations/L4-injection-detector.d.ts.map +1 -1
- package/dist/layers/implementations/L4-injection-detector.js +81 -85
- package/dist/layers/implementations/L4-injection-detector.js.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.d.ts +2 -2
- package/dist/layers/implementations/L5-rate-limiter.d.ts.map +1 -1
- package/dist/layers/implementations/L5-rate-limiter.js +20 -20
- package/dist/layers/implementations/L5-rate-limiter.js.map +1 -1
- package/dist/layers/implementations/index.d.ts +6 -6
- package/dist/layers/implementations/index.d.ts.map +1 -1
- package/dist/layers/implementations/index.js +6 -6
- package/dist/layers/implementations/index.js.map +1 -1
- package/dist/layers/index.d.ts +3 -3
- package/dist/layers/index.d.ts.map +1 -1
- package/dist/layers/index.js +71 -99
- package/dist/layers/index.js.map +1 -1
- package/dist/layers/types.d.ts +16 -16
- package/dist/layers/types.d.ts.map +1 -1
- package/dist/persistence/file.d.ts +3 -3
- package/dist/persistence/file.d.ts.map +1 -1
- package/dist/persistence/file.js +28 -32
- package/dist/persistence/file.js.map +1 -1
- package/dist/persistence/index.d.ts +7 -7
- package/dist/persistence/index.d.ts.map +1 -1
- package/dist/persistence/index.js +18 -18
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/memory.d.ts +3 -3
- package/dist/persistence/memory.d.ts.map +1 -1
- package/dist/persistence/memory.js +8 -10
- package/dist/persistence/memory.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +3 -3
- package/dist/persistence/sqlite.d.ts.map +1 -1
- package/dist/persistence/sqlite.js +40 -39
- package/dist/persistence/sqlite.js.map +1 -1
- package/dist/persistence/supabase.d.ts +3 -3
- package/dist/persistence/supabase.d.ts.map +1 -1
- package/dist/persistence/supabase.js +45 -43
- package/dist/persistence/supabase.js.map +1 -1
- package/dist/persistence/types.d.ts +5 -5
- package/dist/phase6/ceiling.d.ts +5 -5
- package/dist/phase6/ceiling.d.ts.map +1 -1
- package/dist/phase6/ceiling.js +36 -69
- package/dist/phase6/ceiling.js.map +1 -1
- package/dist/phase6/context.d.ts +3 -3
- package/dist/phase6/context.d.ts.map +1 -1
- package/dist/phase6/context.js +47 -93
- package/dist/phase6/context.js.map +1 -1
- package/dist/phase6/index.d.ts +12 -12
- package/dist/phase6/index.d.ts.map +1 -1
- package/dist/phase6/index.js +15 -15
- package/dist/phase6/index.js.map +1 -1
- package/dist/phase6/presets.d.ts +2 -2
- package/dist/phase6/presets.d.ts.map +1 -1
- package/dist/phase6/presets.js +33 -39
- package/dist/phase6/presets.js.map +1 -1
- package/dist/phase6/provenance.d.ts +4 -4
- package/dist/phase6/provenance.d.ts.map +1 -1
- package/dist/phase6/provenance.js +35 -42
- package/dist/phase6/provenance.js.map +1 -1
- package/dist/phase6/role-gates/index.d.ts +2 -2
- package/dist/phase6/role-gates/index.js +2 -2
- package/dist/phase6/role-gates/kernel.d.ts.map +1 -1
- package/dist/phase6/role-gates/kernel.js +16 -16
- package/dist/phase6/role-gates/kernel.js.map +1 -1
- package/dist/phase6/role-gates/policy.d.ts +2 -2
- package/dist/phase6/role-gates/policy.js +6 -6
- package/dist/phase6/role-gates.d.ts +4 -4
- package/dist/phase6/role-gates.d.ts.map +1 -1
- package/dist/phase6/role-gates.js +58 -80
- package/dist/phase6/role-gates.js.map +1 -1
- package/dist/phase6/types.d.ts +20 -19
- package/dist/phase6/types.d.ts.map +1 -1
- package/dist/phase6/types.js +82 -177
- package/dist/phase6/types.js.map +1 -1
- package/dist/phase6/weight-presets/canonical.d.ts.map +1 -1
- package/dist/phase6/weight-presets/canonical.js +10 -10
- package/dist/phase6/weight-presets/canonical.js.map +1 -1
- package/dist/phase6/weight-presets/deltas.d.ts +2 -2
- package/dist/phase6/weight-presets/deltas.d.ts.map +1 -1
- package/dist/phase6/weight-presets/deltas.js +27 -27
- package/dist/phase6/weight-presets/deltas.js.map +1 -1
- package/dist/phase6/weight-presets/index.d.ts +3 -3
- package/dist/phase6/weight-presets/index.js +3 -3
- package/dist/phase6/weight-presets/merger.d.ts +2 -2
- package/dist/phase6/weight-presets/merger.d.ts.map +1 -1
- package/dist/phase6/weight-presets/merger.js +43 -39
- package/dist/phase6/weight-presets/merger.js.map +1 -1
- package/dist/proof/index.d.ts +3 -3
- package/dist/proof/index.d.ts.map +1 -1
- package/dist/proof/index.js +38 -44
- package/dist/proof/index.js.map +1 -1
- package/dist/proof/merkle.d.ts +24 -3
- package/dist/proof/merkle.d.ts.map +1 -1
- package/dist/proof/merkle.js +116 -32
- package/dist/proof/merkle.js.map +1 -1
- package/dist/proof/zk-proofs.d.ts +6 -6
- package/dist/proof/zk-proofs.d.ts.map +1 -1
- package/dist/proof/zk-proofs.js +43 -42
- package/dist/proof/zk-proofs.js.map +1 -1
- package/dist/provenance/index.d.ts +3 -3
- package/dist/provenance/index.d.ts.map +1 -1
- package/dist/provenance/index.js +17 -19
- package/dist/provenance/index.js.map +1 -1
- package/dist/provenance/types.d.ts +4 -4
- package/dist/provenance/types.d.ts.map +1 -1
- package/dist/sandbox-training/challenges.d.ts +1 -1
- package/dist/sandbox-training/challenges.d.ts.map +1 -1
- package/dist/sandbox-training/challenges.js +228 -228
- package/dist/sandbox-training/challenges.js.map +1 -1
- package/dist/sandbox-training/graduation.d.ts +1 -1
- package/dist/sandbox-training/graduation.d.ts.map +1 -1
- package/dist/sandbox-training/graduation.js +15 -14
- package/dist/sandbox-training/graduation.js.map +1 -1
- package/dist/sandbox-training/index.d.ts +9 -9
- package/dist/sandbox-training/index.d.ts.map +1 -1
- package/dist/sandbox-training/index.js +6 -6
- package/dist/sandbox-training/index.js.map +1 -1
- package/dist/sandbox-training/promotion-service.d.ts +4 -4
- package/dist/sandbox-training/promotion-service.d.ts.map +1 -1
- package/dist/sandbox-training/promotion-service.js +5 -5
- package/dist/sandbox-training/promotion-service.js.map +1 -1
- package/dist/sandbox-training/runner.d.ts +1 -1
- package/dist/sandbox-training/runner.d.ts.map +1 -1
- package/dist/sandbox-training/runner.js +73 -74
- package/dist/sandbox-training/runner.js.map +1 -1
- package/dist/sandbox-training/scorer.d.ts +4 -4
- package/dist/sandbox-training/scorer.js +5 -5
- package/dist/sandbox-training/types.d.ts +4 -4
- package/dist/sandbox-training/types.d.ts.map +1 -1
- package/dist/sandbox-training/types.js +7 -11
- package/dist/sandbox-training/types.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/audit.js +4 -3
- package/dist/trust-engine/ceiling-enforcement/audit.js.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/index.d.ts +2 -2
- package/dist/trust-engine/ceiling-enforcement/index.js +2 -2
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts +12 -10
- package/dist/trust-engine/ceiling-enforcement/kernel.d.ts.map +1 -1
- package/dist/trust-engine/ceiling-enforcement/kernel.js +26 -20
- package/dist/trust-engine/ceiling-enforcement/kernel.js.map +1 -1
- package/dist/trust-engine/context-policy/enforcement.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts +1 -1
- package/dist/trust-engine/context-policy/factory.d.ts.map +1 -1
- package/dist/trust-engine/context-policy/factory.js +1 -1
- package/dist/trust-engine/context-policy/factory.js.map +1 -1
- package/dist/trust-engine/context-policy/index.d.ts +2 -2
- package/dist/trust-engine/context-policy/index.js +2 -2
- package/dist/trust-engine/creation-modifiers/index.d.ts +1 -1
- package/dist/trust-engine/creation-modifiers/index.js +1 -1
- package/dist/trust-engine/creation-modifiers/types.d.ts.map +1 -1
- package/dist/trust-engine/creation-modifiers/types.js +3 -2
- package/dist/trust-engine/creation-modifiers/types.js.map +1 -1
- package/dist/trust-engine/decay-profiles.d.ts +37 -136
- package/dist/trust-engine/decay-profiles.d.ts.map +1 -1
- package/dist/trust-engine/decay-profiles.js +68 -178
- package/dist/trust-engine/decay-profiles.js.map +1 -1
- package/dist/trust-engine/index.d.ts +135 -168
- package/dist/trust-engine/index.d.ts.map +1 -1
- package/dist/trust-engine/index.js +239 -525
- package/dist/trust-engine/index.js.map +1 -1
- package/dist/trust-engine/phase6-types.d.ts +18 -11
- package/dist/trust-engine/phase6-types.d.ts.map +1 -1
- package/dist/trust-engine/phase6-types.js +33 -29
- package/dist/trust-engine/phase6-types.js.map +1 -1
- package/package.json +1 -1
- package/dist/enforce/types.d.ts +0 -234
- package/dist/enforce/types.d.ts.map +0 -1
- package/dist/enforce/types.js +0 -10
- package/dist/enforce/types.js.map +0 -1
- package/dist/intent/types.d.ts +0 -69
- package/dist/intent/types.d.ts.map +0 -1
- package/dist/intent/types.js +0 -10
- package/dist/intent/types.js.map +0 -1
- package/dist/intent-gateway/index.d.ts +0 -522
- package/dist/intent-gateway/index.d.ts.map +0 -1
- package/dist/intent-gateway/index.js +0 -1499
- package/dist/intent-gateway/index.js.map +0 -1
- package/dist/trust-engine/types.d.ts +0 -77
- package/dist/trust-engine/types.d.ts.map +0 -1
- package/dist/trust-engine/types.js +0 -20
- package/dist/trust-engine/types.js.map +0 -1
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Supabase/Postgres Persistence Adapter for Intent Service
|
|
3
|
+
*
|
|
4
|
+
* Production-quality intent service backed by Supabase (PostgreSQL). Provides:
|
|
5
|
+
* - Full IIntentService interface implementation
|
|
6
|
+
* - Input validation (same rules as PersistentIntentService)
|
|
7
|
+
* - State machine enforcement for status transitions
|
|
8
|
+
* - Tenant isolation via tenantId column (and optional RLS)
|
|
9
|
+
* - Configurable table name and schema for multi-schema deployments
|
|
10
|
+
* - Correlation ID tracking for distributed tracing
|
|
11
|
+
* - Type-only import of @supabase/supabase-js to avoid hard dependency
|
|
12
|
+
*
|
|
13
|
+
* Requires the migration in ./migrations/001_create_intents_table.sql to be
|
|
14
|
+
* applied before use.
|
|
15
|
+
*
|
|
16
|
+
* @packageDocumentation
|
|
17
|
+
*/
|
|
18
|
+
import { createLogger } from '../common/logger.js';
|
|
19
|
+
const logger = createLogger({ component: 'supabase-intent-repository' });
|
|
20
|
+
// =============================================================================
|
|
21
|
+
// STATE MACHINE
|
|
22
|
+
// =============================================================================
|
|
23
|
+
/**
|
|
24
|
+
* Valid status transitions for the intent lifecycle.
|
|
25
|
+
* Mirrors PersistentIntentService exactly.
|
|
26
|
+
*/
|
|
27
|
+
const VALID_TRANSITIONS = {
|
|
28
|
+
pending: ['evaluating', 'cancelled'],
|
|
29
|
+
evaluating: ['approved', 'denied', 'escalated', 'failed'],
|
|
30
|
+
approved: ['executing', 'cancelled'],
|
|
31
|
+
denied: [],
|
|
32
|
+
escalated: ['approved', 'denied', 'cancelled'],
|
|
33
|
+
executing: ['completed', 'failed'],
|
|
34
|
+
completed: [],
|
|
35
|
+
failed: ['pending'], // allow retry
|
|
36
|
+
cancelled: [],
|
|
37
|
+
};
|
|
38
|
+
// =============================================================================
|
|
39
|
+
// VALIDATION
|
|
40
|
+
// =============================================================================
|
|
41
|
+
/**
|
|
42
|
+
* Validate an IntentSubmission. Returns an array of error messages (empty = valid).
|
|
43
|
+
* Mirrors PersistentIntentService validation logic exactly.
|
|
44
|
+
*/
|
|
45
|
+
function validateSubmission(submission) {
|
|
46
|
+
const errors = [];
|
|
47
|
+
if (!submission.entityId || typeof submission.entityId !== 'string') {
|
|
48
|
+
errors.push('entityId is required and must be a non-empty string');
|
|
49
|
+
}
|
|
50
|
+
if (!submission.goal || typeof submission.goal !== 'string') {
|
|
51
|
+
errors.push('goal is required and must be a non-empty string');
|
|
52
|
+
}
|
|
53
|
+
if (submission.goal && submission.goal.length > 10_000) {
|
|
54
|
+
errors.push('goal must be 10,000 characters or fewer');
|
|
55
|
+
}
|
|
56
|
+
if (submission.context !== undefined &&
|
|
57
|
+
(typeof submission.context !== 'object' || submission.context === null)) {
|
|
58
|
+
errors.push('context must be a plain object');
|
|
59
|
+
}
|
|
60
|
+
if (submission.expiresIn !== undefined) {
|
|
61
|
+
if (typeof submission.expiresIn !== 'number' || submission.expiresIn <= 0) {
|
|
62
|
+
errors.push('expiresIn must be a positive number (milliseconds)');
|
|
63
|
+
}
|
|
64
|
+
if (submission.expiresIn > 86_400_000) {
|
|
65
|
+
errors.push('expiresIn cannot exceed 24 hours (86400000ms)');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return errors;
|
|
69
|
+
}
|
|
70
|
+
const CONFIG_DEFAULTS = {
|
|
71
|
+
tableName: 'intents',
|
|
72
|
+
schema: 'public',
|
|
73
|
+
defaultExpirationMs: 3_600_000,
|
|
74
|
+
};
|
|
75
|
+
// =============================================================================
|
|
76
|
+
// MAPPING HELPERS
|
|
77
|
+
// =============================================================================
|
|
78
|
+
/**
|
|
79
|
+
* Convert a database row (snake_case) to an Intent domain object (camelCase).
|
|
80
|
+
*/
|
|
81
|
+
function rowToIntent(row) {
|
|
82
|
+
return {
|
|
83
|
+
id: row.id,
|
|
84
|
+
tenantId: row.tenant_id,
|
|
85
|
+
entityId: row.entity_id,
|
|
86
|
+
goal: row.goal,
|
|
87
|
+
context: row.context,
|
|
88
|
+
metadata: row.metadata,
|
|
89
|
+
status: row.status,
|
|
90
|
+
createdAt: row.created_at,
|
|
91
|
+
updatedAt: row.updated_at,
|
|
92
|
+
trustSnapshot: row.trust_snapshot,
|
|
93
|
+
trustLevel: row.trust_level,
|
|
94
|
+
correlationId: row.correlation_id,
|
|
95
|
+
actionType: row.action_type,
|
|
96
|
+
resourceScope: row.resource_scope,
|
|
97
|
+
dataSensitivity: row.data_sensitivity,
|
|
98
|
+
reversibility: row.reversibility,
|
|
99
|
+
expiresAt: row.expires_at,
|
|
100
|
+
source: row.source,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Convert an Intent domain object to a database row for insertion.
|
|
105
|
+
*/
|
|
106
|
+
function intentToRow(intent) {
|
|
107
|
+
return {
|
|
108
|
+
id: intent.id,
|
|
109
|
+
tenant_id: intent.tenantId ?? '',
|
|
110
|
+
entity_id: intent.entityId,
|
|
111
|
+
goal: intent.goal,
|
|
112
|
+
context: intent.context,
|
|
113
|
+
metadata: intent.metadata,
|
|
114
|
+
status: intent.status,
|
|
115
|
+
created_at: intent.createdAt,
|
|
116
|
+
updated_at: intent.updatedAt,
|
|
117
|
+
trust_snapshot: intent.trustSnapshot ?? null,
|
|
118
|
+
trust_level: intent.trustLevel ?? null,
|
|
119
|
+
correlation_id: intent.correlationId ?? crypto.randomUUID(),
|
|
120
|
+
action_type: intent.actionType ?? null,
|
|
121
|
+
resource_scope: intent.resourceScope ?? null,
|
|
122
|
+
data_sensitivity: intent.dataSensitivity ?? null,
|
|
123
|
+
reversibility: intent.reversibility ?? null,
|
|
124
|
+
expires_at: intent.expiresAt ?? null,
|
|
125
|
+
source: intent.source ?? null,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// =============================================================================
|
|
129
|
+
// SUPABASE INTENT REPOSITORY
|
|
130
|
+
// =============================================================================
|
|
131
|
+
/**
|
|
132
|
+
* Supabase/Postgres-backed intent service.
|
|
133
|
+
*
|
|
134
|
+
* Implements the full IIntentService interface with durable persistence,
|
|
135
|
+
* input validation, state machine enforcement, and tenant isolation.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```typescript
|
|
139
|
+
* import { createClient } from '@supabase/supabase-js';
|
|
140
|
+
* import { createSupabaseIntentRepository } from '@vorionsys/atsf-core/intent/supabase-intent-repository';
|
|
141
|
+
*
|
|
142
|
+
* const supabase = createClient(SUPABASE_URL, SUPABASE_KEY);
|
|
143
|
+
* const intentService = createSupabaseIntentRepository({ client: supabase });
|
|
144
|
+
*
|
|
145
|
+
* const intent = await intentService.submit(
|
|
146
|
+
* { entityId: 'agent-1', goal: 'Send email', context: {} },
|
|
147
|
+
* { tenantId: 'tenant-abc' }
|
|
148
|
+
* );
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export class SupabaseIntentRepository {
|
|
152
|
+
client;
|
|
153
|
+
tableName;
|
|
154
|
+
schema;
|
|
155
|
+
defaultExpirationMs;
|
|
156
|
+
constructor(config) {
|
|
157
|
+
if (!config.client) {
|
|
158
|
+
throw new Error('SupabaseIntentRepository requires a SupabaseClient instance');
|
|
159
|
+
}
|
|
160
|
+
this.client = config.client;
|
|
161
|
+
this.tableName = config.tableName ?? CONFIG_DEFAULTS.tableName;
|
|
162
|
+
this.schema = config.schema ?? CONFIG_DEFAULTS.schema;
|
|
163
|
+
this.defaultExpirationMs = config.defaultExpirationMs ?? CONFIG_DEFAULTS.defaultExpirationMs;
|
|
164
|
+
logger.info({ tableName: this.tableName, schema: this.schema }, 'SupabaseIntentRepository initialized');
|
|
165
|
+
}
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// Private: get a schema-scoped query builder for the intents table
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
table() {
|
|
170
|
+
return this.client.schema(this.schema).from(this.tableName);
|
|
171
|
+
}
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// IIntentService.submit
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
/**
|
|
176
|
+
* Submit a new intent with full validation and persist to Supabase.
|
|
177
|
+
*/
|
|
178
|
+
async submit(submission, options) {
|
|
179
|
+
// Validate input
|
|
180
|
+
const errors = validateSubmission(submission);
|
|
181
|
+
if (errors.length > 0) {
|
|
182
|
+
throw new Error(`Invalid intent submission: ${errors.join('; ')}`);
|
|
183
|
+
}
|
|
184
|
+
if (!options.tenantId) {
|
|
185
|
+
throw new Error('tenantId is required in SubmitOptions');
|
|
186
|
+
}
|
|
187
|
+
const now = new Date().toISOString();
|
|
188
|
+
const correlationId = submission.correlationId ?? crypto.randomUUID();
|
|
189
|
+
const expiresAt = submission.expiresIn
|
|
190
|
+
? new Date(Date.now() + submission.expiresIn).toISOString()
|
|
191
|
+
: new Date(Date.now() + this.defaultExpirationMs).toISOString();
|
|
192
|
+
const intent = {
|
|
193
|
+
id: crypto.randomUUID(),
|
|
194
|
+
tenantId: options.tenantId,
|
|
195
|
+
entityId: submission.entityId,
|
|
196
|
+
goal: submission.goal,
|
|
197
|
+
context: submission.context ?? {},
|
|
198
|
+
metadata: submission.metadata ?? {},
|
|
199
|
+
status: 'pending',
|
|
200
|
+
createdAt: now,
|
|
201
|
+
updatedAt: now,
|
|
202
|
+
trustSnapshot: options.trustSnapshot ?? null,
|
|
203
|
+
trustLevel: options.trustLevel ?? null,
|
|
204
|
+
correlationId,
|
|
205
|
+
actionType: submission.actionType ?? null,
|
|
206
|
+
resourceScope: submission.resourceScope ?? null,
|
|
207
|
+
dataSensitivity: submission.dataSensitivity ?? null,
|
|
208
|
+
reversibility: submission.reversibility ?? null,
|
|
209
|
+
expiresAt,
|
|
210
|
+
source: submission.source ?? null,
|
|
211
|
+
};
|
|
212
|
+
const row = intentToRow(intent);
|
|
213
|
+
const { data, error } = await this.table()
|
|
214
|
+
.insert(row)
|
|
215
|
+
.select()
|
|
216
|
+
.single();
|
|
217
|
+
if (error) {
|
|
218
|
+
logger.error({ error: error.message, code: error.code, intentId: intent.id }, 'Failed to insert intent into Supabase');
|
|
219
|
+
throw new Error(`Failed to persist intent: ${error.message}`);
|
|
220
|
+
}
|
|
221
|
+
const persisted = rowToIntent(data);
|
|
222
|
+
logger.info({
|
|
223
|
+
intentId: persisted.id,
|
|
224
|
+
entityId: persisted.entityId,
|
|
225
|
+
tenantId: options.tenantId,
|
|
226
|
+
goal: persisted.goal.slice(0, 100),
|
|
227
|
+
correlationId,
|
|
228
|
+
actionType: persisted.actionType,
|
|
229
|
+
}, 'Intent submitted');
|
|
230
|
+
return persisted;
|
|
231
|
+
}
|
|
232
|
+
// ---------------------------------------------------------------------------
|
|
233
|
+
// IIntentService.get
|
|
234
|
+
// ---------------------------------------------------------------------------
|
|
235
|
+
/**
|
|
236
|
+
* Retrieve an intent by ID with tenant isolation.
|
|
237
|
+
* Returns undefined if not found or if the intent belongs to a different tenant.
|
|
238
|
+
*/
|
|
239
|
+
async get(id, tenantId) {
|
|
240
|
+
const { data, error } = await this.table()
|
|
241
|
+
.select('*')
|
|
242
|
+
.eq('id', id)
|
|
243
|
+
.eq('tenant_id', tenantId)
|
|
244
|
+
.maybeSingle();
|
|
245
|
+
if (error) {
|
|
246
|
+
logger.error({ error: error.message, code: error.code, intentId: id }, 'Failed to fetch intent from Supabase');
|
|
247
|
+
throw new Error(`Failed to fetch intent: ${error.message}`);
|
|
248
|
+
}
|
|
249
|
+
if (!data) {
|
|
250
|
+
return undefined;
|
|
251
|
+
}
|
|
252
|
+
const intent = rowToIntent(data);
|
|
253
|
+
// Check expiration: if expired and not yet terminal, auto-cancel
|
|
254
|
+
if (this.isExpired(intent)) {
|
|
255
|
+
await this.expireIntent(intent);
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
258
|
+
return intent;
|
|
259
|
+
}
|
|
260
|
+
// ---------------------------------------------------------------------------
|
|
261
|
+
// IIntentService.updateStatus
|
|
262
|
+
// ---------------------------------------------------------------------------
|
|
263
|
+
/**
|
|
264
|
+
* Update the status of an intent with state machine enforcement.
|
|
265
|
+
* Returns the updated intent, or undefined if not found / wrong tenant.
|
|
266
|
+
* Throws if the requested transition is invalid.
|
|
267
|
+
*/
|
|
268
|
+
async updateStatus(id, tenantId, status) {
|
|
269
|
+
// First, fetch the current intent to validate the transition
|
|
270
|
+
const { data: currentData, error: fetchError } = await this.table()
|
|
271
|
+
.select('*')
|
|
272
|
+
.eq('id', id)
|
|
273
|
+
.eq('tenant_id', tenantId)
|
|
274
|
+
.maybeSingle();
|
|
275
|
+
if (fetchError) {
|
|
276
|
+
logger.error({ error: fetchError.message, code: fetchError.code, intentId: id }, 'Failed to fetch intent for status update');
|
|
277
|
+
throw new Error(`Failed to fetch intent for status update: ${fetchError.message}`);
|
|
278
|
+
}
|
|
279
|
+
if (!currentData) {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
const currentIntent = rowToIntent(currentData);
|
|
283
|
+
// Validate transition against the state machine
|
|
284
|
+
const allowed = VALID_TRANSITIONS[currentIntent.status];
|
|
285
|
+
if (!allowed || !allowed.includes(status)) {
|
|
286
|
+
throw new Error(`Invalid status transition: '${currentIntent.status}' -> '${status}'. ` +
|
|
287
|
+
`Allowed transitions from '${currentIntent.status}': [${allowed?.join(', ') ?? 'none'}]`);
|
|
288
|
+
}
|
|
289
|
+
// Perform the update
|
|
290
|
+
const { data: updatedData, error: updateError } = await this.table()
|
|
291
|
+
.update({ status, updated_at: new Date().toISOString() })
|
|
292
|
+
.eq('id', id)
|
|
293
|
+
.eq('tenant_id', tenantId)
|
|
294
|
+
.select()
|
|
295
|
+
.single();
|
|
296
|
+
if (updateError) {
|
|
297
|
+
logger.error({ error: updateError.message, code: updateError.code, intentId: id }, 'Failed to update intent status in Supabase');
|
|
298
|
+
throw new Error(`Failed to update intent status: ${updateError.message}`);
|
|
299
|
+
}
|
|
300
|
+
const updated = rowToIntent(updatedData);
|
|
301
|
+
logger.info({ intentId: id, from: currentIntent.status, to: status }, 'Intent status updated');
|
|
302
|
+
return updated;
|
|
303
|
+
}
|
|
304
|
+
// ---------------------------------------------------------------------------
|
|
305
|
+
// IIntentService.listByEntity
|
|
306
|
+
// ---------------------------------------------------------------------------
|
|
307
|
+
/**
|
|
308
|
+
* List all intents for a given entity within a tenant.
|
|
309
|
+
* Results are sorted by creation time (newest first).
|
|
310
|
+
* Expired intents are excluded.
|
|
311
|
+
*/
|
|
312
|
+
async listByEntity(entityId, tenantId) {
|
|
313
|
+
const { data, error } = await this.table()
|
|
314
|
+
.select('*')
|
|
315
|
+
.eq('entity_id', entityId)
|
|
316
|
+
.eq('tenant_id', tenantId)
|
|
317
|
+
.order('created_at', { ascending: false });
|
|
318
|
+
if (error) {
|
|
319
|
+
logger.error({ error: error.message, code: error.code, entityId, tenantId }, 'Failed to list intents from Supabase');
|
|
320
|
+
throw new Error(`Failed to list intents: ${error.message}`);
|
|
321
|
+
}
|
|
322
|
+
if (!data || data.length === 0) {
|
|
323
|
+
return [];
|
|
324
|
+
}
|
|
325
|
+
const now = Date.now();
|
|
326
|
+
const results = [];
|
|
327
|
+
for (const row of data) {
|
|
328
|
+
const intent = rowToIntent(row);
|
|
329
|
+
if (!this.isExpired(intent, now)) {
|
|
330
|
+
results.push(intent);
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return results;
|
|
334
|
+
}
|
|
335
|
+
// ===========================================================================
|
|
336
|
+
// Private Helpers
|
|
337
|
+
// ===========================================================================
|
|
338
|
+
/**
|
|
339
|
+
* Check if an intent has passed its expiration time.
|
|
340
|
+
*/
|
|
341
|
+
isExpired(intent, now) {
|
|
342
|
+
if (!intent.expiresAt)
|
|
343
|
+
return false;
|
|
344
|
+
return new Date(intent.expiresAt).getTime() < (now ?? Date.now());
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Mark an expired, non-terminal intent as cancelled in the database.
|
|
348
|
+
*/
|
|
349
|
+
async expireIntent(intent) {
|
|
350
|
+
const terminalStatuses = ['completed', 'cancelled', 'denied'];
|
|
351
|
+
if (terminalStatuses.includes(intent.status)) {
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
const { error } = await this.table()
|
|
355
|
+
.update({ status: 'cancelled', updated_at: new Date().toISOString() })
|
|
356
|
+
.eq('id', intent.id)
|
|
357
|
+
.eq('tenant_id', intent.tenantId ?? '');
|
|
358
|
+
if (error) {
|
|
359
|
+
logger.warn({ error: error.message, intentId: intent.id }, 'Failed to auto-cancel expired intent');
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
logger.debug({ intentId: intent.id }, 'Intent expired and auto-cancelled');
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
// =============================================================================
|
|
367
|
+
// FACTORY FUNCTION
|
|
368
|
+
// =============================================================================
|
|
369
|
+
/**
|
|
370
|
+
* Create a new SupabaseIntentRepository instance.
|
|
371
|
+
*
|
|
372
|
+
* This factory provides a convenient way to instantiate the repository
|
|
373
|
+
* without directly importing the class, useful for dependency injection
|
|
374
|
+
* and testing.
|
|
375
|
+
*
|
|
376
|
+
* @param config - Repository configuration including the Supabase client
|
|
377
|
+
* @returns A configured SupabaseIntentRepository implementing IIntentService
|
|
378
|
+
*
|
|
379
|
+
* @example
|
|
380
|
+
* ```typescript
|
|
381
|
+
* import { createClient } from '@supabase/supabase-js';
|
|
382
|
+
* import { createSupabaseIntentRepository } from '@vorionsys/atsf-core/intent/supabase-intent-repository';
|
|
383
|
+
*
|
|
384
|
+
* const supabase = createClient(
|
|
385
|
+
* process.env.SUPABASE_URL!,
|
|
386
|
+
* process.env.SUPABASE_SERVICE_KEY!
|
|
387
|
+
* );
|
|
388
|
+
*
|
|
389
|
+
* const intentService = createSupabaseIntentRepository({
|
|
390
|
+
* client: supabase,
|
|
391
|
+
* tableName: 'intents', // default
|
|
392
|
+
* schema: 'public', // default
|
|
393
|
+
* defaultExpirationMs: 3600000, // 1 hour default
|
|
394
|
+
* });
|
|
395
|
+
*
|
|
396
|
+
* // Wire it into the service locator
|
|
397
|
+
* import { setIntentService } from '@vorionsys/atsf-core';
|
|
398
|
+
* setIntentService(intentService);
|
|
399
|
+
* ```
|
|
400
|
+
*/
|
|
401
|
+
export function createSupabaseIntentRepository(config) {
|
|
402
|
+
return new SupabaseIntentRepository(config);
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=supabase-intent-repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"supabase-intent-repository.js","sourceRoot":"","sources":["../../src/intent/supabase-intent-repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
*/
|
|
8
|
-
import type { TrustEngine } from
|
|
9
|
-
import type { TrustAwareAgentConfig } from
|
|
8
|
+
import type { TrustEngine } from '../trust-engine/index.js';
|
|
9
|
+
import type { TrustAwareAgentConfig } from './types.js';
|
|
10
10
|
/**
|
|
11
11
|
* LangChain callback handler interface (compatible with @langchain/core)
|
|
12
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/langchain/callback.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,YAAY,CAAC;AAgB3E;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAkC;gBAExC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB;IAgBnE;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../src/langchain/callback.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,YAAY,CAAC;AAgB3E;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAkC;gBAExC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,qBAAqB;IAgBnE;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAWjC;;OAEG;YACW,YAAY;IA2D1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACtB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjE;;OAEG;IACG,cAAc,CAClB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACrB,QAAQ,EAAE,MAAM,EAAE,EAClB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAMhB;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE;QAAE,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC;QAAC,SAAS,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE;gBAAE,WAAW,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAA;KAAE,EAC3F,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAUhB;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhE;;OAEG;IACG,gBAAgB,CACpB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAKhB;;OAEG;IACG,cAAc,CAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAQhB;;OAEG;IACG,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlE;;OAEG;IACG,iBAAiB,CACrB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EACxD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAIhB;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,EAC/D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;CAMjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,GAC5B,oBAAoB,CAEtB"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*
|
|
6
6
|
* @packageDocumentation
|
|
7
7
|
*/
|
|
8
|
-
import { createLogger } from
|
|
9
|
-
const logger = createLogger({ component:
|
|
8
|
+
import { createLogger } from '../common/logger.js';
|
|
9
|
+
const logger = createLogger({ component: 'langchain-callback' });
|
|
10
10
|
/**
|
|
11
11
|
* Default signal weights
|
|
12
12
|
*/
|
|
@@ -63,7 +63,7 @@ export class TrustCallbackHandler {
|
|
|
63
63
|
const existing = await this.trustEngine.getScore(this.config.agentId);
|
|
64
64
|
if (!existing) {
|
|
65
65
|
await this.trustEngine.initializeEntity(this.config.agentId, this.config.initialTrustLevel);
|
|
66
|
-
logger.info({ agentId: this.config.agentId },
|
|
66
|
+
logger.info({ agentId: this.config.agentId }, 'Initialized trust for agent');
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
/**
|
|
@@ -74,30 +74,30 @@ export class TrustCallbackHandler {
|
|
|
74
74
|
let value;
|
|
75
75
|
let signalType;
|
|
76
76
|
switch (source.event) {
|
|
77
|
-
case
|
|
77
|
+
case 'tool_end':
|
|
78
78
|
value = weights.toolSuccess ?? DEFAULT_WEIGHTS.toolSuccess;
|
|
79
|
-
signalType = `behavioral.tool_success.${source.toolName ??
|
|
79
|
+
signalType = `behavioral.tool_success.${source.toolName ?? 'unknown'}`;
|
|
80
80
|
break;
|
|
81
|
-
case
|
|
81
|
+
case 'tool_error':
|
|
82
82
|
value = weights.toolFailure ?? DEFAULT_WEIGHTS.toolFailure;
|
|
83
|
-
signalType = `behavioral.tool_failure.${source.toolName ??
|
|
83
|
+
signalType = `behavioral.tool_failure.${source.toolName ?? 'unknown'}`;
|
|
84
84
|
break;
|
|
85
|
-
case
|
|
85
|
+
case 'llm_end':
|
|
86
86
|
value = weights.llmSuccess ?? DEFAULT_WEIGHTS.llmSuccess;
|
|
87
|
-
signalType = `behavioral.llm_success.${source.modelName ??
|
|
87
|
+
signalType = `behavioral.llm_success.${source.modelName ?? 'unknown'}`;
|
|
88
88
|
break;
|
|
89
|
-
case
|
|
89
|
+
case 'llm_error':
|
|
90
90
|
value = weights.llmFailure ?? DEFAULT_WEIGHTS.llmFailure;
|
|
91
|
-
signalType = `behavioral.llm_failure.${source.modelName ??
|
|
91
|
+
signalType = `behavioral.llm_failure.${source.modelName ?? 'unknown'}`;
|
|
92
92
|
break;
|
|
93
|
-
case
|
|
94
|
-
case
|
|
93
|
+
case 'chain_end':
|
|
94
|
+
case 'agent_finish':
|
|
95
95
|
value = weights.chainSuccess ?? DEFAULT_WEIGHTS.chainSuccess;
|
|
96
|
-
signalType = `behavioral.chain_success.${source.chainType ??
|
|
96
|
+
signalType = `behavioral.chain_success.${source.chainType ?? 'agent'}`;
|
|
97
97
|
break;
|
|
98
|
-
case
|
|
98
|
+
case 'chain_error':
|
|
99
99
|
value = weights.chainFailure ?? DEFAULT_WEIGHTS.chainFailure;
|
|
100
|
-
signalType = `behavioral.chain_failure.${source.chainType ??
|
|
100
|
+
signalType = `behavioral.chain_failure.${source.chainType ?? 'agent'}`;
|
|
101
101
|
break;
|
|
102
102
|
default:
|
|
103
103
|
return; // Don't record start events as signals
|
|
@@ -107,7 +107,7 @@ export class TrustCallbackHandler {
|
|
|
107
107
|
entityId: this.config.agentId,
|
|
108
108
|
type: signalType,
|
|
109
109
|
value,
|
|
110
|
-
source:
|
|
110
|
+
source: 'langchain',
|
|
111
111
|
timestamp: new Date().toISOString(),
|
|
112
112
|
metadata: {
|
|
113
113
|
event: source.event,
|
|
@@ -121,7 +121,7 @@ export class TrustCallbackHandler {
|
|
|
121
121
|
};
|
|
122
122
|
await this.trustEngine.recordSignal(signal);
|
|
123
123
|
this.signalCount++;
|
|
124
|
-
logger.debug({ signal },
|
|
124
|
+
logger.debug({ signal }, 'Recorded trust signal from LangChain');
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
127
|
* Start tracking execution time
|
|
@@ -147,7 +147,7 @@ export class TrustCallbackHandler {
|
|
|
147
147
|
if (!this.config.recordToolUsage)
|
|
148
148
|
return;
|
|
149
149
|
this.startTimer(runId);
|
|
150
|
-
logger.debug({ toolName: tool.name, runId },
|
|
150
|
+
logger.debug({ toolName: tool.name, runId }, 'Tool started');
|
|
151
151
|
}
|
|
152
152
|
/**
|
|
153
153
|
* Called when a tool ends successfully
|
|
@@ -157,7 +157,7 @@ export class TrustCallbackHandler {
|
|
|
157
157
|
return;
|
|
158
158
|
const duration = this.endTimer(runId);
|
|
159
159
|
await this.recordSignal({
|
|
160
|
-
event:
|
|
160
|
+
event: 'tool_end',
|
|
161
161
|
duration,
|
|
162
162
|
});
|
|
163
163
|
}
|
|
@@ -169,7 +169,7 @@ export class TrustCallbackHandler {
|
|
|
169
169
|
return;
|
|
170
170
|
const duration = this.endTimer(runId);
|
|
171
171
|
await this.recordSignal({
|
|
172
|
-
event:
|
|
172
|
+
event: 'tool_error',
|
|
173
173
|
duration,
|
|
174
174
|
error,
|
|
175
175
|
});
|
|
@@ -181,7 +181,7 @@ export class TrustCallbackHandler {
|
|
|
181
181
|
if (!this.config.recordLlmCalls)
|
|
182
182
|
return;
|
|
183
183
|
this.startTimer(runId);
|
|
184
|
-
logger.debug({ modelName: llm.name, runId },
|
|
184
|
+
logger.debug({ modelName: llm.name, runId }, 'LLM started');
|
|
185
185
|
}
|
|
186
186
|
/**
|
|
187
187
|
* Called when an LLM ends successfully
|
|
@@ -191,7 +191,7 @@ export class TrustCallbackHandler {
|
|
|
191
191
|
return;
|
|
192
192
|
const duration = this.endTimer(runId);
|
|
193
193
|
await this.recordSignal({
|
|
194
|
-
event:
|
|
194
|
+
event: 'llm_end',
|
|
195
195
|
duration,
|
|
196
196
|
tokenCount: output.llmOutput?.tokenUsage?.totalTokens,
|
|
197
197
|
});
|
|
@@ -204,7 +204,7 @@ export class TrustCallbackHandler {
|
|
|
204
204
|
return;
|
|
205
205
|
const duration = this.endTimer(runId);
|
|
206
206
|
await this.recordSignal({
|
|
207
|
-
event:
|
|
207
|
+
event: 'llm_error',
|
|
208
208
|
duration,
|
|
209
209
|
error,
|
|
210
210
|
});
|
|
@@ -214,7 +214,7 @@ export class TrustCallbackHandler {
|
|
|
214
214
|
*/
|
|
215
215
|
async handleChainStart(chain, _inputs, runId) {
|
|
216
216
|
this.startTimer(runId);
|
|
217
|
-
logger.debug({ chainType: chain.name, runId },
|
|
217
|
+
logger.debug({ chainType: chain.name, runId }, 'Chain started');
|
|
218
218
|
}
|
|
219
219
|
/**
|
|
220
220
|
* Called when a chain ends successfully
|
|
@@ -222,7 +222,7 @@ export class TrustCallbackHandler {
|
|
|
222
222
|
async handleChainEnd(_outputs, runId) {
|
|
223
223
|
const duration = this.endTimer(runId);
|
|
224
224
|
await this.recordSignal({
|
|
225
|
-
event:
|
|
225
|
+
event: 'chain_end',
|
|
226
226
|
duration,
|
|
227
227
|
});
|
|
228
228
|
}
|
|
@@ -234,7 +234,7 @@ export class TrustCallbackHandler {
|
|
|
234
234
|
return;
|
|
235
235
|
const duration = this.endTimer(runId);
|
|
236
236
|
await this.recordSignal({
|
|
237
|
-
event:
|
|
237
|
+
event: 'chain_error',
|
|
238
238
|
duration,
|
|
239
239
|
error,
|
|
240
240
|
});
|
|
@@ -243,15 +243,15 @@ export class TrustCallbackHandler {
|
|
|
243
243
|
* Called when an agent takes an action
|
|
244
244
|
*/
|
|
245
245
|
async handleAgentAction(action, runId) {
|
|
246
|
-
logger.debug({ tool: action.tool, runId },
|
|
246
|
+
logger.debug({ tool: action.tool, runId }, 'Agent action');
|
|
247
247
|
}
|
|
248
248
|
/**
|
|
249
249
|
* Called when an agent finishes
|
|
250
250
|
*/
|
|
251
251
|
async handleAgentEnd(_finish, _runId) {
|
|
252
252
|
await this.recordSignal({
|
|
253
|
-
event:
|
|
254
|
-
chainType:
|
|
253
|
+
event: 'agent_finish',
|
|
254
|
+
chainType: 'agent',
|
|
255
255
|
});
|
|
256
256
|
}
|
|
257
257
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/langchain/callback.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAEjE;;GAEG;AACH,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,GAAG;IAChB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;CAClB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACvB,WAAW,CAAc;IACzB,MAAM,CAAkC;IACxC,WAAW,GAAG,CAAC,CAAC;IAChB,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEpD,YAAY,WAAwB,EAAE,MAA6B;QACjE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG;YACZ,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,CAAC;YAChD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,CAAC;YACxC,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;YAC/C,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI;YAC7C,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,IAAI;YACzC,aAAa,EAAE;gBACb,GAAG,eAAe;gBAClB,GAAG,MAAM,CAAC,aAAa;aACxB;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACrC,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC9B,CAAC;YACF,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"callback.js","sourceRoot":"","sources":["../../src/langchain/callback.ts"],"names":[],"mappings":"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"}
|