@proofhound/core 0.1.11 → 0.1.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"local-fs-object-storage.provider.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-fs-object-storage.provider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,aAAa,CAAC;AAEvD,OAAO,EACL,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAInC,qBAAa,4BAA6B,SAAQ,qBAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAS;gBAEnB,IAAI,GAAE,MAAM,GAAG,SAAoD;IAK/E,SAAS,IAAI,OAAO;IAId,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2C3G,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxE,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhF,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,uBAAuB,CAC3B,IAAI,EAAE,eAAe,EACrB,KAAK,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIpC,OAAO,CAAC,WAAW;CAMpB"}
1
+ {"version":3,"file":"local-fs-object-storage.provider.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-fs-object-storage.provider.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAKrC,OAAO,EAAE,KAAK,QAAQ,EAAa,MAAM,aAAa,CAAC;AAEvD,OAAO,EACL,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AAInC,qBAAa,4BAA6B,SAAQ,qBAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAS;gBAEnB,IAAI,GAAE,MAAM,GAAG,SAAoD;IAK/E,SAAS,IAAI,OAAO;IAId,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2C3G,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAOxE,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKhF,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMrD,uBAAuB,CAC3B,IAAI,EAAE,eAAe,EACrB,KAAK,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GACpC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAOpC,OAAO,CAAC,WAAW;CAMpB"}
@@ -86,6 +86,8 @@ class LocalFsObjectStorageProvider extends object_storage_provider_1.ObjectStora
86
86
  async createSignedDownloadUrl(_ref, _opts) {
87
87
  return null;
88
88
  }
89
+ // Client-direct upload (createUploadSession / completeUpload / abortUpload / sweepPendingUploads)
90
+ // keeps the base "unsupported" default — LocalFs cannot mint browser-reachable upload URLs.
89
91
  requireRoot() {
90
92
  if (this.root === undefined) {
91
93
  throw new Error('LocalFsObjectStorageProvider is not configured (set PH_OBJECT_STORAGE_LOCAL_ROOT).');
@@ -1 +1 @@
1
- {"version":3,"file":"local-fs-object-storage.provider.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-fs-object-storage.provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-fs-object-storage.provider.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/local-fs-object-storage.provider.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Readable } from 'node:stream';
2
- import type { ProjectContext } from '../actor-context';
2
+ import type { ActorContext, ProjectContext } from '../actor-context';
3
3
  export type ObjectResourceType = 'dataset_raw' | 'dataset_normalized' | 'run_result_shard' | 'export';
4
4
  /** Internal shard compression. Applied/removed at the application layer; NEVER mapped to HTTP
5
5
  * Content-Encoding (that would let SDKs/browsers auto-decompress, so stored bytes !== read bytes). */
@@ -57,6 +57,29 @@ export interface SignedDownloadUrl {
57
57
  url: string;
58
58
  expiresAt: string;
59
59
  }
60
+ export interface CreateUploadSessionOptions {
61
+ contentType?: string;
62
+ /** Upper bound recorded with the pending session; finalize rejects an upload larger than this. */
63
+ maxBytes?: number;
64
+ /** Expected content hash; finalize verifies the uploaded object against it. */
65
+ expectedSha256?: string;
66
+ expiresInSeconds?: number;
67
+ }
68
+ export interface UploadSession {
69
+ /** Opaque id the caller passes back to completeUpload / abortUpload. */
70
+ sessionId: string;
71
+ /** Pre-authorized URL the client PUTs the bytes to. */
72
+ url: string;
73
+ /** Headers the client must send with the PUT (e.g. Content-Type pinned by the signature). */
74
+ headers?: Record<string, string>;
75
+ expiresAt: string;
76
+ }
77
+ export interface CompleteUploadInput {
78
+ sessionId: string;
79
+ /** Caller context; the provider re-checks the pending object belongs to this tenant/project. */
80
+ actor: ActorContext;
81
+ project: ProjectContext;
82
+ }
60
83
  export declare abstract class ObjectStorageProvider {
61
84
  /**
62
85
  * False when no storage backend is configured. Callers MUST treat false as "object storage
@@ -75,5 +98,13 @@ export declare abstract class ObjectStorageProvider {
75
98
  abstract createSignedDownloadUrl(ref: StoredObjectRef, opts?: {
76
99
  expiresInSeconds?: number;
77
100
  }): Promise<SignedDownloadUrl | null>;
101
+ /** Open a pending upload and return a URL the client PUTs to. Default: unsupported (null). */
102
+ createUploadSession(_loc: ResourceLocator, _opts?: CreateUploadSessionOptions): Promise<UploadSession | null>;
103
+ /** Verify (HeadObject: size/sha256/contentType) + ownership, then finalize. Default: unsupported. */
104
+ completeUpload(_input: CompleteUploadInput): Promise<StoredObjectRef>;
105
+ /** Discard a pending upload (and its object, if any). Default: no-op. */
106
+ abortUpload(_sessionId: string): Promise<void>;
107
+ /** Sweep pending uploads not finalized before `olderThan` (ISO); returns the count. Default: 0. */
108
+ sweepPendingUploads(_olderThan: string): Promise<number>;
78
109
  }
79
110
  //# sourceMappingURL=object-storage.provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-storage.provider.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/object-storage.provider.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,QAAQ,CAAC;AAEtG;sGACsG;AACtG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,+FAA+F;IAC/F,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,8BAAsB,qBAAqB;IACzC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO;IAE7B,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IACpH,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IACjF,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzF,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;CACrC"}
1
+ {"version":3,"file":"object-storage.provider.d.ts","sourceRoot":"","sources":["../../../../src/server/common/contracts/object-storage.provider.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,QAAQ,CAAC;AAEtG;sGACsG;AACtG,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,CAAC;AAE9D;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,+FAA+F;IAC/F,OAAO,EAAE,cAAc,CAAC;IACxB,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,QAAQ,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mGAAmG;IACnG,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kGAAkG;IAClG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,6FAA6F;IAC7F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gGAAgG;IAChG,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,8BAAsB,qBAAqB;IACzC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,IAAI,OAAO;IAE7B,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IACpH,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IACjF,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IACzF,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAE9D;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAC9B,GAAG,EAAE,eAAe,EACpB,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAAE,GACnC,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAUpC,8FAA8F;IACxF,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAGnH,qGAAqG;IAC/F,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC;IAG3E,yEAAyE;IACnE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAGpD,mGAAmG;IAC7F,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/D"}
@@ -7,11 +7,36 @@
7
7
  // (callers must treat a disabled provider as "object storage unavailable" and stream / inline instead).
8
8
  // Hosted deployments override this token with an S3 / R2 implementation.
9
9
  //
10
- // M1 scope: server-side direct writes + signed download only. Client-direct-upload
11
- // (createUploadSession / completeUpload / abortUpload / sweepPendingUploads) lands in a later milestone.
10
+ // Capabilities: server-side direct writes + signed download (putObject / getObject / …), and
11
+ // client-direct-upload via a pending→finalize protocol (createUploadSession / completeUpload /
12
+ // abortUpload / sweepPendingUploads). A provider that cannot mint browser-reachable URLs (LocalFs)
13
+ // returns null from the URL-minting methods so callers fall back to server-proxied transfer.
12
14
  Object.defineProperty(exports, "__esModule", { value: true });
13
15
  exports.ObjectStorageProvider = void 0;
14
16
  class ObjectStorageProvider {
17
+ // —— Client-direct-upload: pending → finalize protocol. ——
18
+ //
19
+ // The presigned URL is a bearer token (reusable until expiry), so completeUpload re-verifies the
20
+ // pending object's size/hash/ownership before finalizing. These ship as concrete methods with an
21
+ // "unsupported" default (not abstract) so adding them is non-breaking: an existing subclass that
22
+ // hasn't implemented them keeps compiling and inherits the default. A provider that can mint
23
+ // browser-reachable upload URLs (e.g. R2) overrides them; LocalFs keeps the default.
24
+ /** Open a pending upload and return a URL the client PUTs to. Default: unsupported (null). */
25
+ async createUploadSession(_loc, _opts) {
26
+ return null;
27
+ }
28
+ /** Verify (HeadObject: size/sha256/contentType) + ownership, then finalize. Default: unsupported. */
29
+ async completeUpload(_input) {
30
+ throw new Error('object storage provider does not support client-direct upload sessions');
31
+ }
32
+ /** Discard a pending upload (and its object, if any). Default: no-op. */
33
+ async abortUpload(_sessionId) {
34
+ // no pending sessions by default
35
+ }
36
+ /** Sweep pending uploads not finalized before `olderThan` (ISO); returns the count. Default: 0. */
37
+ async sweepPendingUploads(_olderThan) {
38
+ return 0;
39
+ }
15
40
  }
16
41
  exports.ObjectStorageProvider = ObjectStorageProvider;
17
42
  //# sourceMappingURL=object-storage.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-storage.provider.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/object-storage.provider.ts"],"names":[],"mappings":";AAAA,+FAA+F;AAC/F,oEAAoE;AACpE,EAAE;AACF,kGAAkG;AAClG,sGAAsG;AACtG,wGAAwG;AACxG,yEAAyE;AACzE,EAAE;AACF,mFAAmF;AACnF,yGAAyG;;;AAuEzG,MAAsB,qBAAqB;CAqB1C;AArBD,sDAqBC"}
1
+ {"version":3,"file":"object-storage.provider.js","sourceRoot":"","sources":["../../../../src/server/common/contracts/object-storage.provider.ts"],"names":[],"mappings":";AAAA,+FAA+F;AAC/F,oEAAoE;AACpE,EAAE;AACF,kGAAkG;AAClG,sGAAsG;AACtG,wGAAwG;AACxG,yEAAyE;AACzE,EAAE;AACF,6FAA6F;AAC7F,+FAA+F;AAC/F,mGAAmG;AACnG,6FAA6F;;;AAiG7F,MAAsB,qBAAqB;IAsBzC,2DAA2D;IAC3D,EAAE;IACF,iGAAiG;IACjG,iGAAiG;IACjG,iGAAiG;IACjG,6FAA6F;IAC7F,qFAAqF;IAErF,8FAA8F;IAC9F,KAAK,CAAC,mBAAmB,CAAC,IAAqB,EAAE,KAAkC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,qGAAqG;IACrG,KAAK,CAAC,cAAc,CAAC,MAA2B;QAC9C,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IACD,yEAAyE;IACzE,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,iCAAiC;IACnC,CAAC;IACD,mGAAmG;IACnG,KAAK,CAAC,mBAAmB,CAAC,UAAkB;QAC1C,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AA9CD,sDA8CC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proofhound/core",
3
- "version": "0.1.11",
3
+ "version": "0.1.12",
4
4
  "description": "ProofHound reusable backend runtime: server / webhook / worker NestJS modules, contracts, local defaults, Services, Repositories",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -36,17 +36,17 @@
36
36
  "rxjs": "^7.8.2",
37
37
  "sharp": "^0.34.5",
38
38
  "zod": "^4.4.3",
39
- "@proofhound/connector-client": "0.1.11",
40
- "@proofhound/db": "0.1.11",
41
- "@proofhound/judgment": "0.1.11",
42
- "@proofhound/crypto": "0.1.11",
43
- "@proofhound/llm-client": "0.1.11",
44
- "@proofhound/logger": "0.1.11",
45
- "@proofhound/metrics": "0.1.11",
46
- "@proofhound/limiter": "0.1.11",
47
- "@proofhound/orchestration-shared": "0.1.11",
48
- "@proofhound/shared": "0.1.11",
49
- "@proofhound/optimization-strategy": "0.1.11"
39
+ "@proofhound/connector-client": "0.1.12",
40
+ "@proofhound/crypto": "0.1.12",
41
+ "@proofhound/db": "0.1.12",
42
+ "@proofhound/limiter": "0.1.12",
43
+ "@proofhound/judgment": "0.1.12",
44
+ "@proofhound/logger": "0.1.12",
45
+ "@proofhound/metrics": "0.1.12",
46
+ "@proofhound/orchestration-shared": "0.1.12",
47
+ "@proofhound/shared": "0.1.12",
48
+ "@proofhound/optimization-strategy": "0.1.12",
49
+ "@proofhound/llm-client": "0.1.12"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@nestjs/testing": "^11.1.21",