@warmhub/sdk-ts 0.64.0 → 0.66.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.
package/dist/index.d.ts CHANGED
@@ -265,6 +265,7 @@ type AccessResolveResult$1 = {
265
265
  visible: boolean;
266
266
  scopes: Array<'repo:read' | 'repo:write' | 'repo:configure' | 'repo:admin' | 'repo:action-callback'>;
267
267
  allowedMatches?: Array<string>;
268
+ repoDurableId?: string;
268
269
  }>;
269
270
  orgs: Array<{
270
271
  orgName: string;
@@ -315,38 +316,18 @@ type ComponentDetail = {
315
316
  ref?: string;
316
317
  componentName: string;
317
318
  version?: string;
318
- state?: string;
319
+ state?: 'initiated' | 'active' | 'uninstalled';
319
320
  source?: string;
321
+ sourceUrl?: string;
320
322
  sourceRef?: string;
321
323
  resolvedSha?: string;
322
324
  manifestHash?: string;
323
325
  installedAt?: string;
324
- checkedAt?: string;
325
326
  active: boolean;
326
- wref: string;
327
327
  latestVersion?: string;
328
328
  updateAvailable?: boolean;
329
- install: {
330
- wref: string;
331
- pinnedWref?: string;
332
- name: string;
333
- kind: 'shape' | 'thing' | 'assertion' | 'collection';
334
- shape?: string;
335
- shapeName?: string;
336
- validatedShape?: string;
337
- version: number;
338
- data?: unknown;
339
- active: boolean;
340
- synthesized?: boolean;
341
- aboutWref?: string;
342
- committerWref?: string;
343
- revisedBy?: string;
344
- metadata?: {
345
- durableId: string;
346
- createdOn: number;
347
- revisedOn: number;
348
- };
349
- };
329
+ installedManifest: unknown;
330
+ installComponentId?: string;
350
331
  ownedShapes: Array<{
351
332
  name: string;
352
333
  kind: 'shape';
@@ -377,6 +358,14 @@ type ComponentDetail = {
377
358
  };
378
359
  }>;
379
360
  };
361
+ type ComponentHistoryResult = {
362
+ items: Array<{
363
+ ref: string;
364
+ kind: string;
365
+ version: string | null;
366
+ createdAt: number;
367
+ }>;
368
+ };
380
369
  type ComponentInstallResult$1 = {
381
370
  componentRef: string;
382
371
  componentName: string;
@@ -391,15 +380,14 @@ type ComponentListResult = {
391
380
  ref?: string;
392
381
  componentName: string;
393
382
  version?: string;
394
- state?: string;
383
+ state?: 'initiated' | 'active' | 'uninstalled';
395
384
  source?: string;
385
+ sourceUrl?: string;
396
386
  sourceRef?: string;
397
387
  resolvedSha?: string;
398
388
  manifestHash?: string;
399
389
  installedAt?: string;
400
- checkedAt?: string;
401
390
  active: boolean;
402
- wref: string;
403
391
  latestVersion?: string;
404
392
  updateAvailable?: boolean;
405
393
  }>;
@@ -409,15 +397,14 @@ type ComponentSummary = {
409
397
  ref?: string;
410
398
  componentName: string;
411
399
  version?: string;
412
- state?: string;
400
+ state?: 'initiated' | 'active' | 'uninstalled';
413
401
  source?: string;
402
+ sourceUrl?: string;
414
403
  sourceRef?: string;
415
404
  resolvedSha?: string;
416
405
  manifestHash?: string;
417
406
  installedAt?: string;
418
- checkedAt?: string;
419
407
  active: boolean;
420
- wref: string;
421
408
  latestVersion?: string;
422
409
  updateAvailable?: boolean;
423
410
  };
@@ -426,6 +413,7 @@ type ComponentUninstallResult$1 = {
426
413
  componentName: string;
427
414
  state: 'uninstalled';
428
415
  pausedSubscriptions: Array<string>;
416
+ releasedShapes: Array<string>;
429
417
  tokensRevoked: number;
430
418
  uninstallDispatched: boolean;
431
419
  warnings: Array<string>;
@@ -789,6 +777,48 @@ type RepoDescribeResult$1 = {
789
777
  synthesized: boolean;
790
778
  }>;
791
779
  };
780
+ type RepoExploreInput = {
781
+ search?: string;
782
+ org?: string;
783
+ activity?: 'week' | 'month';
784
+ hasSubscriptions?: true;
785
+ minThings?: number;
786
+ sort?: 'recentlyUpdated' | 'mostSubscribed' | 'mostThings' | 'nameAsc' | 'newest';
787
+ limit?: number;
788
+ cursor?: string;
789
+ slugs?: Array<string>;
790
+ };
791
+ type RepoExploreItem$1 = {
792
+ orgName: string;
793
+ orgDisplayName?: string;
794
+ name: string;
795
+ displayName: string;
796
+ description?: string;
797
+ createdAt: number;
798
+ lastWriteAt?: number;
799
+ subscriptionCount: number;
800
+ thingCount: number;
801
+ };
802
+ type RepoExploreResult$1 = {
803
+ items: Array<{
804
+ orgName: string;
805
+ orgDisplayName?: string;
806
+ name: string;
807
+ displayName: string;
808
+ description?: string;
809
+ createdAt: number;
810
+ lastWriteAt?: number;
811
+ subscriptionCount: number;
812
+ thingCount: number;
813
+ }>;
814
+ nextCursor?: string;
815
+ total?: number;
816
+ orgs?: Array<{
817
+ name: string;
818
+ displayName?: string;
819
+ count: number;
820
+ }>;
821
+ };
792
822
  type RepoForCaller = {
793
823
  orgName: string;
794
824
  name: string;
@@ -2172,6 +2202,13 @@ type ComponentView = ComponentDetail;
2172
2202
  /** @internal */
2173
2203
  type ComponentList = ComponentListResult;
2174
2204
  /** @internal */
2205
+ type ComponentHistory = ComponentHistoryResult;
2206
+ /** @internal */
2207
+ type ComponentHistoryOptions = {
2208
+ componentRef?: string;
2209
+ limit?: number;
2210
+ };
2211
+ /** @internal */
2175
2212
  type ComponentInstallResult = ComponentInstallResult$1;
2176
2213
  /** @internal */
2177
2214
  type ComponentUninstallResult = ComponentUninstallResult$1;
@@ -2406,6 +2443,43 @@ type RepoListForCallerOptions = {
2406
2443
  limit?: number;
2407
2444
  sort?: 'recent' | 'name';
2408
2445
  };
2446
+ /**
2447
+ * Options for the public "Explore" directory (`client.repo.explore`).
2448
+ *
2449
+ * Structural alias of the generated `RepoExploreInput` (sourced from the
2450
+ * backend `repoExploreInputSchema` via the backend-types pipeline), so it
2451
+ * can't drift from the procedure's input contract.
2452
+ *
2453
+ * Two mutually-exclusive modes: the browse mode
2454
+ * (`search`/`org`/`activity`/`hasSubscriptions`/`minThings`/`sort`/`limit`/`cursor`)
2455
+ * and the exact-match `slugs` batch lookup. `slugs` cannot be combined with any
2456
+ * browse/search/sort/filter field — the backend rejects the mix.
2457
+ *
2458
+ * @internal
2459
+ */
2460
+ type RepoExploreOptions = RepoExploreInput;
2461
+ /**
2462
+ * A repository row in the public "Explore" directory
2463
+ * (`client.repo.explore`).
2464
+ *
2465
+ * Structural alias of the generated `RepoExploreItem` (sourced from the backend
2466
+ * `repoExploreItemSchema` via the backend-types pipeline), so it can't drift.
2467
+ *
2468
+ * @internal
2469
+ */
2470
+ type RepoExploreItem = RepoExploreItem$1;
2471
+ /**
2472
+ * Result of the public "Explore" directory (`client.repo.explore`).
2473
+ *
2474
+ * `total` and `orgs` are first-page only (present when `cursor` is absent).
2475
+ *
2476
+ * Structural alias of the generated `RepoExploreResult` (sourced from the
2477
+ * backend `repoExploreResultSchema` via the backend-types pipeline), so it
2478
+ * can't drift.
2479
+ *
2480
+ * @internal
2481
+ */
2482
+ type RepoExploreResult = RepoExploreResult$1;
2409
2483
  /** @internal */
2410
2484
  type CurrentUserInfo = {
2411
2485
  id: string;
@@ -2923,6 +2997,8 @@ type SearchOptions = Omit<FilterOptions, 'where'> & {
2923
2997
  about?: string;
2924
2998
  /** Search mode: `text` (BM25), `vector` (semantic), or `hybrid` (combined). Defaults to `text`. */
2925
2999
  mode?: 'text' | 'vector' | 'hybrid';
3000
+ /** Opt into deterministic literal name matching before ranked search. Intended for UI list filtering; defaults to ranked search. */
3001
+ nameMatch?: 'ranked' | 'deterministic';
2926
3002
  /** Expand collection members in the result; pages may be sparse when set. */
2927
3003
  resolveCollections?: boolean;
2928
3004
  /** Exclude internal infrastructure shapes from results. */
@@ -3267,6 +3343,12 @@ declare class WarmHubClient {
3267
3343
  * Fetch one installed component by its `Org/Name` ref.
3268
3344
  */
3269
3345
  get: (orgName: string, repoName: string, componentRef: string) => Promise<ComponentView>;
3346
+ /**
3347
+ * Install lifecycle timeline from the durable install-events log (GH-4690).
3348
+ * Omit `componentRef` for the repo-wide activity feed; pass `Org/Name` for a
3349
+ * single component's history.
3350
+ */
3351
+ history: (orgName: string, repoName: string, opts?: ComponentHistoryOptions) => Promise<ComponentHistory>;
3270
3352
  /**
3271
3353
  * Install a registered component into a repository (GH-4610).
3272
3354
  *
@@ -3614,6 +3696,30 @@ declare class WarmHubClient {
3614
3696
  * the org-scoped `listPage` from token-authenticated contexts.
3615
3697
  */
3616
3698
  listForCaller: (opts?: RepoListForCallerOptions) => Promise<RepoRecentInfo[]>;
3699
+ /**
3700
+ * Browse the public "Explore" directory: every `visibility='public'` live
3701
+ * repository across all orgs, with search, org/activity/subscription/thing
3702
+ * filters, and sort. No auth required — anonymous callers see the same
3703
+ * public-only listing.
3704
+ *
3705
+ * Two mutually-exclusive modes. Browse mode paginates a filtered, sorted
3706
+ * listing (`search`/`org`/`activity`/`hasSubscriptions`/`minThings`/`sort`/
3707
+ * `limit`/`cursor`). Slugs mode is an exact-match batch lookup: pass up to
3708
+ * 12 `org/repo` slugs to resolve just those live public repos in input
3709
+ * order, ignoring every browse field. Combining `slugs` with any browse/
3710
+ * search/sort/filter field is a hard input error, not a silently-filtered
3711
+ * list.
3712
+ *
3713
+ * `total` and `orgs` (the org-filter facet) are returned on the first page
3714
+ * only — i.e. when `cursor` is absent.
3715
+ *
3716
+ * Cursor contract: cursors are short-lived resume tokens for the same query
3717
+ * and result scope. If filters, visibility, or backing streams change, the
3718
+ * backend may reject a saved cursor with `VALIDATION_ERROR` / `Invalid
3719
+ * cursor`; restart the query without `cursor` instead of retrying the stale
3720
+ * token.
3721
+ */
3722
+ explore: (opts?: RepoExploreOptions) => Promise<RepoExploreResult>;
3617
3723
  /**
3618
3724
  * Fetch a repository's `Content/Readme` markdown record.
3619
3725
  *
@@ -4464,4 +4570,4 @@ declare class WarmHubClient {
4464
4570
  private watchRepoQuery;
4465
4571
  }
4466
4572
 
4467
- export { type AboutOptions, type AboutResult, type AccessResolveInput, type AccessResolveResult, type AccessTokenProvider, type ActionAttemptInfo, type ActionDeliveryTarget, type ActionLeaseAcquire, type ActionLeaseOp, type ActionListNotificationsOptions, type ActionListRunsOptions, type ActionLiveFeed, type ActionLiveFeedOptions, type ActionNotificationInfo, type ActionRunInfo, type ActionRunStatsInfo, type ActionRunStatsOptions, type AddOp, type AddOperation, AllStreamOperationsFailedError, type Assertion, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, type CliCallSecrets, CliCallVerificationError, type CliCallVerificationFailureReason, type CollectionAbout, type CollectionAddOp, type CollectionAddType, type CollectionTag, type ComponentInfo, type ComponentInstallResult, type ComponentList, type ComponentListOptions, type ComponentUninstallResult, type ComponentView, type CoreErrorKind, type CountOptions, type CountResult, type CredentialAuditEntry, type CredentialDeleteResult, type CredentialGrantResult, type CredentialInfo, type CredentialKeyMutationResult, type CredentialRevokeResult, type CredentialUngrantResult, type CurrentUserInfo, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, type ErrorKind, type FilterOptions, type FilterResult, type FunctionLogMode, type GlobalSearchOptions, type GlobalSearchResult, type GlobalSearchResultItem, type HeadResult, type HistoryResult, type HomepageFeaturedListsResult, type IndexedFieldEntry, type IndexedFieldsReport, type LiveHandle, type LiveRepoEvent, type LiveSubscriptionLogOptions, type LiveThingHeadOptions, type LiveThingHistoryOptions, type LiveWatchResult, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, type Operation, OperationBuilder, type OperationBuilderAddInput, type OperationBuilderClient, type OperationBuilderOp, type OperationBuilderOptions, type OperationSubmitResult, type OrgAccessResult, type OrgInfo, type OrgList, type OrgListMembersOptions, type OrgListOptions, type OrgMemberInfo, type OrgMemberList, type OrgRef, type OrgRole, type Page, type PageRequest, PartialStreamSubmissionError, type PingResult, type RefLink, type RefsOptions, type RefsResult, type RenameOperation, type RenameResult, type RepoAccessResult, type RepoConfigureStatsView, type RepoDescribeResult, type RepoInfo, type RepoList, type RepoListForCallerOptions, type RepoListOptions, type RepoListPageOptions, type RepoListPageResult, type RepoLocator, type RepoRecentInfo, type RepoRef, type RepoShapeInstanceCountsView, type RepoSort, type RepoStatsBatchResult, type RepoStatsView, type RepoWithStatsInfo, type RequestEvent, type ResolveWrefResult, type RetractOp, type RetractOperation, type RetryPolicyOptions, type ReviseOp, type ReviseOperation, SDK_VERSION, type SearchOptions, type SearchResult, type Shape, type ShapeChange, type ShapeCreateOptions, type ShapeFields, type ShapeGetOptions, type ShapeHistory, type ShapeHistoryOptions, type ShapeList, type ShapeListOptions, type ShapeRef, type ShapeRemove, type ShapeReviseOptions, type ShapeValidatorResult, type StreamAppendInput, type StreamAppendResult, type StreamContinuationState, type SubscriptionBindCredentialsResult, type SubscriptionCompatCreateInput, type SubscriptionCompatUpdateInput, type SubscriptionInfo, type SubscriptionList, type SubscriptionUnbindCredentialsResult, type SynthesizedRepoContent, type ThingDetail, type ThingGet, type ThingGetManyResult, type ThingGetOptions, type ThingGetWithLease, type ThingGraphOptions, type ThingGraphResult, type ThingGraphValue, type ThingHead, type ThingHeadOptions, type ThingHeadRequest, type ThingHeadVersionsResult, type ThingHistory, type ThingHistoryOptions, type ThingItem, type ThingMetadata, type TokenInfo, type TokenResult, type UndeclaredFieldsWarning, type ValidationDiagnostic, type ValidationResult, type VerifiedCliCall, WarmHubClient, type WarmHubClientOptions, WarmHubError, type WarmHubErrorDetails, type WherePredicate, type WhoamiInfo, type WhoamiScopeEntry, type WireScopeEntry, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, isConnectionError, isRetryable, isWarmHubError, normalizeWref, resolveFunctionLogMode, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall };
4573
+ export { type AboutOptions, type AboutResult, type AccessResolveInput, type AccessResolveResult, type AccessTokenProvider, type ActionAttemptInfo, type ActionDeliveryTarget, type ActionLeaseAcquire, type ActionLeaseOp, type ActionListNotificationsOptions, type ActionListRunsOptions, type ActionLiveFeed, type ActionLiveFeedOptions, type ActionNotificationInfo, type ActionRunInfo, type ActionRunStatsInfo, type ActionRunStatsOptions, type AddOp, type AddOperation, AllStreamOperationsFailedError, type Assertion, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, type CliCallSecrets, CliCallVerificationError, type CliCallVerificationFailureReason, type CollectionAbout, type CollectionAddOp, type CollectionAddType, type CollectionTag, type ComponentHistory, type ComponentHistoryOptions, type ComponentInfo, type ComponentInstallResult, type ComponentList, type ComponentListOptions, type ComponentUninstallResult, type ComponentView, type CoreErrorKind, type CountOptions, type CountResult, type CredentialAuditEntry, type CredentialDeleteResult, type CredentialGrantResult, type CredentialInfo, type CredentialKeyMutationResult, type CredentialRevokeResult, type CredentialUngrantResult, type CurrentUserInfo, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, type ErrorKind, type FilterOptions, type FilterResult, type FunctionLogMode, type GlobalSearchOptions, type GlobalSearchResult, type GlobalSearchResultItem, type HeadResult, type HistoryResult, type HomepageFeaturedListsResult, type IndexedFieldEntry, type IndexedFieldsReport, type LiveHandle, type LiveRepoEvent, type LiveSubscriptionLogOptions, type LiveThingHeadOptions, type LiveThingHistoryOptions, type LiveWatchResult, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, type Operation, OperationBuilder, type OperationBuilderAddInput, type OperationBuilderClient, type OperationBuilderOp, type OperationBuilderOptions, type OperationSubmitResult, type OrgAccessResult, type OrgInfo, type OrgList, type OrgListMembersOptions, type OrgListOptions, type OrgMemberInfo, type OrgMemberList, type OrgRef, type OrgRole, type Page, type PageRequest, PartialStreamSubmissionError, type PingResult, type RefLink, type RefsOptions, type RefsResult, type RenameOperation, type RenameResult, type RepoAccessResult, type RepoConfigureStatsView, type RepoDescribeResult, type RepoExploreItem, type RepoExploreOptions, type RepoExploreResult, type RepoInfo, type RepoList, type RepoListForCallerOptions, type RepoListOptions, type RepoListPageOptions, type RepoListPageResult, type RepoLocator, type RepoRecentInfo, type RepoRef, type RepoShapeInstanceCountsView, type RepoSort, type RepoStatsBatchResult, type RepoStatsView, type RepoWithStatsInfo, type RequestEvent, type ResolveWrefResult, type RetractOp, type RetractOperation, type RetryPolicyOptions, type ReviseOp, type ReviseOperation, SDK_VERSION, type SearchOptions, type SearchResult, type Shape, type ShapeChange, type ShapeCreateOptions, type ShapeFields, type ShapeGetOptions, type ShapeHistory, type ShapeHistoryOptions, type ShapeList, type ShapeListOptions, type ShapeRef, type ShapeRemove, type ShapeReviseOptions, type ShapeValidatorResult, type StreamAppendInput, type StreamAppendResult, type StreamContinuationState, type SubscriptionBindCredentialsResult, type SubscriptionCompatCreateInput, type SubscriptionCompatUpdateInput, type SubscriptionInfo, type SubscriptionList, type SubscriptionUnbindCredentialsResult, type SynthesizedRepoContent, type ThingDetail, type ThingGet, type ThingGetManyResult, type ThingGetOptions, type ThingGetWithLease, type ThingGraphOptions, type ThingGraphResult, type ThingGraphValue, type ThingHead, type ThingHeadOptions, type ThingHeadRequest, type ThingHeadVersionsResult, type ThingHistory, type ThingHistoryOptions, type ThingItem, type ThingMetadata, type TokenInfo, type TokenResult, type UndeclaredFieldsWarning, type ValidationDiagnostic, type ValidationResult, type VerifiedCliCall, WarmHubClient, type WarmHubClientOptions, WarmHubError, type WarmHubErrorDetails, type WherePredicate, type WhoamiInfo, type WhoamiScopeEntry, type WireScopeEntry, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, isConnectionError, isRetryable, isWarmHubError, normalizeWref, resolveFunctionLogMode, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall };
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { AllStreamOperationsFailedError, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, CliCallVerificationError, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, OperationBuilder, PartialStreamSubmissionError, SDK_VERSION, WarmHubClient, WarmHubError, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, isConnectionError, isRetryable, isWarmHubError, normalizeWref, resolveFunctionLogMode, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall } from './chunk-CJWKJDVX.js';
1
+ export { AllStreamOperationsFailedError, CLI_INSTALL_REPO_HEADER, CLI_SIGNATURE_HEADER, CLI_TIMESTAMP_HEADER, CONTENT_FIELD_LIMIT_ERROR, CliCallVerificationError, DEFAULT_API_URL, DEFAULT_STREAM_CHUNK_SIZE, MAX_CONTENT_FIELD_BYTES, MAX_STREAM_APPEND_OPERATION_COUNT, OperationBuilder, PartialStreamSubmissionError, SDK_VERSION, WarmHubClient, WarmHubError, connectionErrorMessage, contentFieldLimitError, countStreamAppendResultStatuses, isConnectionError, isRetryable, isWarmHubError, normalizeWref, resolveFunctionLogMode, sanitizeErrorMessage, sdkVersionIsBelowMinimum, streamAppendResultStatus, submitOperationsViaStream, toWarmHubError, validateAgainstShape, verifyCliCall } from './chunk-U5Z6ZS6A.js';
2
2
  //# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map
package/dist/react.js CHANGED
@@ -1,5 +1,5 @@
1
- import { WarmHubClient } from './chunk-CJWKJDVX.js';
2
- export { DEFAULT_API_URL, SDK_VERSION, WarmHubClient, WarmHubError, toWarmHubError } from './chunk-CJWKJDVX.js';
1
+ import { WarmHubClient } from './chunk-U5Z6ZS6A.js';
2
+ export { DEFAULT_API_URL, SDK_VERSION, WarmHubClient, WarmHubError, toWarmHubError } from './chunk-U5Z6ZS6A.js';
3
3
  import { createContext, useMemo, useState, useEffect, useContext } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warmhub/sdk-ts",
3
- "version": "0.64.0",
3
+ "version": "0.66.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "The TypeScript SDK for WarmHub — create repos, commit and query data, and compound knowledge with your AI agents.",