@pdpp/local-collector 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +48 -0
  2. package/dist/local-collector/bin/pdpp-local-collector.js +347 -0
  3. package/dist/local-collector/src/errors.d.ts +12 -0
  4. package/dist/local-collector/src/errors.js +20 -0
  5. package/dist/local-collector/src/runner.d.ts +16 -0
  6. package/dist/local-collector/src/runner.js +59 -0
  7. package/dist/polyfill-connectors/connectors/claude_code/index.js +806 -0
  8. package/dist/polyfill-connectors/connectors/claude_code/parsers.js +224 -0
  9. package/dist/polyfill-connectors/connectors/claude_code/schemas.js +120 -0
  10. package/dist/polyfill-connectors/connectors/claude_code/types.js +1 -0
  11. package/dist/polyfill-connectors/connectors/codex/index.js +880 -0
  12. package/dist/polyfill-connectors/connectors/codex/parsers.js +159 -0
  13. package/dist/polyfill-connectors/connectors/codex/schemas.js +118 -0
  14. package/dist/polyfill-connectors/connectors/codex/types.js +1 -0
  15. package/dist/polyfill-connectors/src/auth.js +76 -0
  16. package/dist/polyfill-connectors/src/browser-handoff.js +197 -0
  17. package/dist/polyfill-connectors/src/collector-protocol.d.ts +2 -0
  18. package/dist/polyfill-connectors/src/collector-protocol.js +2 -0
  19. package/dist/polyfill-connectors/src/collector-runner.d.ts +139 -0
  20. package/dist/polyfill-connectors/src/collector-runner.js +1084 -0
  21. package/dist/polyfill-connectors/src/connector-runtime-protocol.d.ts +191 -0
  22. package/dist/polyfill-connectors/src/connector-runtime-protocol.js +1 -0
  23. package/dist/polyfill-connectors/src/connector-runtime.js +879 -0
  24. package/dist/polyfill-connectors/src/fixture-capture.js +237 -0
  25. package/dist/polyfill-connectors/src/is-main-module.d.ts +1 -0
  26. package/dist/polyfill-connectors/src/is-main-module.js +17 -0
  27. package/dist/polyfill-connectors/src/local-device-client.d.ts +126 -0
  28. package/dist/polyfill-connectors/src/local-device-client.js +132 -0
  29. package/dist/polyfill-connectors/src/local-device-envelope.d.ts +26 -0
  30. package/dist/polyfill-connectors/src/local-device-envelope.js +43 -0
  31. package/dist/polyfill-connectors/src/local-device-outbox.d.ts +115 -0
  32. package/dist/polyfill-connectors/src/local-device-outbox.js +509 -0
  33. package/dist/polyfill-connectors/src/local-device-queue.d.ts +34 -0
  34. package/dist/polyfill-connectors/src/local-device-queue.js +133 -0
  35. package/dist/polyfill-connectors/src/local-source-inventory.js +119 -0
  36. package/dist/polyfill-connectors/src/pdpp-safe-text.js +13 -0
  37. package/dist/polyfill-connectors/src/runner/index.d.ts +11 -0
  38. package/dist/polyfill-connectors/src/runner/index.js +10 -0
  39. package/dist/polyfill-connectors/src/runtime-capabilities.d.ts +40 -0
  40. package/dist/polyfill-connectors/src/runtime-capabilities.js +59 -0
  41. package/dist/polyfill-connectors/src/safe-emit.d.ts +3 -0
  42. package/dist/polyfill-connectors/src/safe-emit.js +30 -0
  43. package/dist/polyfill-connectors/src/safe-text-preview.js +156 -0
  44. package/dist/polyfill-connectors/src/schema-registry.js +17 -0
  45. package/dist/polyfill-connectors/src/scope-filters.d.ts +38 -0
  46. package/dist/polyfill-connectors/src/scope-filters.js +80 -0
  47. package/dist/polyfill-connectors/src/shutdown-hook.js +51 -0
  48. package/dist/polyfill-connectors/src/streaming-target-registration.js +161 -0
  49. package/package.json +63 -0
@@ -0,0 +1,139 @@
1
+ import type { EmittedMessage, StartMessage } from "./connector-runtime-protocol.js";
2
+ import { type EnrollmentExchangeResponse, type HeartbeatOutboxDiagnostics, LocalDeviceClient } from "./local-device-client.js";
3
+ import { type LocalDeviceRecordEnvelope } from "./local-device-envelope.js";
4
+ import { LocalDeviceOutbox, type LocalDeviceOutboxItem, type LocalDeviceOutboxSummary } from "./local-device-outbox.js";
5
+ import type { LocalDeviceQueue } from "./local-device-queue.js";
6
+ import { type ConnectorPlacementInput, type RuntimeBindingName } from "./runtime-capabilities.js";
7
+ export declare const COLLECTOR_STDERR_MAX_BYTES: number;
8
+ export interface CollectorOutboxPolicy {
9
+ drainBatchSize: number;
10
+ leaseMs: number;
11
+ maxAttempts: number;
12
+ maxDrainDurationMs: number;
13
+ maxDrainIterations: number;
14
+ maxEnqueuedBatchesPerRun: number;
15
+ maxQueueDepth: number;
16
+ retryBackoffMs: number;
17
+ }
18
+ export declare const DEFAULT_COLLECTOR_OUTBOX_POLICY: Readonly<CollectorOutboxPolicy>;
19
+ export interface CollectorEnrollmentConfig {
20
+ baseUrl: string;
21
+ code: string;
22
+ deviceLabel?: string;
23
+ }
24
+ export declare function enrollCollector(config: CollectorEnrollmentConfig): Promise<EnrollmentExchangeResponse>;
25
+ export interface CollectorConnectorSpec extends ConnectorPlacementInput {
26
+ readonly args: readonly string[];
27
+ readonly command: string;
28
+ readonly connector_id: string;
29
+ readonly env?: NodeJS.ProcessEnv;
30
+ readonly streams: readonly string[];
31
+ readonly streamsToBackfill?: readonly string[];
32
+ }
33
+ export interface CollectorRunConfig {
34
+ abortSignal?: AbortSignal;
35
+ baseUrl: string;
36
+ batchSize?: number;
37
+ collectorHolderId?: string;
38
+ connector: CollectorConnectorSpec;
39
+ deviceId: string;
40
+ deviceToken: string;
41
+ outboxPath?: string;
42
+ outboxPolicy?: Partial<CollectorOutboxPolicy>;
43
+ queuePath: string;
44
+ runId?: string;
45
+ sourceInstanceId: string;
46
+ }
47
+ export interface CollectorRunResult {
48
+ done: Extract<EmittedMessage, {
49
+ type: "DONE";
50
+ }> | null;
51
+ enqueuedBatches: number;
52
+ flushedState: Readonly<Record<string, unknown>> | null;
53
+ outboxSummary: LocalDeviceOutboxSummary;
54
+ priorState: Readonly<Record<string, unknown>>;
55
+ recordsQueued: number;
56
+ recoveredLeases: number;
57
+ satisfiedBindings: readonly RuntimeBindingName[];
58
+ scanBudgetExceeded: boolean;
59
+ sentBatches: number;
60
+ skippedScanForBacklog: boolean;
61
+ statePutFailed: boolean;
62
+ streamingBufferHighWaterMark: number;
63
+ }
64
+ export declare class CollectorStateReadError extends Error {
65
+ constructor(message: string, cause: unknown);
66
+ }
67
+ export declare function runCollectorConnector(config: CollectorRunConfig): Promise<CollectorRunResult>;
68
+ export declare function buildCollectorStartMessage(streams: readonly string[], streamsToBackfill?: readonly string[], priorState?: Readonly<Record<string, unknown>> | null): StartMessage;
69
+ export declare function transformRecordsToCollectorEnvelopes(input: {
70
+ batchId: string;
71
+ batchSeq: number;
72
+ connectorId: string;
73
+ deviceId: string;
74
+ messages: readonly EmittedMessage[];
75
+ sourceInstanceId: string;
76
+ }): LocalDeviceRecordEnvelope[];
77
+ export interface RecordBatchPayload {
78
+ batchId: string;
79
+ batchSeq: number;
80
+ connectorId: string;
81
+ deviceId: string;
82
+ records: LocalDeviceRecordEnvelope[];
83
+ sourceInstanceId: string;
84
+ }
85
+ export interface CheckpointPayload {
86
+ connectorId: string;
87
+ sourceInstanceId: string;
88
+ state: Record<string, unknown>;
89
+ }
90
+ export type GapReason = "policy_budget" | "connector_child_failure";
91
+ export interface GapPayload {
92
+ connectorId: string;
93
+ details?: string;
94
+ firstSeenAt: string;
95
+ firstSeenRunId?: string;
96
+ nextAttemptBackoffMs: number;
97
+ reason: GapReason;
98
+ retryable: boolean;
99
+ sourceInstanceId: string;
100
+ stream?: string;
101
+ streamBoundary?: string;
102
+ }
103
+ export interface DrainCollectorOutboxInput {
104
+ abortSignal?: AbortSignal;
105
+ client: Pick<LocalDeviceClient, "ackLocalCollectorGap" | "ingestBatch" | "putSourceInstanceState">;
106
+ connectorId: string;
107
+ holderId: string;
108
+ outbox: LocalDeviceOutbox;
109
+ policy: CollectorOutboxPolicy;
110
+ sourceInstanceId?: string;
111
+ }
112
+ export interface DrainCollectorOutboxResult {
113
+ deadLettered: number;
114
+ durationBudgetExceeded: boolean;
115
+ failed: number;
116
+ iterations: number;
117
+ sent: number;
118
+ sentByKind: Readonly<Partial<Record<LocalDeviceOutboxItem["kind"], number>>>;
119
+ }
120
+ export declare function drainCollectorOutbox(input: DrainCollectorOutboxInput): Promise<DrainCollectorOutboxResult>;
121
+ export declare function buildHeartbeatOutboxDiagnostics(summary: LocalDeviceOutboxSummary, options?: {
122
+ backlogOpen?: number;
123
+ }): HeartbeatOutboxDiagnostics;
124
+ export declare function drainCollectorQueue(input: {
125
+ abortSignal?: AbortSignal;
126
+ client: Pick<LocalDeviceClient, "ingestBatch">;
127
+ queue: LocalDeviceQueue;
128
+ }): Promise<number>;
129
+ export declare function recoverAndSummarizeOutbox(outbox: Pick<LocalDeviceOutbox, "recoverExpiredLeases" | "summary">, input?: {
130
+ sourceInstanceId?: string;
131
+ }): {
132
+ recovered: number;
133
+ summary: ReturnType<LocalDeviceOutbox["summary"]>;
134
+ };
135
+ export interface CollectorChildContext {
136
+ readonly baseUrl: string;
137
+ readonly deviceToken: string;
138
+ readonly runId?: string;
139
+ }