busa-sdk 0.95.1 → 0.96.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/airapp.d.ts +1 -1
- package/dist/{client-BlHnsVv8.d.ts → client-CfuVCvxi.d.ts} +946 -4
- package/dist/index.d.ts +2 -2
- package/dist/index.js +93 -19
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as
|
|
1
|
+
import { $ as AssetDetailVO, $t as CreatableNodeType, A as NodeVO, At as BaseVO, B as UserRefVO, Bt as ViewFilterVO, C as CommentVO, Ct as FormVO, D as MentionInboxItemVO, Dt as UpdateFormDTO, E as LookupRollup, Et as SubmitFormDTO, F as ReviewVerdict, Ft as RecordVO, G as VaultItemInput, Gt as PlaybookAttributionVO, H as UpdateVaultSettingsDTO, Ht as ViewType, I as SearchResponseVO, It as VIEW_FIELD_MAX_WIDTH, J as VaultRuntimeEnv, Jt as NodeIcon, K as VaultItemKind, Kt as CloudContract, L as SearchResultKind, Lt as VIEW_FIELD_MIN_WIDTH, M as OperationVO, Mt as GalleryCoverFit, N as RestoredSlugChangeVO, Nt as GanttScale, O as MentionInboxPageVO, Ot as AssetAttachmentRef, P as ReviewVO, Pt as RecordLinkVO, Q as FileNodeVO, Qt as CREATABLE_NODE_TYPES, R as SearchResultVO, Rt as ViewConfigVO, S as CommentSubjectType, St as FormThemeVO, T as FieldType, Tt as ListFormsVO, U as VaultAccessPolicy, Ut as ViewVO, V as UpdatePreviewFileCredentialDTO, Vt as ViewSortVO, W as VaultEnvironment, Wt as AttachmentRef, X as VaultSettingsVO, Xt as NodeIconSource, Y as VaultScopeType, Yt as NodeIconSchema, Z as FileNodeMetadata, Zt as resolveNodeIconSource, _ as ChangeRequestVO, _t as FormBoundFieldVO, a as createBusabaseClient, at as FilePreviewConfigVO, b as CommentMentionTargetType, bt as FormShareVO, c as AuditAction, ct as FilePreviewProvider, d as ChangeRequestBatchFailureVO, dt as FileTreeFileVO, en as NodeType, et as AssetTextStatus, f as ChangeRequestCountsVO, ft as FileTreeNodeVO, g as ChangeRequestTargetType, gt as CreateFormDTO, h as ChangeRequestStatus, ht as ActivityItemVO, i as ResolvedConfig, it as GrepResultVO, j as OperationStatus, jt as GalleryCardSize, k as NodeSearchResultVO, kt as BaseFieldVO, l as AuditEventVO, lt as FilePreviewUnavailableReason, m as ChangeRequestReviewBatchResultVO, mt as NodeDetailVO, n as BusabaseConfig, nt as AssetVO, o as resolveConfig, ot as FilePreviewConfigurationStatus, p as ChangeRequestMergeBatchResultVO, pt as FileTreeReadFileVO, q as VaultItemVO, qt as cloudContract, r as DEFAULT_BASE_URL, rt as GrepInputDTO, s as AgentTaskVO, st as FilePreviewCredentialSource, t as BusabaseClient, tn as OperationKind, tt as AssetUsageVO, u as BusabaseSourceChannel, ut as FilePreviewVO, v as CommentMentionDispatchStatus, vt as FormFieldBindingVO, w as CommitVO, wt as ListFormsDTO, x as CommentMentionVO, xt as FormSubmitResultVO, y as CommentMentionInputDTO, yt as FormPageSourceVO, z as SourceAttributionVO, zt as ViewFilterOperator } from "./client-CfuVCvxi.js";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
//#region src/url.d.ts
|
|
4
4
|
/**
|
|
@@ -567,4 +567,4 @@ declare class Busabase {
|
|
|
567
567
|
}>>>>;
|
|
568
568
|
}
|
|
569
569
|
//#endregion
|
|
570
|
-
export { type ActivityItemVO, type AgentTaskVO, type FileTreeFileVO as AirAppFileVO, type FileTreeFileVO as DriveFileVO, type FileTreeFileVO, type FileTreeFileVO as SkillFileVO, type FileTreeReadFileVO as AirAppReadFileVO, type FileTreeReadFileVO as DriveReadFileVO, type FileTreeReadFileVO, type FileTreeReadFileVO as SkillReadFileVO, type FileTreeNodeVO as AirAppVO, type FileTreeNodeVO as DriveVO, type FileTreeNodeVO, type FileTreeNodeVO as SkillVO, type AssetAttachmentRef, type AssetDetailVO, type AssetTextStatus, type AssetUsageVO, type AssetVO, type AttachmentRef, type AuditAction, type AuditEventVO, type BaseFieldVO, type BaseVO, Busabase, type BusabaseAssetsClient, BusabaseChangeRequestsClient, type BusabaseClient, type BusabaseConfig, type BusabaseRecordsClient, type BusabaseSourceChannel, type BusabaseUploadedAsset, CREATABLE_NODE_TYPES, type ChangeRequestBatchFailureVO, type ChangeRequestCountsVO, type ChangeRequestMergeBatchResultVO, type ChangeRequestReviewBatchResultVO, type ChangeRequestStatus, type ChangeRequestTargetType, type ChangeRequestVO, type CloudContract, type CommentMentionDispatchStatus, type CommentMentionInputDTO, type CommentMentionTargetType, type CommentMentionVO, type CommentSubjectType, type CommentVO, type CommitVO, type CreatableNodeType, type CreateFormDTO, DEFAULT_BASE_URL, type FieldType, type FileNodeMetadata, type FileNodeVO, type FilePreviewConfigVO, type FilePreviewConfigurationStatus, type FilePreviewCredentialSource, type FilePreviewProvider, type FilePreviewUnavailableReason, type FilePreviewVO, type FormBoundFieldVO, type FormFieldBindingVO, type FormPageSourceVO, type FormShareVO, type FormSubmitResultVO, type FormThemeVO, type FormVO, type GalleryCardSize, type GalleryCoverFit, type GanttScale, type ListFormsDTO, type ListFormsVO, type LookupRollup, type MentionInboxItemVO, type MentionInboxPageVO, type NodeDetailVO, type NodeIcon, type NodeIconSchema, type NodeIconSource, type NodeSearchResultVO, type NodeType, type NodeVO, type NodeWebUrlInput, type OperationKind, type OperationStatus, type OperationVO, type PlaybookAttributionVO, type RecordByFieldInput, type RecordLinkVO, type RecordVO, type ResolvedConfig, type ReviewVO, type ReviewVerdict, type SearchResponseVO, type SearchResultKind, type SearchResultVO, type SourceAttributionVO, type SubmitFormDTO, type UpdateFormDTO, type UpdatePreviewFileCredentialDTO, type UpdateVaultSettingsDTO, type UploadAssetOptions, type UserRefVO, type VIEW_FIELD_MAX_WIDTH, type VIEW_FIELD_MIN_WIDTH, type VaultAccessPolicy, type VaultEnvironment, type VaultItemInput, type VaultItemKind, type VaultItemVO, type VaultRuntimeEnv, type VaultScopeType, type VaultSettingsVO, type ViewConfigVO, type ViewFilterOperator, type ViewFilterVO, type ViewSortVO, type ViewType, type ViewVO, cloudContract, createBusabaseClient, getRecordByField, grepAssets, hashBytes, nodeWebUrl, normalizeBaseUrl, resolveConfig, type resolveNodeIconSource, toFilesOnlyGrepResult, toUnifiedFilesGrepInput, uploadAsset };
|
|
570
|
+
export { type ActivityItemVO, type AgentTaskVO, type FileTreeFileVO as AirAppFileVO, type FileTreeFileVO as DriveFileVO, type FileTreeFileVO, type FileTreeFileVO as SkillFileVO, type FileTreeReadFileVO as AirAppReadFileVO, type FileTreeReadFileVO as DriveReadFileVO, type FileTreeReadFileVO, type FileTreeReadFileVO as SkillReadFileVO, type FileTreeNodeVO as AirAppVO, type FileTreeNodeVO as DriveVO, type FileTreeNodeVO, type FileTreeNodeVO as SkillVO, type AssetAttachmentRef, type AssetDetailVO, type AssetTextStatus, type AssetUsageVO, type AssetVO, type AttachmentRef, type AuditAction, type AuditEventVO, type BaseFieldVO, type BaseVO, Busabase, type BusabaseAssetsClient, BusabaseChangeRequestsClient, type BusabaseClient, type BusabaseConfig, type BusabaseRecordsClient, type BusabaseSourceChannel, type BusabaseUploadedAsset, CREATABLE_NODE_TYPES, type ChangeRequestBatchFailureVO, type ChangeRequestCountsVO, type ChangeRequestMergeBatchResultVO, type ChangeRequestReviewBatchResultVO, type ChangeRequestStatus, type ChangeRequestTargetType, type ChangeRequestVO, type CloudContract, type CommentMentionDispatchStatus, type CommentMentionInputDTO, type CommentMentionTargetType, type CommentMentionVO, type CommentSubjectType, type CommentVO, type CommitVO, type CreatableNodeType, type CreateFormDTO, DEFAULT_BASE_URL, type FieldType, type FileNodeMetadata, type FileNodeVO, type FilePreviewConfigVO, type FilePreviewConfigurationStatus, type FilePreviewCredentialSource, type FilePreviewProvider, type FilePreviewUnavailableReason, type FilePreviewVO, type FormBoundFieldVO, type FormFieldBindingVO, type FormPageSourceVO, type FormShareVO, type FormSubmitResultVO, type FormThemeVO, type FormVO, type GalleryCardSize, type GalleryCoverFit, type GanttScale, type ListFormsDTO, type ListFormsVO, type LookupRollup, type MentionInboxItemVO, type MentionInboxPageVO, type NodeDetailVO, type NodeIcon, type NodeIconSchema, type NodeIconSource, type NodeSearchResultVO, type NodeType, type NodeVO, type NodeWebUrlInput, type OperationKind, type OperationStatus, type OperationVO, type PlaybookAttributionVO, type RecordByFieldInput, type RecordLinkVO, type RecordVO, type ResolvedConfig, type RestoredSlugChangeVO, type ReviewVO, type ReviewVerdict, type SearchResponseVO, type SearchResultKind, type SearchResultVO, type SourceAttributionVO, type SubmitFormDTO, type UpdateFormDTO, type UpdatePreviewFileCredentialDTO, type UpdateVaultSettingsDTO, type UploadAssetOptions, type UserRefVO, type VIEW_FIELD_MAX_WIDTH, type VIEW_FIELD_MIN_WIDTH, type VaultAccessPolicy, type VaultEnvironment, type VaultItemInput, type VaultItemKind, type VaultItemVO, type VaultRuntimeEnv, type VaultScopeType, type VaultSettingsVO, type ViewConfigVO, type ViewFilterOperator, type ViewFilterVO, type ViewSortVO, type ViewType, type ViewVO, cloudContract, createBusabaseClient, getRecordByField, grepAssets, hashBytes, nodeWebUrl, normalizeBaseUrl, resolveConfig, type resolveNodeIconSource, toFilesOnlyGrepResult, toUnifiedFilesGrepInput, uploadAsset };
|
package/dist/index.js
CHANGED
|
@@ -58,17 +58,42 @@ const toFilesOnlyGrepResult = (result) => ({
|
|
|
58
58
|
});
|
|
59
59
|
/** Call unified grep as files-only while preserving the former asset helper result shape. */
|
|
60
60
|
const grepAssets = async (client, input) => toFilesOnlyGrepResult(await client.grep(toUnifiedFilesGrepInput(input)));
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
61
|
+
z.object({ redirectUrl: z.string() });
|
|
62
|
+
z.object({
|
|
63
|
+
grantId: z.string(),
|
|
64
|
+
acprouterSpaceName: z.string()
|
|
65
|
+
});
|
|
66
|
+
const RouterGrantVOSchema = z.object({
|
|
67
|
+
grantId: z.string(),
|
|
68
|
+
spaceName: z.string()
|
|
69
|
+
});
|
|
70
|
+
const RouterEnrollmentInputSchema = z.object({
|
|
71
|
+
grantId: z.string().min(1),
|
|
72
|
+
enrollmentId: z.string().min(1)
|
|
73
|
+
});
|
|
74
|
+
const RouterEnrollmentMintInputSchema = z.object({
|
|
75
|
+
grantId: z.string().min(1),
|
|
76
|
+
agentSlug: z.enum(["claude-acp", "codex-acp"])
|
|
77
|
+
});
|
|
78
|
+
const RouterEnrollmentMintVOSchema = z.object({
|
|
79
|
+
enrollmentId: z.string(),
|
|
80
|
+
command: z.string(),
|
|
81
|
+
expiresAt: z.string()
|
|
82
|
+
});
|
|
83
|
+
const RouterEnrollmentStatusVOSchema = z.object({
|
|
84
|
+
state: z.enum([
|
|
85
|
+
"not_redeemed",
|
|
86
|
+
"redeemed_offline",
|
|
87
|
+
"online",
|
|
88
|
+
"failed"
|
|
89
|
+
]),
|
|
90
|
+
machineId: z.string().optional()
|
|
91
|
+
});
|
|
92
|
+
const RouterEnrollmentCompleteInputSchema = RouterEnrollmentInputSchema.extend({ agentSlug: z.enum(["claude-acp", "codex-acp"]) });
|
|
93
|
+
const RouterEnrollmentConnectionVOSchema = z.object({
|
|
94
|
+
connectionSlug: z.string(),
|
|
95
|
+
agentSlug: z.string()
|
|
96
|
+
});
|
|
72
97
|
/**
|
|
73
98
|
* How a backend is reached. This is the axis that decides everything else:
|
|
74
99
|
* `local-subprocess` runs on whichever machine serves the request (the user's
|
|
@@ -182,6 +207,11 @@ const AgentConnectionVOSchema = z.object({
|
|
|
182
207
|
latest: AgentSessionVOSchema.nullable(),
|
|
183
208
|
/** Whether Busabase can start another conversation with this agent right now. */
|
|
184
209
|
connected: z.boolean(),
|
|
210
|
+
connectionState: z.enum([
|
|
211
|
+
"ready",
|
|
212
|
+
"activating",
|
|
213
|
+
"disconnecting"
|
|
214
|
+
]).optional(),
|
|
185
215
|
/** Controls owner-only actions such as deleting the saved OAuth grant. */
|
|
186
216
|
ownedByCurrentUser: z.boolean()
|
|
187
217
|
});
|
|
@@ -279,6 +309,13 @@ const SetAgentSessionConfigOptionInputSchema = z.object({
|
|
|
279
309
|
* matching how `live.subscribe` is declared.
|
|
280
310
|
*/
|
|
281
311
|
const agentsContract = {
|
|
312
|
+
routerEnrollment: {
|
|
313
|
+
grants: oc.output(RouterGrantVOSchema.array()),
|
|
314
|
+
mint: oc.input(RouterEnrollmentMintInputSchema).output(RouterEnrollmentMintVOSchema),
|
|
315
|
+
status: oc.input(RouterEnrollmentInputSchema).output(RouterEnrollmentStatusVOSchema),
|
|
316
|
+
complete: oc.input(RouterEnrollmentCompleteInputSchema).output(RouterEnrollmentConnectionVOSchema),
|
|
317
|
+
cancel: oc.input(RouterEnrollmentInputSchema).output(z.object({ ok: z.boolean() }))
|
|
318
|
+
},
|
|
282
319
|
/** Connectable backends. Availability is resolved per request, not cached in the client. */
|
|
283
320
|
catalog: oc.output(AgentCatalogEntryVOSchema.array()),
|
|
284
321
|
disconnect: oc.input(DisconnectAgentInputSchema).output(z.object({
|
|
@@ -512,7 +549,13 @@ const lookupRollupSchema = z.enum([
|
|
|
512
549
|
"max",
|
|
513
550
|
"concatenate"
|
|
514
551
|
]).default("values");
|
|
552
|
+
/** Public, plain-text guidance. Examples are hints, never default record values. */
|
|
553
|
+
const fieldHelpSchema = z.object({
|
|
554
|
+
description: z.string().max(1e3).optional(),
|
|
555
|
+
example: z.string().max(200).optional()
|
|
556
|
+
});
|
|
515
557
|
const fieldOptionsSchema = z.object({
|
|
558
|
+
help: fieldHelpSchema.optional(),
|
|
516
559
|
ai: z.object({
|
|
517
560
|
model: z.string().optional(),
|
|
518
561
|
prompt: z.string().optional(),
|
|
@@ -543,7 +586,18 @@ const fieldOptionsSchema = z.object({
|
|
|
543
586
|
height: z.number().int().positive().max(1200).optional(),
|
|
544
587
|
providers: z.array(z.string()).optional()
|
|
545
588
|
}).optional(),
|
|
546
|
-
formula: z.object({
|
|
589
|
+
formula: z.object({
|
|
590
|
+
expression: z.string().min(1),
|
|
591
|
+
format: z.enum([
|
|
592
|
+
"auto",
|
|
593
|
+
"number",
|
|
594
|
+
"currency",
|
|
595
|
+
"percent",
|
|
596
|
+
"date"
|
|
597
|
+
]).optional(),
|
|
598
|
+
precision: z.number().int().min(0).max(10).optional(),
|
|
599
|
+
currency: z.string().regex(/^[A-Z]{3}$/).optional()
|
|
600
|
+
}).optional(),
|
|
547
601
|
inverseFieldId: z.string().optional(),
|
|
548
602
|
lookup: z.object({
|
|
549
603
|
relationFieldSlug: z.string().min(1).describe("Slug of a `relation` field on THIS Base — the hop to follow."),
|
|
@@ -633,7 +687,9 @@ const updateFieldChangeRequestInputSchema = z.object({
|
|
|
633
687
|
patch: z.object({
|
|
634
688
|
name: fieldNameSchema.optional(),
|
|
635
689
|
required: z.boolean().optional(),
|
|
636
|
-
options: fieldOptionsSchema.optional(),
|
|
690
|
+
options: fieldOptionsSchema.removeDefault().optional(),
|
|
691
|
+
/** Applied against current options at merge time; null removes all guidance. */
|
|
692
|
+
help: fieldHelpSchema.nullable().optional(),
|
|
637
693
|
/**
|
|
638
694
|
* Not a patch key — rejected on purpose, and the only key here that is.
|
|
639
695
|
*
|
|
@@ -1900,7 +1956,7 @@ const changeRequestSchema = z.object({
|
|
|
1900
1956
|
sourceAttribution: sourceAttributionSchema.nullable().optional(),
|
|
1901
1957
|
sourceMeta: z.record(z.string(), z.unknown()),
|
|
1902
1958
|
reviewPolicySnapshot: z.record(z.string(), z.unknown()),
|
|
1903
|
-
mergeSummary: z.record(z.string(), z.unknown()),
|
|
1959
|
+
mergeSummary: z.record(z.string(), z.unknown()).describe("Filled in when the change request merges. `slugChanges` (present only when non-empty) lists items a restore brought back under a new slug because another item took the old one while they were in the Trash: `{ nodeId, nodeType, name, fromSlug, toSlug }`. Read the new slug from here instead of assuming the old one."),
|
|
1904
1960
|
rejectedReason: z.string().nullable(),
|
|
1905
1961
|
reviewedAt: z.string().nullable(),
|
|
1906
1962
|
mergedAt: z.string().nullable(),
|
|
@@ -2413,7 +2469,7 @@ const createFileTreeInputSchema = z.object({
|
|
|
2413
2469
|
"private",
|
|
2414
2470
|
"workspace",
|
|
2415
2471
|
"public"
|
|
2416
|
-
]).optional()
|
|
2472
|
+
]).optional(),
|
|
2417
2473
|
version: z.string().optional().default("0.1.0"),
|
|
2418
2474
|
/**
|
|
2419
2475
|
* Extra node metadata, stored alongside the server-owned keys.
|
|
@@ -3246,6 +3302,11 @@ const listRecordsInputSchema = z.object({
|
|
|
3246
3302
|
baseId: z.string().optional().describe("Restrict to one Base. OMITTING it lists records across the WHOLE SPACE, which is rarely what a caller means and is easy to miss — every other parameter still applies, so an unscoped query looks like it worked."),
|
|
3247
3303
|
cursor: z.string().optional().describe("Opaque page cursor: pass back the `nextCursor` from the previous response. Do not construct or parse it — it is keyed on `createdAt`, or on the sort field when `sort` is given, and that is an implementation detail."),
|
|
3248
3304
|
status: z.enum(["active", "archived"]).optional().default("active").describe("`active` is the live table; `archived` is the Base's trash."),
|
|
3305
|
+
summary: z.union([
|
|
3306
|
+
z.boolean(),
|
|
3307
|
+
z.literal("true"),
|
|
3308
|
+
z.literal("false")
|
|
3309
|
+
]).transform((value) => value === true || value === "true").optional().describe("Return compact list previews: field values larger than 4 KB are replaced with omission markers, and Base field definitions and computed lookup values are omitted. Omit for full records; use records.get to read the complete content of a selected row."),
|
|
3249
3310
|
filters: z.array(listRecordsFilterSchema).optional().describe("View filters — a best-effort SUPERSET, not an exact answer. They mean what the grid means (a currency number reads as \"$1,234.00\", a select as its choice label), and the server may return records that do not match, so the caller must narrow them again and must NOT trust `limit` alongside them. Use `valueFilters` when you need an exact row set."),
|
|
3250
3311
|
/**
|
|
3251
3312
|
* Exact value comparisons. Unlike `filters` these are authoritative — the
|
|
@@ -3299,6 +3360,16 @@ const listRecordsPageInputSchema = z.object({
|
|
|
3299
3360
|
gte: z.string().describe("Inclusive lower bound, ISO 8601 UTC instant."),
|
|
3300
3361
|
lt: z.string().describe("EXCLUSIVE upper bound, ISO 8601 UTC instant.")
|
|
3301
3362
|
}).optional().describe("Scope the page to a `date`/`created_time`/`updated_time` field falling in `[gte, lt)` — a half-open range of absolute UTC instants, not a `filters` condition. Resolve the bounds yourself: a day or a month only means something in a timezone, and the server does not know the viewer's."),
|
|
3363
|
+
/**
|
|
3364
|
+
* The same one-field sort `records.list` takes, with the same semantics —
|
|
3365
|
+
* so an app can jump straight to page N of "newest follow-up first" without
|
|
3366
|
+
* creating a View in the user's Base or walking a cursor through every page.
|
|
3367
|
+
*
|
|
3368
|
+
* It REPLACES the View's saved sort when both are given (the View's filters
|
|
3369
|
+
* still apply). Ties on the value are broken by record id, so consecutive
|
|
3370
|
+
* pages never overlap or skip a record.
|
|
3371
|
+
*/
|
|
3372
|
+
sort: listRecordsSortSchema.optional().describe("Sort by one field. Only number and date fields sort authoritatively (their typed value column matches a client's own ordering); any other field type is returned in the default order and left for the caller to sort. Replaces the saved View's sort when `viewId` is also given (the View's filters still apply). Empty values sort last; ties are broken by record id, so pages never overlap."),
|
|
3302
3373
|
page: z.coerce.number().int().min(1).optional().default(1).describe("1-indexed, not 0-indexed."),
|
|
3303
3374
|
pageSize: z.coerce.number().int().min(1).max(100).optional().default(50).describe("Records per page. Capped at 100.")
|
|
3304
3375
|
});
|
|
@@ -3562,8 +3633,8 @@ const baseContract = {
|
|
|
3562
3633
|
path: "/bases",
|
|
3563
3634
|
tags: ["Bases"],
|
|
3564
3635
|
summary: "List Bases",
|
|
3565
|
-
successDescription: "Developer-facing Bases. `status=archived` returns the archived ones instead of the active ones."
|
|
3566
|
-
}).input(listByStatusInputSchema).output(z.array(baseSchema)),
|
|
3636
|
+
successDescription: "Developer-facing Bases. `status=archived` returns the archived ones instead of the active ones. `fields=links` trims each Base to its relation and lookup fields."
|
|
3637
|
+
}).input(listByStatusInputSchema.extend({ fields: z.enum(["all", "links"]).optional().default("all").describe("`all` (default): every live field. `links`: only relation and lookup fields — enough to see how Bases connect (relation targets, lookups, inverse relations) across a large space, not to read or edit records. Fetch one Base with `bases.get` for its full schema.") })).output(z.array(baseSchema)),
|
|
3567
3638
|
get: oc.route({
|
|
3568
3639
|
method: "GET",
|
|
3569
3640
|
path: "/bases/{baseId}",
|
|
@@ -3639,7 +3710,7 @@ const baseContract = {
|
|
|
3639
3710
|
path: "/bases/{baseId}/lifecycle/change-requests",
|
|
3640
3711
|
tags: ["Bases", "Change Requests"],
|
|
3641
3712
|
summary: "Create Base lifecycle change request",
|
|
3642
|
-
successDescription: "Created change request that moves a Base between its lifecycle states. `operation` selects the direction: `archive` (soft-delete a live Base) or `restore` (bring an archived Base back)."
|
|
3713
|
+
successDescription: "Created change request that moves a Base between its lifecycle states. `operation` selects the direction: `archive` (soft-delete a live Base) or `restore` (bring an archived Base back). If another Base took the slug while this one was archived, the restore brings it back under the next free slug (`tasks-2`) and lists the change in `mergeSummary.slugChanges`."
|
|
3643
3714
|
}).input(baseLifecycleChangeRequestInputSchema).output(changeRequestSchema)
|
|
3644
3715
|
};
|
|
3645
3716
|
const recordContract = {
|
|
@@ -3655,7 +3726,7 @@ const recordContract = {
|
|
|
3655
3726
|
path: "/records/page",
|
|
3656
3727
|
tags: ["Records"],
|
|
3657
3728
|
summary: "List a numbered record page",
|
|
3658
|
-
successDescription: "A random-access page of active records. When viewId is supplied, the saved view is authoritatively filtered and sorted before total and page slicing are calculated. `dateRange` additionally scopes to a `[gte, lt)` UTC instant window on a date/created_time/updated_time field."
|
|
3729
|
+
successDescription: "A random-access page of active records. When viewId is supplied, the saved view is authoritatively filtered and sorted before total and page slicing are calculated. An explicit `sort` (same shape as `records.list`'s) replaces the View's sort, so page N of a number- or date-sorted list is one request. `dateRange` additionally scopes to a `[gte, lt)` UTC instant window on a date/created_time/updated_time field."
|
|
3659
3730
|
}).input(listRecordsPageInputSchema).output(listRecordsPageResponseSchema),
|
|
3660
3731
|
count: oc.route({
|
|
3661
3732
|
method: "GET",
|
|
@@ -4045,6 +4116,7 @@ const FormBoundFieldSchema = z.object({
|
|
|
4045
4116
|
slug: z.string(),
|
|
4046
4117
|
name: fieldNameSchema,
|
|
4047
4118
|
type: fieldTypeSchema,
|
|
4119
|
+
help: fieldHelpSchema.optional(),
|
|
4048
4120
|
choices: z.array(z.object({
|
|
4049
4121
|
id: z.string(),
|
|
4050
4122
|
name: z.string()
|
|
@@ -5691,6 +5763,7 @@ const busabaseContractRoutes = {
|
|
|
5691
5763
|
path: "/embed-links",
|
|
5692
5764
|
tags: ["Embed Links"],
|
|
5693
5765
|
summary: "Create a polymorphic read-only embed link",
|
|
5766
|
+
description: "Record detail requires write on the owning Base node; change requests require changeRequest on every affected node; whole-node links require manage. Listing and revoking links require manage.",
|
|
5694
5767
|
successDescription: "The capability URL is returned once; only its secret hash is stored."
|
|
5695
5768
|
}).errors(embedLinkErrors).input(CreateEmbedLinkInputSchema).output(CreatedEmbedLinkVOSchema),
|
|
5696
5769
|
list: oc.route({
|
|
@@ -6090,6 +6163,7 @@ members: oc.output(z.array(userRefSchema)) },
|
|
|
6090
6163
|
successDescription: "A random-access page of change requests plus the total across the whole filter. Same `status`, `mine`, and `affectsNodeId` filters as the cursor listing."
|
|
6091
6164
|
}).input(listChangeRequestsPageInputSchema).output(listChangeRequestsPageResponseSchema),
|
|
6092
6165
|
inboxSnapshot: oc.input(inboxSnapshotInputSchema).output(inboxSnapshotResponseSchema),
|
|
6166
|
+
reviewCount: oc.output(z.object({ review: z.number().int().min(0) })),
|
|
6093
6167
|
counts: oc.route({
|
|
6094
6168
|
method: "GET",
|
|
6095
6169
|
path: "/change-requests/counts",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "busa-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.96.0",
|
|
4
4
|
"description": "Typed TypeScript/JavaScript SDK for the Busabase OpenAPI REST API. Talks to a local or remote `busabase server` (or Busabase Cloud). Short-name alias for busabase-sdk.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/busabase/busabase/tree/main/apps/busabase-sdk",
|