@turingpulse/sdk 1.0.1
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/.github/dependabot.yml +38 -0
- package/.github/workflows/ci.yml +246 -0
- package/.github/workflows/framework-compat.yml +169 -0
- package/.github/workflows/security.yml +336 -0
- package/CHANGELOG.md +29 -0
- package/LICENSE +13 -0
- package/MIGRATION.md +30 -0
- package/README.md +221 -0
- package/dist/attachments.d.ts +28 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +59 -0
- package/dist/attachments.js.map +1 -0
- package/dist/config.d.ts +72 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +78 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +126 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +163 -0
- package/dist/context.js.map +1 -0
- package/dist/decorators.d.ts +6 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +52 -0
- package/dist/decorators.js.map +1 -0
- package/dist/deploy.d.ts +89 -0
- package/dist/deploy.d.ts.map +1 -0
- package/dist/deploy.js +203 -0
- package/dist/deploy.js.map +1 -0
- package/dist/errors.d.ts +18 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +34 -0
- package/dist/errors.js.map +1 -0
- package/dist/eventBuilder.d.ts +21 -0
- package/dist/eventBuilder.d.ts.map +1 -0
- package/dist/eventBuilder.js +127 -0
- package/dist/eventBuilder.js.map +1 -0
- package/dist/fingerprint.d.ts +158 -0
- package/dist/fingerprint.d.ts.map +1 -0
- package/dist/fingerprint.js +339 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/governance.d.ts +47 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +104 -0
- package/dist/governance.js.map +1 -0
- package/dist/http.d.ts +62 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +181 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation.d.ts +40 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +31 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/integrations/mastra.d.ts +64 -0
- package/dist/integrations/mastra.d.ts.map +1 -0
- package/dist/integrations/mastra.js +256 -0
- package/dist/integrations/mastra.js.map +1 -0
- package/dist/kpi.d.ts +21 -0
- package/dist/kpi.d.ts.map +1 -0
- package/dist/kpi.js +83 -0
- package/dist/kpi.js.map +1 -0
- package/dist/llmDetector.d.ts +22 -0
- package/dist/llmDetector.d.ts.map +1 -0
- package/dist/llmDetector.js +269 -0
- package/dist/llmDetector.js.map +1 -0
- package/dist/plugin.d.ts +33 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +312 -0
- package/dist/plugin.js.map +1 -0
- package/dist/registry.d.ts +13 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +18 -0
- package/dist/registry.js.map +1 -0
- package/dist/tracing.d.ts +10 -0
- package/dist/tracing.d.ts.map +1 -0
- package/dist/tracing.js +30 -0
- package/dist/tracing.js.map +1 -0
- package/dist/triggerState.d.ts +5 -0
- package/dist/triggerState.d.ts.map +1 -0
- package/dist/triggerState.js +19 -0
- package/dist/triggerState.js.map +1 -0
- package/dist/utils.d.ts +27 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +72 -0
- package/dist/utils.js.map +1 -0
- package/package.json +37 -0
- package/packages/anthropic/package.json +16 -0
- package/packages/anthropic/src/index.ts +5 -0
- package/packages/anthropic/src/wrapper.ts +102 -0
- package/packages/anthropic/tsconfig.build.json +20 -0
- package/packages/langchain/package.json +16 -0
- package/packages/langchain/src/index.ts +7 -0
- package/packages/langchain/src/wrapper.ts +51 -0
- package/packages/mastra/package.json +17 -0
- package/packages/mastra/src/index.ts +8 -0
- package/packages/mastra/src/wrapper.ts +301 -0
- package/packages/openai/package.json +16 -0
- package/packages/openai/src/index.ts +8 -0
- package/packages/openai/src/wrapper.ts +103 -0
- package/packages/openai/tsconfig.build.json +20 -0
- package/packages/openclaw/openclaw.plugin.json +100 -0
- package/packages/openclaw/package.json +41 -0
- package/packages/openclaw/src/buffer.ts +99 -0
- package/packages/openclaw/src/config.ts +139 -0
- package/packages/openclaw/src/hooks/governance.ts +267 -0
- package/packages/openclaw/src/hooks/lifecycle.ts +75 -0
- package/packages/openclaw/src/hooks/telemetry.ts +207 -0
- package/packages/openclaw/src/index.ts +91 -0
- package/packages/openclaw/src/mapper.ts +233 -0
- package/packages/openclaw/src/session-tracker.ts +181 -0
- package/packages/openclaw/src/types.ts +220 -0
- package/packages/openclaw/tests/buffer.test.ts +148 -0
- package/packages/openclaw/tests/config.test.ts +122 -0
- package/packages/openclaw/tests/governance.test.ts +232 -0
- package/packages/openclaw/tests/mapper.test.ts +242 -0
- package/packages/openclaw/tests/session-tracker.test.ts +124 -0
- package/packages/openclaw/tsconfig.json +18 -0
- package/packages/openclaw/vitest.config.ts +8 -0
- package/packages/vercel-ai/package.json +16 -0
- package/packages/vercel-ai/src/index.ts +5 -0
- package/packages/vercel-ai/src/wrapper.ts +49 -0
- package/scripts/bump-version.sh +58 -0
- package/scripts/update-readme-compat.mjs +151 -0
- package/src/__tests__/fingerprint.test.ts +328 -0
- package/src/attachments.ts +88 -0
- package/src/config.ts +164 -0
- package/src/context.ts +258 -0
- package/src/decorators.ts +61 -0
- package/src/deploy.ts +260 -0
- package/src/errors.ts +44 -0
- package/src/eventBuilder.ts +153 -0
- package/src/fingerprint.ts +421 -0
- package/src/governance.ts +156 -0
- package/src/http.ts +241 -0
- package/src/index.ts +57 -0
- package/src/instrumentation.ts +68 -0
- package/src/integrations/mastra.ts +335 -0
- package/src/kpi.ts +112 -0
- package/src/llmDetector.ts +330 -0
- package/src/plugin.ts +384 -0
- package/src/registry.ts +27 -0
- package/src/tracing.ts +39 -0
- package/src/triggerState.ts +27 -0
- package/src/utils.ts +78 -0
- package/tests/compat/anthropic.test.ts +61 -0
- package/tests/compat/cohere.test.ts +57 -0
- package/tests/compat/google-genai.test.ts +61 -0
- package/tests/compat/langchain-openai.test.ts +41 -0
- package/tests/compat/langchain.test.ts +64 -0
- package/tests/compat/mistral.test.ts +58 -0
- package/tests/compat/openai.test.ts +71 -0
- package/tests/compat/vercel-ai.test.ts +56 -0
- package/tests/plugins/anthropic-wrapper.test.ts +120 -0
- package/tests/plugins/langchain-wrapper.test.ts +128 -0
- package/tests/plugins/openai-wrapper.test.ts +165 -0
- package/tsconfig.json +21 -0
- package/vitest.config.ts +9 -0
package/dist/deploy.d.ts
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy tracking for change detection and root cause analysis.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Information about a deployment.
|
|
6
|
+
*/
|
|
7
|
+
export interface DeployInfo {
|
|
8
|
+
/** CI/CD provider (github, gitlab, jenkins, etc.) */
|
|
9
|
+
provider: string;
|
|
10
|
+
/** Git commit SHA */
|
|
11
|
+
gitSha?: string;
|
|
12
|
+
/** Version tag or branch name */
|
|
13
|
+
versionTag?: string;
|
|
14
|
+
/** Commit message */
|
|
15
|
+
commitMessage?: string;
|
|
16
|
+
/** Deployment timestamp */
|
|
17
|
+
deployedAt?: Date;
|
|
18
|
+
/** Additional metadata */
|
|
19
|
+
metadata?: Record<string, unknown>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Automatically detect deployment info from CI/CD environment variables.
|
|
23
|
+
*
|
|
24
|
+
* Supports:
|
|
25
|
+
* - GitHub Actions
|
|
26
|
+
* - GitLab CI
|
|
27
|
+
* - CircleCI
|
|
28
|
+
* - Jenkins
|
|
29
|
+
* - Azure DevOps
|
|
30
|
+
* - Bitbucket Pipelines
|
|
31
|
+
* - Travis CI
|
|
32
|
+
*/
|
|
33
|
+
export declare class AutoDeployDetector {
|
|
34
|
+
/**
|
|
35
|
+
* Detect deployment info from environment variables.
|
|
36
|
+
*
|
|
37
|
+
* @returns DeployInfo if running in a known CI/CD environment, undefined otherwise
|
|
38
|
+
*/
|
|
39
|
+
static detect(): DeployInfo | undefined;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Options for registering a deploy.
|
|
43
|
+
*/
|
|
44
|
+
export interface RegisterDeployOptions {
|
|
45
|
+
/** The workflow ID this deployment affects */
|
|
46
|
+
workflowId: string;
|
|
47
|
+
/** Version tag (e.g., "v1.2.3") */
|
|
48
|
+
version?: string;
|
|
49
|
+
/** Git commit SHA */
|
|
50
|
+
gitSha?: string;
|
|
51
|
+
/** Git commit message */
|
|
52
|
+
commitMessage?: string;
|
|
53
|
+
/** Additional metadata */
|
|
54
|
+
metadata?: Record<string, unknown>;
|
|
55
|
+
/** Deployment timestamp (defaults to now) */
|
|
56
|
+
deployedAt?: Date;
|
|
57
|
+
/** If true, auto-detect from CI/CD environment variables */
|
|
58
|
+
autoDetect?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Register a deployment event with TuringPulse.
|
|
62
|
+
*
|
|
63
|
+
* Call this from your CI/CD pipeline or application startup to track deployments.
|
|
64
|
+
* Deployment events are correlated with anomalies and drifts for root cause analysis.
|
|
65
|
+
*
|
|
66
|
+
* @param options - Deploy registration options
|
|
67
|
+
* @returns True if deploy was registered successfully, false otherwise
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* import { registerDeploy } from '@turingpulse/sdk';
|
|
72
|
+
*
|
|
73
|
+
* // Manual registration
|
|
74
|
+
* await registerDeploy({
|
|
75
|
+
* workflowId: 'chat-assistant',
|
|
76
|
+
* version: 'v1.2.3',
|
|
77
|
+
* gitSha: process.env.GIT_SHA,
|
|
78
|
+
* commitMessage: process.env.GIT_COMMIT_MSG,
|
|
79
|
+
* });
|
|
80
|
+
*
|
|
81
|
+
* // Auto-detect from CI/CD environment
|
|
82
|
+
* await registerDeploy({
|
|
83
|
+
* workflowId: 'chat-assistant',
|
|
84
|
+
* autoDetect: true,
|
|
85
|
+
* });
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export declare function registerDeploy(options: RegisterDeployOptions): Promise<boolean>;
|
|
89
|
+
//# sourceMappingURL=deploy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAuFD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAkB;IAC7B;;;;OAIG;IACH,MAAM,CAAC,MAAM,IAAI,UAAU,GAAG,SAAS;CAkCxC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,6CAA6C;IAC7C,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC,CA8CrF"}
|
package/dist/deploy.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy tracking for change detection and root cause analysis.
|
|
3
|
+
*/
|
|
4
|
+
import { getInstance } from './plugin';
|
|
5
|
+
import { PluginNotInitializedError } from './errors';
|
|
6
|
+
import { safeEnv, safeErrorMessage } from './utils';
|
|
7
|
+
/**
|
|
8
|
+
* CI/CD provider detection and variable mapping.
|
|
9
|
+
*/
|
|
10
|
+
const PROVIDERS = {
|
|
11
|
+
github: {
|
|
12
|
+
detect: ['GITHUB_ACTIONS'],
|
|
13
|
+
sha: ['GITHUB_SHA'],
|
|
14
|
+
ref: ['GITHUB_REF', 'GITHUB_REF_NAME'],
|
|
15
|
+
message: ['GITHUB_EVENT_HEAD_COMMIT_MESSAGE'],
|
|
16
|
+
run_id: ['GITHUB_RUN_ID'],
|
|
17
|
+
workflow: ['GITHUB_WORKFLOW'],
|
|
18
|
+
actor: ['GITHUB_ACTOR'],
|
|
19
|
+
},
|
|
20
|
+
gitlab: {
|
|
21
|
+
detect: ['GITLAB_CI'],
|
|
22
|
+
sha: ['CI_COMMIT_SHA'],
|
|
23
|
+
ref: ['CI_COMMIT_REF_NAME', 'CI_COMMIT_TAG'],
|
|
24
|
+
message: ['CI_COMMIT_MESSAGE'],
|
|
25
|
+
pipeline_id: ['CI_PIPELINE_ID'],
|
|
26
|
+
job_name: ['CI_JOB_NAME'],
|
|
27
|
+
user: ['GITLAB_USER_LOGIN'],
|
|
28
|
+
},
|
|
29
|
+
circleci: {
|
|
30
|
+
detect: ['CIRCLECI'],
|
|
31
|
+
sha: ['CIRCLE_SHA1'],
|
|
32
|
+
ref: ['CIRCLE_TAG', 'CIRCLE_BRANCH'],
|
|
33
|
+
build_num: ['CIRCLE_BUILD_NUM'],
|
|
34
|
+
workflow_id: ['CIRCLE_WORKFLOW_ID'],
|
|
35
|
+
username: ['CIRCLE_USERNAME'],
|
|
36
|
+
},
|
|
37
|
+
jenkins: {
|
|
38
|
+
detect: ['JENKINS_URL', 'BUILD_NUMBER'],
|
|
39
|
+
sha: ['GIT_COMMIT'],
|
|
40
|
+
ref: ['GIT_BRANCH', 'BUILD_TAG'],
|
|
41
|
+
build_num: ['BUILD_NUMBER'],
|
|
42
|
+
job_name: ['JOB_NAME'],
|
|
43
|
+
user: ['BUILD_USER'],
|
|
44
|
+
},
|
|
45
|
+
azure: {
|
|
46
|
+
detect: ['TF_BUILD', 'AZURE_PIPELINES'],
|
|
47
|
+
sha: ['BUILD_SOURCEVERSION'],
|
|
48
|
+
ref: ['BUILD_SOURCEBRANCH', 'BUILD_SOURCEBRANCHNAME'],
|
|
49
|
+
build_id: ['BUILD_BUILDID'],
|
|
50
|
+
pipeline_name: ['BUILD_DEFINITIONNAME'],
|
|
51
|
+
requester: ['BUILD_REQUESTEDFOR'],
|
|
52
|
+
},
|
|
53
|
+
bitbucket: {
|
|
54
|
+
detect: ['BITBUCKET_PIPELINE_UUID'],
|
|
55
|
+
sha: ['BITBUCKET_COMMIT'],
|
|
56
|
+
ref: ['BITBUCKET_TAG', 'BITBUCKET_BRANCH'],
|
|
57
|
+
build_num: ['BITBUCKET_BUILD_NUMBER'],
|
|
58
|
+
pipeline_uuid: ['BITBUCKET_PIPELINE_UUID'],
|
|
59
|
+
},
|
|
60
|
+
travis: {
|
|
61
|
+
detect: ['TRAVIS'],
|
|
62
|
+
sha: ['TRAVIS_COMMIT'],
|
|
63
|
+
ref: ['TRAVIS_TAG', 'TRAVIS_BRANCH'],
|
|
64
|
+
message: ['TRAVIS_COMMIT_MESSAGE'],
|
|
65
|
+
build_id: ['TRAVIS_BUILD_ID'],
|
|
66
|
+
job_id: ['TRAVIS_JOB_ID'],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Get the first non-empty environment variable value.
|
|
71
|
+
*/
|
|
72
|
+
function getFirstEnv(envVars) {
|
|
73
|
+
for (const varName of envVars) {
|
|
74
|
+
const value = safeEnv(varName);
|
|
75
|
+
if (value) {
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Automatically detect deployment info from CI/CD environment variables.
|
|
83
|
+
*
|
|
84
|
+
* Supports:
|
|
85
|
+
* - GitHub Actions
|
|
86
|
+
* - GitLab CI
|
|
87
|
+
* - CircleCI
|
|
88
|
+
* - Jenkins
|
|
89
|
+
* - Azure DevOps
|
|
90
|
+
* - Bitbucket Pipelines
|
|
91
|
+
* - Travis CI
|
|
92
|
+
*/
|
|
93
|
+
export class AutoDeployDetector {
|
|
94
|
+
/**
|
|
95
|
+
* Detect deployment info from environment variables.
|
|
96
|
+
*
|
|
97
|
+
* @returns DeployInfo if running in a known CI/CD environment, undefined otherwise
|
|
98
|
+
*/
|
|
99
|
+
static detect() {
|
|
100
|
+
for (const [provider, config] of Object.entries(PROVIDERS)) {
|
|
101
|
+
const detectVars = config.detect || [];
|
|
102
|
+
if (!detectVars.every((v) => safeEnv(v))) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
const gitSha = getFirstEnv(config.sha || []);
|
|
106
|
+
const versionTag = getFirstEnv(config.ref || []);
|
|
107
|
+
const commitMessage = getFirstEnv(config.message || []);
|
|
108
|
+
const metadata = {};
|
|
109
|
+
for (const [key, envVars] of Object.entries(config)) {
|
|
110
|
+
if (['detect', 'sha', 'ref', 'message'].includes(key)) {
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const value = getFirstEnv(envVars || []);
|
|
114
|
+
if (value) {
|
|
115
|
+
metadata[key] = value;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
provider,
|
|
120
|
+
gitSha,
|
|
121
|
+
versionTag,
|
|
122
|
+
commitMessage,
|
|
123
|
+
deployedAt: new Date(),
|
|
124
|
+
metadata: Object.keys(metadata).length > 0 ? metadata : undefined,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
return undefined;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Register a deployment event with TuringPulse.
|
|
132
|
+
*
|
|
133
|
+
* Call this from your CI/CD pipeline or application startup to track deployments.
|
|
134
|
+
* Deployment events are correlated with anomalies and drifts for root cause analysis.
|
|
135
|
+
*
|
|
136
|
+
* @param options - Deploy registration options
|
|
137
|
+
* @returns True if deploy was registered successfully, false otherwise
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* import { registerDeploy } from '@turingpulse/sdk';
|
|
142
|
+
*
|
|
143
|
+
* // Manual registration
|
|
144
|
+
* await registerDeploy({
|
|
145
|
+
* workflowId: 'chat-assistant',
|
|
146
|
+
* version: 'v1.2.3',
|
|
147
|
+
* gitSha: process.env.GIT_SHA,
|
|
148
|
+
* commitMessage: process.env.GIT_COMMIT_MSG,
|
|
149
|
+
* });
|
|
150
|
+
*
|
|
151
|
+
* // Auto-detect from CI/CD environment
|
|
152
|
+
* await registerDeploy({
|
|
153
|
+
* workflowId: 'chat-assistant',
|
|
154
|
+
* autoDetect: true,
|
|
155
|
+
* });
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
export async function registerDeploy(options) {
|
|
159
|
+
let { version, gitSha, commitMessage, metadata, deployedAt } = options;
|
|
160
|
+
const { workflowId, autoDetect = true } = options;
|
|
161
|
+
if (autoDetect) {
|
|
162
|
+
const detected = AutoDeployDetector.detect();
|
|
163
|
+
if (detected) {
|
|
164
|
+
gitSha = gitSha || detected.gitSha;
|
|
165
|
+
version = version || detected.versionTag;
|
|
166
|
+
commitMessage = commitMessage || detected.commitMessage;
|
|
167
|
+
deployedAt = deployedAt || detected.deployedAt;
|
|
168
|
+
if (detected.metadata) {
|
|
169
|
+
metadata = { ...(detected.metadata || {}), ...(metadata || {}) };
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
let plugin;
|
|
174
|
+
try {
|
|
175
|
+
plugin = getInstance();
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
if (error instanceof PluginNotInitializedError) {
|
|
179
|
+
// eslint-disable-next-line no-console
|
|
180
|
+
console.warn('Cannot register deploy: TuringPulse plugin not initialized');
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
throw error;
|
|
184
|
+
}
|
|
185
|
+
const payload = {
|
|
186
|
+
workflow_id: workflowId,
|
|
187
|
+
version_tag: version,
|
|
188
|
+
git_sha: gitSha,
|
|
189
|
+
commit_message: commitMessage,
|
|
190
|
+
deployed_at: (deployedAt || new Date()).toISOString(),
|
|
191
|
+
metadata: metadata || {},
|
|
192
|
+
};
|
|
193
|
+
try {
|
|
194
|
+
const result = (await plugin.client.postDeploy(payload));
|
|
195
|
+
return result?.success ?? false;
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
// eslint-disable-next-line no-console
|
|
199
|
+
console.warn('Failed to register deploy:', safeErrorMessage(error));
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=deploy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../src/deploy.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare class TuringPulsePluginError extends Error {
|
|
2
|
+
constructor(message: string);
|
|
3
|
+
}
|
|
4
|
+
export declare class PluginNotInitializedError extends TuringPulsePluginError {
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
export declare class TriggerNotFoundError extends TuringPulsePluginError {
|
|
8
|
+
constructor(key: string);
|
|
9
|
+
}
|
|
10
|
+
export declare class GovernanceBlockedError extends TuringPulsePluginError {
|
|
11
|
+
readonly reason: string | undefined;
|
|
12
|
+
readonly policyIds: string[];
|
|
13
|
+
constructor(reason?: string, policyIds?: string[]);
|
|
14
|
+
}
|
|
15
|
+
export declare class ConfigurationError extends TuringPulsePluginError {
|
|
16
|
+
constructor(message: string);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,yBAA0B,SAAQ,sBAAsB;;CAQpE;AAED,qBAAa,oBAAqB,SAAQ,sBAAsB;gBAClD,GAAG,EAAE,MAAM;CAIxB;AAED,qBAAa,sBAAuB,SAAQ,sBAAsB;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;gBAEjB,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE;CAQlD;AAED,qBAAa,kBAAmB,SAAQ,sBAAsB;gBAChD,OAAO,EAAE,MAAM;CAI5B"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export class TuringPulsePluginError extends Error {
|
|
2
|
+
constructor(message) {
|
|
3
|
+
super(message);
|
|
4
|
+
this.name = 'TuringPulsePluginError';
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export class PluginNotInitializedError extends TuringPulsePluginError {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('TuringPulse plugin is not initialized. ' +
|
|
10
|
+
'Call init(...) once or set TP_API_KEY env var.');
|
|
11
|
+
this.name = 'PluginNotInitializedError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export class TriggerNotFoundError extends TuringPulsePluginError {
|
|
15
|
+
constructor(key) {
|
|
16
|
+
super(`No trigger registered for key "${key}".`);
|
|
17
|
+
this.name = 'TriggerNotFoundError';
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class GovernanceBlockedError extends TuringPulsePluginError {
|
|
21
|
+
constructor(reason, policyIds) {
|
|
22
|
+
super(`Execution blocked by governance policy: ${reason ?? 'no reason provided'}`);
|
|
23
|
+
this.name = 'GovernanceBlockedError';
|
|
24
|
+
this.reason = reason;
|
|
25
|
+
this.policyIds = policyIds ?? [];
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export class ConfigurationError extends TuringPulsePluginError {
|
|
29
|
+
constructor(message) {
|
|
30
|
+
super(message);
|
|
31
|
+
this.name = 'ConfigurationError';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,OAAO,yBAA0B,SAAQ,sBAAsB;IACnE;QACE,KAAK,CACH,yCAAyC;YACzC,gDAAgD,CACjD,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,sBAAsB;IAC9D,YAAY,GAAW;QACrB,KAAK,CAAC,kCAAkC,GAAG,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAED,MAAM,OAAO,sBAAuB,SAAQ,sBAAsB;IAIhE,YAAY,MAAe,EAAE,SAAoB;QAC/C,KAAK,CACH,2CAA2C,MAAM,IAAI,oBAAoB,EAAE,CAC5E,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,sBAAsB;IAC5D,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event construction extracted from the plugin to satisfy SRP.
|
|
3
|
+
*
|
|
4
|
+
* EventBuilder handles AgentEvent assembly from ExecutionContext,
|
|
5
|
+
* including metadata, tokens, tool calls, and KPI results.
|
|
6
|
+
*/
|
|
7
|
+
import type { AgentEvent } from '@turingpulse/interfaces';
|
|
8
|
+
import { TuringPulseConfig } from './config';
|
|
9
|
+
import { ExecutionContext } from './context';
|
|
10
|
+
import { InstrumentationOptions } from './instrumentation';
|
|
11
|
+
import { KPIResult } from './kpi';
|
|
12
|
+
export declare class EventBuilder {
|
|
13
|
+
private readonly config;
|
|
14
|
+
private readonly redactFieldNames;
|
|
15
|
+
constructor(config: TuringPulseConfig);
|
|
16
|
+
build(context: ExecutionContext, options: InstrumentationOptions, kpiResults: KPIResult[]): AgentEvent;
|
|
17
|
+
private assembleMetadata;
|
|
18
|
+
private applyRedaction;
|
|
19
|
+
private redactValue;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=eventBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventBuilder.d.ts","sourceRoot":"","sources":["../src/eventBuilder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAe,MAAM,OAAO,CAAC;AAI/C,qBAAa,YAAY;IAGX,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAc;gBAElB,MAAM,EAAE,iBAAiB;IAMtD,KAAK,CACH,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,SAAS,EAAE,GACtB,UAAU;IAsBb,OAAO,CAAC,gBAAgB;IA2ExB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,WAAW;CAgBpB"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event construction extracted from the plugin to satisfy SRP.
|
|
3
|
+
*
|
|
4
|
+
* EventBuilder handles AgentEvent assembly from ExecutionContext,
|
|
5
|
+
* including metadata, tokens, tool calls, and KPI results.
|
|
6
|
+
*/
|
|
7
|
+
import { kpiMetadata } from './kpi';
|
|
8
|
+
const MAX_FIELD_SIZE = 500000;
|
|
9
|
+
export class EventBuilder {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
this.redactFieldNames = new Set((config.redactFields ?? []).map((f) => f.toLowerCase()));
|
|
13
|
+
}
|
|
14
|
+
build(context, options, kpiResults) {
|
|
15
|
+
const metadata = this.assembleMetadata(context, options, kpiResults);
|
|
16
|
+
return {
|
|
17
|
+
runId: context.runId,
|
|
18
|
+
agentId: context.agentId,
|
|
19
|
+
timestamp: (context.completedAt ?? context.startedAt).toISOString(),
|
|
20
|
+
type: 'agent_step',
|
|
21
|
+
payload: {
|
|
22
|
+
name: context.operation,
|
|
23
|
+
durationMs: context.durationMs,
|
|
24
|
+
status: context.status,
|
|
25
|
+
metadata,
|
|
26
|
+
tokens: context.tokensInput > 0 || context.tokensOutput > 0
|
|
27
|
+
? { prompt: context.tokensInput, completion: context.tokensOutput }
|
|
28
|
+
: undefined,
|
|
29
|
+
costUsd: context.costUsd > 0 ? context.costUsd : undefined,
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
assembleMetadata(context, options, kpiResults) {
|
|
34
|
+
const metadata = {
|
|
35
|
+
...Object.fromEntries(Object.entries(context.labels).map(([k, v]) => [k, String(v)])),
|
|
36
|
+
...Object.fromEntries(Object.entries(context.metadata).map(([k, v]) => [k, String(v)])),
|
|
37
|
+
'agent.status': context.status,
|
|
38
|
+
'agent.hidden_entrypoint': String(context.hiddenEntrypoint),
|
|
39
|
+
'agent.run_id': context.runId,
|
|
40
|
+
'agent.operation': context.operation,
|
|
41
|
+
span_id: context.spanId,
|
|
42
|
+
depth: String(context.depth),
|
|
43
|
+
};
|
|
44
|
+
if (context.parentSpanId)
|
|
45
|
+
metadata['parent_span_id'] = context.parentSpanId;
|
|
46
|
+
if (context.model)
|
|
47
|
+
metadata['model'] = context.model;
|
|
48
|
+
if (context.provider)
|
|
49
|
+
metadata['provider'] = context.provider;
|
|
50
|
+
if (context.nodeType)
|
|
51
|
+
metadata['node_type'] = context.nodeType;
|
|
52
|
+
if (context.framework)
|
|
53
|
+
metadata['framework'] = context.framework;
|
|
54
|
+
if (context.promptText)
|
|
55
|
+
metadata['prompt'] = context.promptText.slice(0, MAX_FIELD_SIZE);
|
|
56
|
+
if (context.systemPrompt)
|
|
57
|
+
metadata['system_prompt'] = context.systemPrompt.slice(0, MAX_FIELD_SIZE);
|
|
58
|
+
if (context.inputData)
|
|
59
|
+
metadata['input'] = context.inputData.slice(0, MAX_FIELD_SIZE);
|
|
60
|
+
if (context.outputData)
|
|
61
|
+
metadata['output'] = context.outputData.slice(0, MAX_FIELD_SIZE);
|
|
62
|
+
if (context.availableTools?.length) {
|
|
63
|
+
metadata['available_tools'] = JSON.stringify(context.availableTools);
|
|
64
|
+
}
|
|
65
|
+
if (context.workflowName)
|
|
66
|
+
metadata['workflow_name'] = context.workflowName;
|
|
67
|
+
if (context.triggerKey)
|
|
68
|
+
metadata['agent.trigger_key'] = context.triggerKey;
|
|
69
|
+
if (context.error instanceof Error) {
|
|
70
|
+
metadata['error.type'] = context.error.name;
|
|
71
|
+
metadata['error.message'] = context.error.message;
|
|
72
|
+
}
|
|
73
|
+
if (options.governance) {
|
|
74
|
+
metadata['governance.hitl'] = String(options.governance.hitl);
|
|
75
|
+
metadata['governance.hatl'] = String(options.governance.hatl);
|
|
76
|
+
metadata['governance.hotl'] = String(options.governance.hotl);
|
|
77
|
+
}
|
|
78
|
+
for (const result of kpiResults) {
|
|
79
|
+
Object.assign(metadata, kpiMetadata(result));
|
|
80
|
+
}
|
|
81
|
+
if (context.attachments.length > 0) {
|
|
82
|
+
metadata['attachments'] = JSON.stringify(context.attachments);
|
|
83
|
+
}
|
|
84
|
+
if (context.inputContext) {
|
|
85
|
+
metadata['input_context'] = context.inputContext.slice(0, MAX_FIELD_SIZE);
|
|
86
|
+
}
|
|
87
|
+
if (context.toolCalls.length > 0) {
|
|
88
|
+
metadata['tool_calls'] = JSON.stringify(context.toolCalls.map((tc) => ({
|
|
89
|
+
tool_name: tc.toolName,
|
|
90
|
+
tool_args: this.redactValue(tc.toolArgs),
|
|
91
|
+
tool_result: tc.toolResult ?? '',
|
|
92
|
+
tool_id: tc.toolId ?? '',
|
|
93
|
+
success: tc.success,
|
|
94
|
+
error_message: tc.errorMessage,
|
|
95
|
+
})));
|
|
96
|
+
}
|
|
97
|
+
this.applyRedaction(metadata);
|
|
98
|
+
return metadata;
|
|
99
|
+
}
|
|
100
|
+
applyRedaction(metadata) {
|
|
101
|
+
if (this.redactFieldNames.size === 0)
|
|
102
|
+
return;
|
|
103
|
+
for (const key of Object.keys(metadata)) {
|
|
104
|
+
if (this.redactFieldNames.has(key.toLowerCase())) {
|
|
105
|
+
metadata[key] = '[REDACTED]';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
redactValue(value, depth = 0) {
|
|
110
|
+
if (depth > 20 || this.redactFieldNames.size === 0)
|
|
111
|
+
return value;
|
|
112
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
113
|
+
const result = {};
|
|
114
|
+
for (const [k, v] of Object.entries(value)) {
|
|
115
|
+
result[k] = this.redactFieldNames.has(k.toLowerCase())
|
|
116
|
+
? '[REDACTED]'
|
|
117
|
+
: this.redactValue(v, depth + 1);
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
if (Array.isArray(value)) {
|
|
122
|
+
return value.map((item) => this.redactValue(item, depth + 1));
|
|
123
|
+
}
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=eventBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventBuilder.js","sourceRoot":"","sources":["../src/eventBuilder.ts"],"names":[],"mappings":"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"}
|