pi-harness-runtime 1.1.395 → 1.1.397
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/AGENTS.md +64 -8
- package/package.json +1 -1
- package/packages/a2a-adapter/package.json +1 -1
- package/packages/agent-policy/package.json +1 -1
- package/packages/architecture-generator/package.json +1 -1
- package/packages/auth/package.json +1 -1
- package/packages/autonomous-refactor/package.json +1 -1
- package/packages/autonomous-runtime/package.json +1 -1
- package/packages/cache-strategy/package.json +1 -1
- package/packages/capability-registry/package.json +1 -1
- package/packages/checkpoint/package.json +1 -1
- package/packages/cli-plugin-sdk/package.json +1 -1
- package/packages/clipboard/package.json +1 -1
- package/packages/clipboard-plugin/package.json +1 -1
- package/packages/code-generation/package.json +1 -1
- package/packages/code-review/package.json +1 -1
- package/packages/codex-adapter/package.json +1 -1
- package/packages/codex-watcher/package.json +1 -1
- package/packages/config-capture/package.json +1 -1
- package/packages/connection-runtime/package.json +1 -1
- package/packages/context-compiler/package.json +1 -1
- package/packages/context-discovery/package.json +1 -1
- package/packages/context-manager/package.json +1 -1
- package/packages/contracts/dist/workspace-env-format.d.ts +24 -0
- package/packages/contracts/dist/workspace-env-format.js +41 -1
- package/packages/contracts/dist/workspace-env.js +7 -4
- package/packages/contracts/package.json +1 -1
- package/packages/contracts/src/workspace-env-format.ts +38 -1
- package/packages/contracts/src/workspace-env.ts +8 -3
- package/packages/contracts/test/workspace-env.test.ts +48 -0
- package/packages/cookie-sanitizer/package.json +1 -1
- package/packages/cost-optimizer/package.json +1 -1
- package/packages/dependency-analyzer/package.json +1 -1
- package/packages/django-plugin/package.json +1 -1
- package/packages/doc-generator/package.json +1 -1
- package/packages/durable-review/package.json +1 -1
- package/packages/e2e-tester/package.json +1 -1
- package/packages/evaluation-engine/package.json +1 -1
- package/packages/evaluation-runner/package.json +1 -1
- package/packages/event-bus/package.json +1 -1
- package/packages/event-sink/package.json +1 -1
- package/packages/event-store/package.json +1 -1
- package/packages/experience-replay/package.json +1 -1
- package/packages/feedback-collector/package.json +1 -1
- package/packages/file-copy-helper/package.json +1 -1
- package/packages/framework-detector/package.json +1 -1
- package/packages/framework-plugin-sdk/package.json +1 -1
- package/packages/frappe-plugin/package.json +1 -1
- package/packages/generic-web-plugin/package.json +1 -1
- package/packages/health-monitor/package.json +1 -1
- package/packages/intent-analyzer/package.json +1 -1
- package/packages/jev-judge/package.json +1 -1
- package/packages/knowledge-graph/package.json +1 -1
- package/packages/knowledge-retrieval/package.json +1 -1
- package/packages/laravel-plugin/package.json +1 -1
- package/packages/learning-engine/package.json +1 -1
- package/packages/logging/README.md +41 -6
- package/packages/logging/dist/classification.d.ts +65 -0
- package/packages/logging/dist/classification.d.ts.map +1 -0
- package/packages/logging/dist/classification.js +155 -0
- package/packages/logging/dist/classification.js.map +1 -0
- package/packages/logging/dist/config.d.ts +9 -0
- package/packages/logging/dist/config.d.ts.map +1 -1
- package/packages/logging/dist/config.js +40 -3
- package/packages/logging/dist/config.js.map +1 -1
- package/packages/logging/dist/index.d.ts +9 -1
- package/packages/logging/dist/index.d.ts.map +1 -1
- package/packages/logging/dist/index.js +10 -1
- package/packages/logging/dist/index.js.map +1 -1
- package/packages/logging/dist/ingest/schema.d.ts +60 -0
- package/packages/logging/dist/ingest/schema.d.ts.map +1 -0
- package/packages/logging/dist/ingest/schema.js +245 -0
- package/packages/logging/dist/ingest/schema.js.map +1 -0
- package/packages/logging/dist/installation.d.ts +32 -0
- package/packages/logging/dist/installation.d.ts.map +1 -0
- package/packages/logging/dist/installation.js +64 -0
- package/packages/logging/dist/installation.js.map +1 -0
- package/packages/logging/dist/sensitive-keys.d.ts +12 -0
- package/packages/logging/dist/sensitive-keys.d.ts.map +1 -0
- package/packages/logging/dist/sensitive-keys.js +39 -0
- package/packages/logging/dist/sensitive-keys.js.map +1 -0
- package/packages/logging/dist/server/credentials.d.ts +85 -0
- package/packages/logging/dist/server/credentials.d.ts.map +1 -0
- package/packages/logging/dist/server/credentials.js +147 -0
- package/packages/logging/dist/server/credentials.js.map +1 -0
- package/packages/logging/dist/server/http.d.ts +36 -0
- package/packages/logging/dist/server/http.d.ts.map +1 -0
- package/packages/logging/dist/server/http.js +139 -0
- package/packages/logging/dist/server/http.js.map +1 -0
- package/packages/logging/dist/server/index-store.d.ts +95 -0
- package/packages/logging/dist/server/index-store.d.ts.map +1 -0
- package/packages/logging/dist/server/index-store.js +190 -0
- package/packages/logging/dist/server/index-store.js.map +1 -0
- package/packages/logging/dist/server/index.d.ts +22 -0
- package/packages/logging/dist/server/index.d.ts.map +1 -0
- package/packages/logging/dist/server/index.js +15 -0
- package/packages/logging/dist/server/index.js.map +1 -0
- package/packages/logging/dist/server/keys.d.ts +22 -0
- package/packages/logging/dist/server/keys.d.ts.map +1 -0
- package/packages/logging/dist/server/keys.js +24 -0
- package/packages/logging/dist/server/keys.js.map +1 -0
- package/packages/logging/dist/server/outbox-worker.d.ts +55 -0
- package/packages/logging/dist/server/outbox-worker.d.ts.map +1 -0
- package/packages/logging/dist/server/outbox-worker.js +95 -0
- package/packages/logging/dist/server/outbox-worker.js.map +1 -0
- package/packages/logging/dist/server/outbox.d.ts +112 -0
- package/packages/logging/dist/server/outbox.d.ts.map +1 -0
- package/packages/logging/dist/server/outbox.js +247 -0
- package/packages/logging/dist/server/outbox.js.map +1 -0
- package/packages/logging/dist/server/service.d.ts +83 -0
- package/packages/logging/dist/server/service.d.ts.map +1 -0
- package/packages/logging/dist/server/service.js +144 -0
- package/packages/logging/dist/server/service.js.map +1 -0
- package/packages/logging/dist/shipper.d.ts +20 -4
- package/packages/logging/dist/shipper.d.ts.map +1 -1
- package/packages/logging/dist/shipper.js +31 -5
- package/packages/logging/dist/shipper.js.map +1 -1
- package/packages/logging/dist/singleton.d.ts.map +1 -1
- package/packages/logging/dist/singleton.js +3 -0
- package/packages/logging/dist/singleton.js.map +1 -1
- package/packages/logging/dist/types.d.ts +28 -1
- package/packages/logging/dist/types.d.ts.map +1 -1
- package/packages/logging/dist/types.js +8 -0
- package/packages/logging/dist/types.js.map +1 -1
- package/packages/logging/package.json +1 -1
- package/packages/logging/src/classification.ts +175 -0
- package/packages/logging/src/config.ts +60 -3
- package/packages/logging/src/index.ts +45 -1
- package/packages/logging/src/ingest/schema.ts +295 -0
- package/packages/logging/src/installation.ts +76 -0
- package/packages/logging/src/sensitive-keys.ts +40 -0
- package/packages/logging/src/server/credentials.ts +198 -0
- package/packages/logging/src/server/http.ts +170 -0
- package/packages/logging/src/server/index-store.ts +242 -0
- package/packages/logging/src/server/index.ts +56 -0
- package/packages/logging/src/server/keys.ts +32 -0
- package/packages/logging/src/server/outbox-worker.ts +124 -0
- package/packages/logging/src/server/outbox.ts +316 -0
- package/packages/logging/src/server/service.ts +196 -0
- package/packages/logging/src/shipper.ts +54 -8
- package/packages/logging/src/singleton.ts +3 -0
- package/packages/logging/src/types.ts +29 -1
- package/packages/logging/test/classification.test.ts +137 -0
- package/packages/logging/test/identity-transport.test.ts +197 -0
- package/packages/logging/test/ingest-schema.test.ts +184 -0
- package/packages/logging/test/integration.test.ts +9 -4
- package/packages/logging/test/log-http.test.ts +246 -0
- package/packages/logging/test/server.test.ts +444 -0
- package/packages/logging/test/shipper.test.ts +11 -11
- package/packages/logging/test/spool.test.ts +4 -1
- package/packages/mcp-adapter/package.json +1 -1
- package/packages/memory-engine/package.json +1 -1
- package/packages/milestone-manager/package.json +1 -1
- package/packages/model-registry/package.json +1 -1
- package/packages/nextjs-plugin/package.json +1 -1
- package/packages/notification/package.json +1 -1
- package/packages/observability/package.json +1 -1
- package/packages/okf-indexer/package.json +1 -1
- package/packages/paperclip-integration/package.json +1 -1
- package/packages/performance-optimizer/package.json +1 -1
- package/packages/permission-mode/package.json +1 -1
- package/packages/privilege-broker/package.json +1 -1
- package/packages/project-analyzer/package.json +1 -1
- package/packages/project-bootstrap/package.json +1 -1
- package/packages/projection-engine/package.json +1 -1
- package/packages/prompt-compiler/package.json +1 -1
- package/packages/prompt-versioning/package.json +1 -1
- package/packages/provider-adapter-sdk/package.json +1 -1
- package/packages/provider-router/package.json +1 -1
- package/packages/provider-selector/package.json +1 -1
- package/packages/providers/package.json +1 -1
- package/packages/qdrant-skills/package.json +1 -1
- package/packages/quota-manager/package.json +1 -1
- package/packages/rate-limiter/package.json +1 -1
- package/packages/react-vite-plugin/package.json +1 -1
- package/packages/relay/package.json +1 -1
- package/packages/release-manager/package.json +1 -1
- package/packages/requirement-compiler/package.json +1 -1
- package/packages/runtime/package.json +1 -1
- package/packages/scheduler/package.json +1 -1
- package/packages/scheduler-adapter/package.json +1 -1
- package/packages/session/package.json +1 -1
- package/packages/session-api/package.json +1 -1
- package/packages/session-export/package.json +1 -1
- package/packages/shared-context/package.json +1 -1
- package/packages/skill-mcp-client/package.json +1 -1
- package/packages/skill-registry/package.json +1 -1
- package/packages/skills/package.json +1 -1
- package/packages/sprint-planner/package.json +1 -1
- package/packages/subscription-engine/package.json +1 -1
- package/packages/task-compiler/package.json +1 -1
- package/packages/telegram/package.json +1 -1
- package/packages/tencentdb-memory/package.json +1 -1
- package/packages/tencentdb-sync/package.json +1 -1
- package/packages/test-data-generator/package.json +1 -1
- package/packages/test-generator/package.json +1 -1
- package/packages/todo-bd-sync/package.json +1 -1
- package/packages/token-estimation/package.json +1 -1
- package/packages/token-optimizer/package.json +1 -1
- package/packages/trajectory/package.json +1 -1
- package/packages/tui/package.json +1 -1
- package/packages/types/package.json +1 -1
- package/packages/voice-api/package.json +1 -1
- package/packages/webmcp-tester/package.json +1 -1
- package/packages/wiki/package.json +1 -1
- package/packages/workflow-events/package.json +1 -1
- package/packages/workspace-scanner/package.json +1 -1
- package/packages/worktree/package.json +1 -1
- package/packages/write-review/package.json +1 -1
- package/scripts/unified-webhook-server.ts +86 -81
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shipper.js","sourceRoot":"","sources":["../src/shipper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,SAAS,EAAyB,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAyB,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAuB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"shipper.js","sourceRoot":"","sources":["../src/shipper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACzC,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,GAAE,yBAA8B,GACrC,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"singleton.d.ts","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,WAAW,yBAAyB;IACzC,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,GAAE,yBAA8B,GACrC,aAAa,GAAG,IAAI,CAoCtB;AAED,mEAAmE;AACnE,wBAAgB,iBAAiB,IAAI,UAAU,GAAG,IAAI,CAErD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,IAAI,aAAa,GAAG,IAAI,CAE1D;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CACzB,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,OAAO,GACb,IAAI,CAMN;AAED,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAEN;AAED,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAEN;AAED,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,IAAI,CAEN;AAED,wBAAgB,YAAY,CAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,KAAK,CAAC,EAAE,OAAO,GACb,IAAI,CAEN;AAED,2EAA2E;AAC3E,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC,CAS5D"}
|
|
@@ -32,10 +32,13 @@ export function initCentralLogging(options = {}) {
|
|
|
32
32
|
const spool = resolved.spoolDir ? new LogSpool({ dir: resolved.spoolDir }) : undefined;
|
|
33
33
|
shipper = new LogShipper({
|
|
34
34
|
app: resolved.app,
|
|
35
|
+
appVersion: resolved.appVersion,
|
|
36
|
+
installationId: resolved.installationId,
|
|
35
37
|
transports: resolved.transports,
|
|
36
38
|
spool,
|
|
37
39
|
buffer: resolved.buffer,
|
|
38
40
|
sampling: resolved.sampling,
|
|
41
|
+
classification: resolved.classification,
|
|
39
42
|
flushIntervalMs: resolved.flushIntervalMs,
|
|
40
43
|
});
|
|
41
44
|
shipper.start();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"singleton.js","sourceRoot":"","sources":["../src/singleton.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,14 @@
|
|
|
10
10
|
* decision, including the fallback order and the local spool.
|
|
11
11
|
*/
|
|
12
12
|
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
13
|
+
/**
|
|
14
|
+
* Schema version of the batch/record contract.
|
|
15
|
+
*
|
|
16
|
+
* v2 adds the installation identity (`installationId`), the app version and
|
|
17
|
+
* a `schemaVersion` marker, so a server can tell an old client from a new
|
|
18
|
+
* one instead of guessing.
|
|
19
|
+
*/
|
|
20
|
+
export declare const LOG_SCHEMA_VERSION = 2;
|
|
13
21
|
/** Severity order used by the sampler and the buffer drop policy. */
|
|
14
22
|
export declare const LOG_LEVEL_SEVERITY: Record<LogLevel, number>;
|
|
15
23
|
export interface LogErrorInfo {
|
|
@@ -47,9 +55,26 @@ export interface LogInput {
|
|
|
47
55
|
}
|
|
48
56
|
/** The transport unit: a batch of records shipped together. */
|
|
49
57
|
export interface LogBatch {
|
|
58
|
+
/** Contract version, see `LOG_SCHEMA_VERSION`. */
|
|
59
|
+
schemaVersion: number;
|
|
50
60
|
batchId: string;
|
|
61
|
+
/** Application name, e.g. "pi-harness". */
|
|
51
62
|
app: string;
|
|
52
|
-
|
|
63
|
+
/** Version of the emitting application. */
|
|
64
|
+
appVersion?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Stable random id of this installation, created once per local install.
|
|
67
|
+
*
|
|
68
|
+
* It is the only machine identity in the protocol. It is never derived
|
|
69
|
+
* from the hostname and it is not an identity on the server either - the
|
|
70
|
+
* tenant comes from the authenticated credential.
|
|
71
|
+
*/
|
|
72
|
+
installationId: string;
|
|
73
|
+
/** Optional user-editable display label (never an identity). */
|
|
74
|
+
hostLabel?: string;
|
|
75
|
+
/** Opaque session id, when the producer knows one. */
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
/** ISO-8601 timestamp of the send. */
|
|
53
78
|
sentAt: string;
|
|
54
79
|
records: LogRecord[];
|
|
55
80
|
}
|
|
@@ -67,6 +92,8 @@ export interface FlushStats {
|
|
|
67
92
|
dropped: number;
|
|
68
93
|
/** Records dropped by the sampler (level, sample rate, rate limit). */
|
|
69
94
|
sampled: number;
|
|
95
|
+
/** Records that stayed on the machine (classification: local only). */
|
|
96
|
+
localOnly: number;
|
|
70
97
|
/** Transport errors, keyed by transport name. */
|
|
71
98
|
errors: Record<string, string>;
|
|
72
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKvD,CAAC;AAEF,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKvD,CAAC;AAEF,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sCAAsC;AACtC,MAAM,WAAW,SAAS;IACzB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,QAAQ,CAAC;IAChB,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,4CAA4C;AAC5C,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,+DAA+D;AAC/D,MAAM,WAAW,QAAQ;IACxB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,SAAS,EAAE,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IAC1B,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B"}
|
|
@@ -9,6 +9,14 @@
|
|
|
9
9
|
* Producers never know which transport is configured; the shipper owns that
|
|
10
10
|
* decision, including the fallback order and the local spool.
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Schema version of the batch/record contract.
|
|
14
|
+
*
|
|
15
|
+
* v2 adds the installation identity (`installationId`), the app version and
|
|
16
|
+
* a `schemaVersion` marker, so a server can tell an old client from a new
|
|
17
|
+
* one instead of guessing.
|
|
18
|
+
*/
|
|
19
|
+
export const LOG_SCHEMA_VERSION = 2;
|
|
12
20
|
/** Severity order used by the sampler and the buffer drop policy. */
|
|
13
21
|
export const LOG_LEVEL_SEVERITY = {
|
|
14
22
|
debug: 10,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC3D,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACT,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,qEAAqE;AACrE,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC3D,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,EAAE;IACR,IAAI,EAAE,EAAE;IACR,KAAK,EAAE,EAAE;CACT,CAAC"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What may leave the machine.
|
|
3
|
+
*
|
|
4
|
+
* The local log file keeps everything. The centralized archive keeps what an
|
|
5
|
+
* operator actually needs: service state, event codes, sanitized errors,
|
|
6
|
+
* durations and opaque identifiers.
|
|
7
|
+
*
|
|
8
|
+
* Two rules decide:
|
|
9
|
+
*
|
|
10
|
+
* 1. The event decides. A catch-all mirror of a local log line
|
|
11
|
+
* (`harness.log`) or anything that smells like a prompt, a response or
|
|
12
|
+
* command output never leaves the machine.
|
|
13
|
+
* 2. The payload decides. A message only travels when it looks like a
|
|
14
|
+
* sanitized summary: short, one line, no path and no URL with a query
|
|
15
|
+
* string. Fields with a private key name are dropped.
|
|
16
|
+
*
|
|
17
|
+
* The diagnostic mode (`PI_LOG_DIAGNOSTIC=1`) relaxes rule 2 for a user who
|
|
18
|
+
* explicitly asked for more, and nothing else.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { isLocalOnlyFieldKey } from "./sensitive-keys.js";
|
|
22
|
+
import type { LogRecord } from "./types.js";
|
|
23
|
+
|
|
24
|
+
export interface ClassificationPolicy {
|
|
25
|
+
/** Events that may go remote. */
|
|
26
|
+
remoteEvents: RegExp[];
|
|
27
|
+
/** Events that never go remote, whatever the level is. */
|
|
28
|
+
localEvents: RegExp[];
|
|
29
|
+
/** Keep a message even when it does not look sanitized. */
|
|
30
|
+
allowRawMessages: boolean;
|
|
31
|
+
/** Maximum length of a message that is kept. */
|
|
32
|
+
maxMessageLength: number;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Events that stay local.
|
|
37
|
+
*
|
|
38
|
+
* `harness.log` is the mirror of the catch-all local log line - it carries
|
|
39
|
+
* whatever the harness printed, so it is never remote.
|
|
40
|
+
*/
|
|
41
|
+
export const DEFAULT_LOCAL_EVENTS: RegExp[] = [
|
|
42
|
+
/^harness\.log$/,
|
|
43
|
+
/prompt/i,
|
|
44
|
+
/response/i,
|
|
45
|
+
/transcript/i,
|
|
46
|
+
/output/i,
|
|
47
|
+
/command/i,
|
|
48
|
+
/content/i,
|
|
49
|
+
/message\.text/i,
|
|
50
|
+
/notification\.text/i,
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Events that may go remote.
|
|
55
|
+
*
|
|
56
|
+
* They are structured: a service state change, a session lifecycle event, a
|
|
57
|
+
* validation tier, a provider or quota event.
|
|
58
|
+
*/
|
|
59
|
+
export const DEFAULT_REMOTE_EVENTS: RegExp[] = [
|
|
60
|
+
/^harness\.service-diagnostics\./,
|
|
61
|
+
/^harness\.session\./,
|
|
62
|
+
/^harness\.startup\./,
|
|
63
|
+
/^harness\.shutdown\./,
|
|
64
|
+
/^harness\.planner\.decision$/,
|
|
65
|
+
/^harness\.glm-quota\.quota$/,
|
|
66
|
+
/^validation\./,
|
|
67
|
+
/^tier\./,
|
|
68
|
+
/^service\./,
|
|
69
|
+
/^session\./,
|
|
70
|
+
/^startup\./,
|
|
71
|
+
/^config\./,
|
|
72
|
+
/^provider\./,
|
|
73
|
+
/^quota\./,
|
|
74
|
+
/^logging\./,
|
|
75
|
+
/^jest\./,
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
export const DEFAULT_CLASSIFICATION_POLICY: ClassificationPolicy = {
|
|
79
|
+
remoteEvents: DEFAULT_REMOTE_EVENTS,
|
|
80
|
+
localEvents: DEFAULT_LOCAL_EVENTS,
|
|
81
|
+
allowRawMessages: false,
|
|
82
|
+
maxMessageLength: 200,
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
const ABSOLUTE_PATH = /(?:^|\s)\/(?:[\w.-]+\/)+[\w.-]+/;
|
|
86
|
+
const URL_WITH_QUERY = /https?:\/\/\S+\?\S+/;
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* True when a message looks like a sanitized summary and may travel.
|
|
90
|
+
*/
|
|
91
|
+
export function isSanitizedMessage(message: string, policy: ClassificationPolicy): boolean {
|
|
92
|
+
if (policy.allowRawMessages) return true;
|
|
93
|
+
if (message.length > policy.maxMessageLength) return false;
|
|
94
|
+
if (message.includes("\n")) return false;
|
|
95
|
+
if (ABSOLUTE_PATH.test(message)) return false;
|
|
96
|
+
if (URL_WITH_QUERY.test(message)) return false;
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Classify one record.
|
|
102
|
+
*
|
|
103
|
+
* "remote" means the record may be shipped; "local" means it must stay on
|
|
104
|
+
* the machine.
|
|
105
|
+
*/
|
|
106
|
+
export function classifyRecord(
|
|
107
|
+
record: LogRecord,
|
|
108
|
+
policy: ClassificationPolicy = DEFAULT_CLASSIFICATION_POLICY,
|
|
109
|
+
): "remote" | "local" {
|
|
110
|
+
for (const pattern of policy.localEvents) {
|
|
111
|
+
if (pattern.test(record.event)) return "local";
|
|
112
|
+
}
|
|
113
|
+
for (const pattern of policy.remoteEvents) {
|
|
114
|
+
if (pattern.test(record.event)) return "remote";
|
|
115
|
+
}
|
|
116
|
+
// Errors stay valuable even when the event is unknown: the message and
|
|
117
|
+
// the fields are sanitized anyway.
|
|
118
|
+
if (record.level === "warn" || record.level === "error") return "remote";
|
|
119
|
+
// Unknown events are local by default: an allowlist is safer than a
|
|
120
|
+
// denylist.
|
|
121
|
+
return "local";
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Build the version of a record that may leave the machine.
|
|
126
|
+
*
|
|
127
|
+
* Returns null when the record must stay local.
|
|
128
|
+
*/
|
|
129
|
+
export function prepareRemoteRecord(
|
|
130
|
+
record: LogRecord,
|
|
131
|
+
policy: ClassificationPolicy = DEFAULT_CLASSIFICATION_POLICY,
|
|
132
|
+
): LogRecord | null {
|
|
133
|
+
if (classifyRecord(record, policy) === "local") return null;
|
|
134
|
+
|
|
135
|
+
const remote: LogRecord = {
|
|
136
|
+
ts: record.ts,
|
|
137
|
+
level: record.level,
|
|
138
|
+
source: record.source,
|
|
139
|
+
event: record.event,
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
if (record.message !== undefined && isSanitizedMessage(record.message, policy)) {
|
|
143
|
+
remote.message = record.message;
|
|
144
|
+
}
|
|
145
|
+
if (record.sessionId) remote.sessionId = record.sessionId;
|
|
146
|
+
if (typeof record.durationMs === "number") remote.durationMs = record.durationMs;
|
|
147
|
+
|
|
148
|
+
if (record.fields) {
|
|
149
|
+
const fields: Record<string, unknown> = {};
|
|
150
|
+
for (const [key, value] of Object.entries(record.fields)) {
|
|
151
|
+
if (isLocalOnlyFieldKey(key)) continue;
|
|
152
|
+
fields[key] = value;
|
|
153
|
+
}
|
|
154
|
+
if (Object.keys(fields).length > 0) remote.fields = fields;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (record.error) {
|
|
158
|
+
remote.error = { ...record.error };
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return remote;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/** Keep only the records that may leave the machine. */
|
|
165
|
+
export function filterRemoteRecords(
|
|
166
|
+
records: LogRecord[],
|
|
167
|
+
policy: ClassificationPolicy = DEFAULT_CLASSIFICATION_POLICY,
|
|
168
|
+
): LogRecord[] {
|
|
169
|
+
const remote: LogRecord[] = [];
|
|
170
|
+
for (const record of records) {
|
|
171
|
+
const prepared = prepareRemoteRecord(record, policy);
|
|
172
|
+
if (prepared) remote.push(prepared);
|
|
173
|
+
}
|
|
174
|
+
return remote;
|
|
175
|
+
}
|
|
@@ -13,6 +13,11 @@ import { homedir } from "node:os";
|
|
|
13
13
|
import { join } from "node:path";
|
|
14
14
|
import { createR2Transport } from "./transports/r2.js";
|
|
15
15
|
import { createWebhookTransport } from "./transports/webhook.js";
|
|
16
|
+
import { resolveInstallationId } from "./installation.js";
|
|
17
|
+
import {
|
|
18
|
+
DEFAULT_CLASSIFICATION_POLICY,
|
|
19
|
+
type ClassificationPolicy,
|
|
20
|
+
} from "./classification.js";
|
|
16
21
|
import type { LogBufferOptions } from "./buffer.js";
|
|
17
22
|
import type { SamplingPolicy } from "./sampler.js";
|
|
18
23
|
import type { LogTransport } from "./types.js";
|
|
@@ -24,6 +29,10 @@ export interface LogSinkConfig {
|
|
|
24
29
|
enabled: boolean;
|
|
25
30
|
/** Application name reported with every batch. */
|
|
26
31
|
app: string;
|
|
32
|
+
/** Version of the emitting application. */
|
|
33
|
+
appVersion?: string;
|
|
34
|
+
/** Stable id of this installation. */
|
|
35
|
+
installationId: string;
|
|
27
36
|
/** Transports in delivery priority order. */
|
|
28
37
|
transports: LogTransport[];
|
|
29
38
|
/** Directory of the local spool (undefined when logging is off). */
|
|
@@ -31,6 +40,8 @@ export interface LogSinkConfig {
|
|
|
31
40
|
sampling: Partial<SamplingPolicy>;
|
|
32
41
|
buffer: LogBufferOptions;
|
|
33
42
|
flushIntervalMs: number;
|
|
43
|
+
/** What may leave the machine. */
|
|
44
|
+
classification: ClassificationPolicy;
|
|
34
45
|
/** Human readable notes about what was enabled and why. */
|
|
35
46
|
notes: string[];
|
|
36
47
|
}
|
|
@@ -39,6 +50,8 @@ export interface ResolveConfigOptions {
|
|
|
39
50
|
env?: Record<string, string | undefined>;
|
|
40
51
|
/** Directory holding the credential key files. */
|
|
41
52
|
keysDir?: string;
|
|
53
|
+
/** Overrides the installation id (tests, containers). */
|
|
54
|
+
installationId?: string;
|
|
42
55
|
}
|
|
43
56
|
|
|
44
57
|
function readKeyFile(keysDir: string, name: string): string | undefined {
|
|
@@ -67,6 +80,21 @@ export function defaultSpoolDir(): string {
|
|
|
67
80
|
return join(homedir(), ".pi-harness-runtime", "logs", "spool");
|
|
68
81
|
}
|
|
69
82
|
|
|
83
|
+
/**
|
|
84
|
+
* Build the classification policy.
|
|
85
|
+
*
|
|
86
|
+
* `PI_LOG_DIAGNOSTIC=1` is the explicit, user controlled diagnostic mode: it
|
|
87
|
+
* lets messages travel that the default policy keeps local. It never widens
|
|
88
|
+
* the event allowlist - only the message rule.
|
|
89
|
+
*/
|
|
90
|
+
function classificationFor(
|
|
91
|
+
env: Record<string, string | undefined>,
|
|
92
|
+
): ClassificationPolicy {
|
|
93
|
+
const diagnostic = env.PI_LOG_DIAGNOSTIC === "1" || env.PI_LOG_DIAGNOSTIC === "true";
|
|
94
|
+
if (!diagnostic) return DEFAULT_CLASSIFICATION_POLICY;
|
|
95
|
+
return { ...DEFAULT_CLASSIFICATION_POLICY, allowRawMessages: true };
|
|
96
|
+
}
|
|
97
|
+
|
|
70
98
|
/**
|
|
71
99
|
* Build the log sink configuration from the environment and the key files.
|
|
72
100
|
*/
|
|
@@ -76,14 +104,19 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
76
104
|
const mode = (env.PI_LOG_SINK ?? "auto") as LogSinkMode;
|
|
77
105
|
const notes: string[] = [];
|
|
78
106
|
|
|
107
|
+
const installationId =
|
|
108
|
+
options.installationId ?? env.PI_LOG_INSTALLATION_ID ?? resolveInstallationId();
|
|
109
|
+
|
|
79
110
|
if (mode === "off") {
|
|
80
111
|
return {
|
|
81
112
|
enabled: false,
|
|
82
113
|
app: env.PI_LOG_APP ?? "pi-harness",
|
|
114
|
+
installationId,
|
|
83
115
|
transports: [],
|
|
84
116
|
sampling: {},
|
|
85
117
|
buffer: {},
|
|
86
118
|
flushIntervalMs: 0,
|
|
119
|
+
classification: classificationFor(env),
|
|
87
120
|
notes: ["logging disabled by PI_LOG_SINK=off"],
|
|
88
121
|
};
|
|
89
122
|
}
|
|
@@ -102,7 +135,21 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
102
135
|
(accountId ? `https://${accountId}.r2.cloudflarestorage.com` : undefined);
|
|
103
136
|
|
|
104
137
|
const r2Ready = Boolean(bucket && accessKeyId && secretAccessKey && endpoint);
|
|
105
|
-
const
|
|
138
|
+
const webhookUrl = env.PI_LOG_WEBHOOK_URL;
|
|
139
|
+
|
|
140
|
+
/*
|
|
141
|
+
* Transport selection.
|
|
142
|
+
*
|
|
143
|
+
* The transports form a FALLBACK chain, not a broadcast: the first
|
|
144
|
+
* transport that accepts the batch wins and the later ones are not
|
|
145
|
+
* called. `auto` therefore prefers the webhook ingress when one is
|
|
146
|
+
* configured: the server is the single writer to R2, so client machines
|
|
147
|
+
* never need R2 credentials at all.
|
|
148
|
+
*/
|
|
149
|
+
const wantR2 =
|
|
150
|
+
mode === "r2" ||
|
|
151
|
+
mode === "r2+webhook" ||
|
|
152
|
+
(mode === "auto" && r2Ready && !webhookUrl);
|
|
106
153
|
|
|
107
154
|
if (wantR2) {
|
|
108
155
|
if (r2Ready) {
|
|
@@ -121,7 +168,6 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
121
168
|
}
|
|
122
169
|
}
|
|
123
170
|
|
|
124
|
-
const webhookUrl = env.PI_LOG_WEBHOOK_URL;
|
|
125
171
|
const wantWebhook =
|
|
126
172
|
mode === "webhook" || mode === "r2+webhook" || (mode === "auto" && Boolean(webhookUrl));
|
|
127
173
|
|
|
@@ -134,6 +180,11 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
134
180
|
}),
|
|
135
181
|
);
|
|
136
182
|
notes.push(`webhook enabled (${webhookUrl})`);
|
|
183
|
+
if (mode === "auto") {
|
|
184
|
+
notes.push(
|
|
185
|
+
"webhook is the client ingress point - the server writes to R2 (direct r2 transport skipped)",
|
|
186
|
+
);
|
|
187
|
+
}
|
|
137
188
|
} else {
|
|
138
189
|
notes.push("webhook requested but PI_LOG_WEBHOOK_URL is not set - transport skipped");
|
|
139
190
|
}
|
|
@@ -143,9 +194,10 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
143
194
|
notes.push("no transport configured - logs stay local");
|
|
144
195
|
}
|
|
145
196
|
|
|
146
|
-
|
|
197
|
+
const config: LogSinkConfig = {
|
|
147
198
|
enabled: true,
|
|
148
199
|
app: env.PI_LOG_APP ?? "pi-harness",
|
|
200
|
+
installationId,
|
|
149
201
|
transports,
|
|
150
202
|
spoolDir: env.PI_LOG_SPOOL_DIR ?? defaultSpoolDir(),
|
|
151
203
|
sampling: {
|
|
@@ -158,6 +210,11 @@ export function resolveLogSinkConfig(options: ResolveConfigOptions = {}): LogSin
|
|
|
158
210
|
maxBatchSize: readNumber(env, "PI_LOG_BATCH_SIZE", 100),
|
|
159
211
|
},
|
|
160
212
|
flushIntervalMs: readNumber(env, "PI_LOG_FLUSH_INTERVAL_MS", 15_000),
|
|
213
|
+
classification: classificationFor(env),
|
|
161
214
|
notes,
|
|
162
215
|
};
|
|
216
|
+
|
|
217
|
+
if (env.PI_LOG_APP_VERSION) config.appVersion = env.PI_LOG_APP_VERSION;
|
|
218
|
+
|
|
219
|
+
return config;
|
|
163
220
|
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
// --- Types -----------------------------------------------------------------
|
|
14
14
|
|
|
15
|
-
export { LOG_LEVEL_SEVERITY } from "./types.js";
|
|
15
|
+
export { LOG_LEVEL_SEVERITY, LOG_SCHEMA_VERSION } from "./types.js";
|
|
16
16
|
export type {
|
|
17
17
|
FlushStats,
|
|
18
18
|
LogBatch,
|
|
@@ -77,6 +77,50 @@ export {
|
|
|
77
77
|
} from "./singleton.js";
|
|
78
78
|
export type { InitCentralLoggingOptions } from "./singleton.js";
|
|
79
79
|
|
|
80
|
+
// --- Installation identity --------------------------------------------------
|
|
81
|
+
|
|
82
|
+
export {
|
|
83
|
+
INSTALLATION_ID_FILE,
|
|
84
|
+
defaultInstallationIdPath,
|
|
85
|
+
isValidInstallationId,
|
|
86
|
+
resolveInstallationId,
|
|
87
|
+
} from "./installation.js";
|
|
88
|
+
export type { ResolveInstallationIdOptions } from "./installation.js";
|
|
89
|
+
|
|
90
|
+
// --- Classification (what may leave the machine) ----------------------------
|
|
91
|
+
|
|
92
|
+
export {
|
|
93
|
+
DEFAULT_CLASSIFICATION_POLICY,
|
|
94
|
+
DEFAULT_LOCAL_EVENTS,
|
|
95
|
+
DEFAULT_REMOTE_EVENTS,
|
|
96
|
+
classifyRecord,
|
|
97
|
+
filterRemoteRecords,
|
|
98
|
+
isSanitizedMessage,
|
|
99
|
+
prepareRemoteRecord,
|
|
100
|
+
} from "./classification.js";
|
|
101
|
+
export type { ClassificationPolicy } from "./classification.js";
|
|
102
|
+
|
|
103
|
+
export { LOCAL_ONLY_FIELD_KEYS, isLocalOnlyFieldKey } from "./sensitive-keys.js";
|
|
104
|
+
|
|
105
|
+
// --- Ingest contract (shared by client and server) -------------------------
|
|
106
|
+
|
|
107
|
+
export {
|
|
108
|
+
DEFAULT_BATCH_LIMITS,
|
|
109
|
+
LOG_LEVELS,
|
|
110
|
+
sanitizeRecord,
|
|
111
|
+
validateBatch,
|
|
112
|
+
} from "./ingest/schema.js";
|
|
113
|
+
export type {
|
|
114
|
+
BatchValidationError,
|
|
115
|
+
BatchValidationLimits,
|
|
116
|
+
BatchValidationResult,
|
|
117
|
+
SanitizeRecordResult,
|
|
118
|
+
} from "./ingest/schema.js";
|
|
119
|
+
|
|
120
|
+
// --- Server side ------------------------------------------------------------
|
|
121
|
+
|
|
122
|
+
export * from "./server/index.js";
|
|
123
|
+
|
|
80
124
|
// --- Configuration ---------------------------------------------------------
|
|
81
125
|
|
|
82
126
|
export {
|