@blamejs/core 0.7.94 → 0.7.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -8,6 +8,8 @@ upgrading across more than a few patches at a time.
8
8
 
9
9
  ## v0.7.x
10
10
 
11
+ - **0.7.95** (2026-05-06) — `b.observability.SEMCONV` GenAI + cloud + container coverage. Twenty-eight new attribute names tracking OpenTelemetry semantic conventions for generative AI workloads, vector databases, cloud runtime context, and Kubernetes orchestration. **GenAI:** `GEN_AI_SYSTEM` / `GEN_AI_REQUEST_MODEL` / `GEN_AI_REQUEST_TEMPERATURE` / `GEN_AI_REQUEST_TOP_P` / `GEN_AI_REQUEST_TOP_K` / `GEN_AI_REQUEST_MAX_TOKENS` / `GEN_AI_REQUEST_STOP_SEQUENCES` / `GEN_AI_RESPONSE_MODEL` / `GEN_AI_RESPONSE_ID` / `GEN_AI_RESPONSE_FINISH_REASONS` / `GEN_AI_USAGE_INPUT_TOKENS` / `GEN_AI_USAGE_OUTPUT_TOKENS` / `GEN_AI_USAGE_TOTAL_TOKENS` / `GEN_AI_OPERATION_NAME` / `GEN_AI_TOOL_NAME` / `GEN_AI_TOOL_CALL_ID` / `GEN_AI_AGENT_ID` / `GEN_AI_AGENT_NAME` / `GEN_AI_AGENT_DESCRIPTION`. **Vector DB / RAG:** `DB_VECTOR_QUERY_TOP_K` / `DB_VECTOR_QUERY_DIMENSIONS` / `DB_VECTOR_QUERY_DISTANCE_METRIC`. **Cloud:** `CLOUD_PROVIDER` / `CLOUD_REGION` / `CLOUD_ACCOUNT_ID` / `CLOUD_RESOURCE_ID`. **Container / K8s:** `CONTAINER_ID` / `CONTAINER_IMAGE_NAME` / `CONTAINER_IMAGE_TAG` / `K8S_NAMESPACE_NAME` / `K8S_POD_NAME` / `K8S_DEPLOYMENT_NAME`. Operators wiring LLM client telemetry, vector-DB query traces, or Kubernetes-deployed services to an OTel collector reference these constants directly — string typos throw at access time instead of producing mis-named span attributes the OTel collector silently drops.
12
+
11
13
  - **0.7.94** (2026-05-06) — `b.compliance.REGIME_MAP` + `b.compliance.describe(<posture>)` — frozen lookup table mapping each posture name to its human-readable name + statutory citation + jurisdiction + domain. `b.compliance.describe("hipaa")` returns `{ name: "Health Insurance Portability and Accountability Act", citation: "Pub. L. 104-191; 45 CFR Parts 160, 162, 164", jurisdiction: "US", domain: "health" }`. Operators rendering the deployment posture in admin UI / audit logs reach for `REGIME_MAP[posture]` instead of hand-rolling a lookup table; values track the regulatory text and update with the framework rather than going stale in operator code. Covers all 19 postures shipped through v0.7.91 (hipaa / pci-dss / soc2 / sox + the v0.7.91 expansions: wmhmda / bipa / ccpa / gdpr / dora / nis2 / cra / ai-act / lgpd-br / pipl-cn / appi-jp / pdpa-sg / pipeda-ca / uk-gdpr). `domain` field categorizes the regime (privacy / health / payment / cybersecurity / financial-reporting / etc.) so operators can render compliance dashboards grouped by domain instead of alphabetical posture.
12
14
 
13
15
  - **0.7.93** (2026-05-06) — Adjacent-regulation incident-reporting deadline reference exported on `b.dora`. **`b.dora.DEADLINES_NIS2`** — NIS2 (Directive (EU) 2022/2555) Art. 23 deadlines: 24h early warning, 72h initial notification, 1 month final report. **`b.dora.DEADLINES_CRA`** — CRA (Regulation (EU) 2024/2847) Art. 14 deadlines: 24h early warning, 72h initial notification, 14 days final report. **`b.dora.DEADLINES_HIPAA_BREACH`** — HIPAA Breach Notification Rule (45 CFR §164.404 / §164.408) deadlines: 60 days for affected individuals, 60 days for HHS Secretary, annual aggregate report by March 1 for sub-500-individual breaches. Operators handling NIS2 / CRA / HIPAA reporting reach for these constants instead of pinning literal hour counts in their workflow code; the values track the regulatory text and update with the framework rather than going stale in operator code. The b.dora factory itself continues to enforce DORA Article 19 deadlines unchanged — operators wiring NIS2 / CRA / HIPAA workflows compose against the deadline constants directly with their own scheduler / submission code.
@@ -220,6 +220,45 @@ var SEMCONV = Object.freeze({
220
220
  TELEMETRY_SDK_NAME: "telemetry.sdk.name",
221
221
  TELEMETRY_SDK_LANGUAGE: "telemetry.sdk.language",
222
222
  TELEMETRY_SDK_VERSION: "telemetry.sdk.version",
223
+ // GenAI — OpenTelemetry semantic conventions for generative AI
224
+ // workloads (LLM clients, vector DB queries, agent frameworks).
225
+ // Tracking the otel-spec experimental namespace; covers the stable
226
+ // attribute set as of 2026-Q2.
227
+ GEN_AI_SYSTEM: "gen_ai.system",
228
+ GEN_AI_REQUEST_MODEL: "gen_ai.request.model",
229
+ GEN_AI_REQUEST_TEMPERATURE: "gen_ai.request.temperature",
230
+ GEN_AI_REQUEST_TOP_P: "gen_ai.request.top_p",
231
+ GEN_AI_REQUEST_TOP_K: "gen_ai.request.top_k",
232
+ GEN_AI_REQUEST_MAX_TOKENS: "gen_ai.request.max_tokens",
233
+ GEN_AI_REQUEST_STOP_SEQUENCES: "gen_ai.request.stop_sequences",
234
+ GEN_AI_RESPONSE_MODEL: "gen_ai.response.model",
235
+ GEN_AI_RESPONSE_ID: "gen_ai.response.id",
236
+ GEN_AI_RESPONSE_FINISH_REASONS: "gen_ai.response.finish_reasons",
237
+ GEN_AI_USAGE_INPUT_TOKENS: "gen_ai.usage.input_tokens",
238
+ GEN_AI_USAGE_OUTPUT_TOKENS: "gen_ai.usage.output_tokens",
239
+ GEN_AI_USAGE_TOTAL_TOKENS: "gen_ai.usage.total_tokens",
240
+ GEN_AI_OPERATION_NAME: "gen_ai.operation.name",
241
+ GEN_AI_TOOL_NAME: "gen_ai.tool.name",
242
+ GEN_AI_TOOL_CALL_ID: "gen_ai.tool.call.id",
243
+ GEN_AI_AGENT_ID: "gen_ai.agent.id",
244
+ GEN_AI_AGENT_NAME: "gen_ai.agent.name",
245
+ GEN_AI_AGENT_DESCRIPTION: "gen_ai.agent.description",
246
+ // Vector database / retrieval-augmented generation
247
+ DB_VECTOR_QUERY_TOP_K: "db.vector.query.top_k",
248
+ DB_VECTOR_QUERY_DIMENSIONS: "db.vector.query.dimensions",
249
+ DB_VECTOR_QUERY_DISTANCE_METRIC: "db.vector.query.distance_metric",
250
+ // Cloud / runtime context (frequently paired with GenAI)
251
+ CLOUD_PROVIDER: "cloud.provider",
252
+ CLOUD_REGION: "cloud.region",
253
+ CLOUD_ACCOUNT_ID: "cloud.account.id",
254
+ CLOUD_RESOURCE_ID: "cloud.resource_id",
255
+ // Container / orchestration
256
+ CONTAINER_ID: "container.id",
257
+ CONTAINER_IMAGE_NAME: "container.image.name",
258
+ CONTAINER_IMAGE_TAG: "container.image.tag",
259
+ K8S_NAMESPACE_NAME: "k8s.namespace.name",
260
+ K8S_POD_NAME: "k8s.pod.name",
261
+ K8S_DEPLOYMENT_NAME: "k8s.deployment.name",
223
262
  });
224
263
 
225
264
  module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blamejs/core",
3
- "version": "0.7.94",
3
+ "version": "0.7.95",
4
4
  "description": "The Node framework that owns its stack.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "blamejs contributors",
@@ -2,10 +2,10 @@
2
2
  "$schema": "http://cyclonedx.org/schema/bom-1.5.schema.json",
3
3
  "bomFormat": "CycloneDX",
4
4
  "specVersion": "1.5",
5
- "serialNumber": "urn:uuid:4a206dc4-5c8b-485f-8557-d266d9ad6730",
5
+ "serialNumber": "urn:uuid:3787e423-1b20-4099-9ab6-2794f46a4b23",
6
6
  "version": 1,
7
7
  "metadata": {
8
- "timestamp": "2026-05-06T08:24:52.645Z",
8
+ "timestamp": "2026-05-06T08:34:31.373Z",
9
9
  "lifecycles": [
10
10
  {
11
11
  "phase": "build"
@@ -19,14 +19,14 @@
19
19
  }
20
20
  ],
21
21
  "component": {
22
- "bom-ref": "@blamejs/core@0.7.94",
22
+ "bom-ref": "@blamejs/core@0.7.95",
23
23
  "type": "library",
24
24
  "name": "blamejs",
25
- "version": "0.7.94",
25
+ "version": "0.7.95",
26
26
  "scope": "required",
27
27
  "author": "blamejs contributors",
28
28
  "description": "The Node framework that owns its stack.",
29
- "purl": "pkg:npm/%40blamejs/core@0.7.94",
29
+ "purl": "pkg:npm/%40blamejs/core@0.7.95",
30
30
  "properties": [],
31
31
  "externalReferences": [
32
32
  {
@@ -54,7 +54,7 @@
54
54
  "components": [],
55
55
  "dependencies": [
56
56
  {
57
- "ref": "@blamejs/core@0.7.94",
57
+ "ref": "@blamejs/core@0.7.95",
58
58
  "dependsOn": []
59
59
  }
60
60
  ]