@xfey/tutti 0.1.106 → 0.1.108
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/README.md +2 -0
- package/dist/collaboration-ingestion/external-source.js +10 -1
- package/dist/control-plane/procedure-logging.d.ts +1 -0
- package/dist/control-plane/procedure-logging.js +16 -5
- package/dist/control-plane/reference-summary-refresh.js +2 -2
- package/dist/control-plane/task-source-context-types.d.ts +2 -1
- package/dist/control-plane/task-source-context.js +7 -0
- package/dist/control-plane/workflows/openai.js +1 -0
- package/dist/providers/openai/app-server/read-only-procedure.d.ts +10 -2
- package/dist/providers/openai/app-server/read-only-procedure.js +68 -15
- package/dist/providers/openai/app-server/skills.d.ts +4 -1
- package/dist/providers/openai/app-server/skills.js +12 -2
- package/dist/providers/openai/app-server/workspace-write-run.js +14 -10
- package/dist/reference-access/cache.d.ts +50 -0
- package/dist/reference-access/cache.js +268 -0
- package/dist/reference-access/read-evidence.d.ts +6 -0
- package/dist/reference-access/read-evidence.js +15 -0
- package/dist/reference-access/service.d.ts +26 -0
- package/dist/reference-access/service.js +42 -0
- package/dist/server-shell/cli/external-reference-runtime.d.ts +12 -0
- package/dist/server-shell/cli/external-reference-runtime.js +75 -0
- package/dist/server-shell/cli/host-server-runtime.js +17 -1
- package/dist/server-shell/cli/relay-registration.js +1 -0
- package/dist/server-shell/http/create-server.d.ts +2 -0
- package/dist/server-shell/http/create-server.js +5 -4
- package/dist/server-shell/http/routes/agent-context-auth.d.ts +2 -1
- package/dist/server-shell/http/routes/agent-context-auth.js +3 -1
- package/dist/server-shell/http/routes/agent-context-external-reference-routes.d.ts +4 -0
- package/dist/server-shell/http/routes/agent-context-external-reference-routes.js +83 -0
- package/dist/server-shell/http/routes/agent-context-shared.d.ts +2 -0
- package/dist/server-shell/http/routes/agent-context.js +3 -1
- package/dist/server-shell/http/routes/project-api/reference-files-routes.js +19 -2
- package/dist/workspace-ops/project-workspace.js +6 -6
- package/dist/workspace-ops/reference-cache-policy.d.ts +6 -0
- package/dist/workspace-ops/reference-cache-policy.js +79 -0
- package/migrations/0021_external_reference_reads.sql +11 -0
- package/node_modules/@tutti/relay-client/dist/external-references.d.ts +11 -0
- package/node_modules/@tutti/relay-client/dist/external-references.js +63 -0
- package/node_modules/@tutti/relay-client/dist/host-control.d.ts +1 -0
- package/node_modules/@tutti/relay-client/dist/host-control.js +1 -0
- package/node_modules/@tutti/relay-client/dist/index.d.ts +1 -0
- package/node_modules/@tutti/relay-client/dist/index.js +1 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +6 -0
- package/node_modules/@tutti/shared/dist/schemas/api/external-references.d.ts +23 -0
- package/node_modules/@tutti/shared/dist/schemas/api/external-references.js +21 -0
- package/node_modules/@tutti/shared/dist/schemas/api/feishu-documents.d.ts +46 -0
- package/node_modules/@tutti/shared/dist/schemas/api/feishu-documents.js +53 -0
- package/node_modules/@tutti/shared/dist/schemas/api/index.d.ts +4 -2
- package/node_modules/@tutti/shared/dist/schemas/api/index.js +3 -1
- package/node_modules/@tutti/shared/dist/schemas/api/messages.d.ts +24 -0
- package/node_modules/@tutti/shared/dist/schemas/api/messages.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/api/platform-sessions.d.ts +10 -1
- package/node_modules/@tutti/shared/dist/schemas/api/platform-sessions.js +23 -1
- package/node_modules/@tutti/shared/dist/schemas/api/viewer-reference.d.ts +6 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/external-references.d.ts +109 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/external-references.js +70 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/feishu-documents.d.ts +49 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/feishu-documents.js +36 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +2 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-integration.d.ts +36 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-integration.js +3 -0
- package/package.json +1 -1
- package/prompts/skills/read-references/SKILL.md +32 -3
- package/web/assets/{homepage-motion-scene-tfFEdV9Y.js → homepage-motion-scene-B6yPJnY8.js} +1 -1
- package/web/assets/{index-C2Mmj25S.css → index-DvfZ57Nl.css} +1 -1
- package/web/assets/index-aQnJ5JoI.js +69 -0
- package/web/index.html +2 -2
- package/web/assets/index-B7ZGIvOv.js +0 -69
|
@@ -2,7 +2,7 @@ export * from "./openapi.js";
|
|
|
2
2
|
export { ARTIFACT_FEEDBACK_MAX_ANNOTATIONS, ARTIFACT_FEEDBACK_MAX_AUTHORED_TEXT_LENGTH, ARTIFACT_FEEDBACK_MAX_COMMENT_LENGTH, ARTIFACT_FEEDBACK_MAX_SERIALIZED_BYTES, ARTIFACT_FEEDBACK_MAX_SUMMARY_LENGTH, ArtifactElementAnchorSchema, ArtifactElementKindSchema, ArtifactElementTargetSchema, ArtifactFeedbackAnnotationSchema, ArtifactFeedbackCommandSchema, ArtifactFeedbackRefSchema, ArtifactSemanticContextSchema, ArtifactSemanticSnapshotSchema, ArtifactSemanticStateSchema, } from "./artifact-feedback.js";
|
|
3
3
|
export { CompleteDesktopEntryContinuationBodySchema, CompleteDesktopEntryContinuationResponseSchema, CreateDesktopEntryContinuationResponseSchema, DESKTOP_ENTRY_COMPLETION_TOKEN_LENGTH, DESKTOP_ENTRY_PAYLOAD_KEY_LENGTH, DESKTOP_ENTRY_SEALED_IV_LENGTH, DesktopEntryCompletionTokenSchema, DesktopEntryContinuationPendingProjectionSchema, DesktopEntryContinuationReadyProjectionSchema, DesktopEntryPayloadKeySchema, GetDesktopEntryContinuationResponseSchema, MAX_DESKTOP_ENTRY_SEALED_CIPHERTEXT_LENGTH, SealedDesktopEntryPayloadSchema, } from "./desktop-entry-continuations.js";
|
|
4
4
|
export { LOCAL_CONSOLE_ACCOUNT_HANDOFF_TOKEN_MAX_LENGTH, LOCAL_CONSOLE_ACCOUNT_HANDOFF_TOKEN_MIN_LENGTH, RegisterLocalConsoleAccountHandoffBodySchema, RegisterLocalConsoleAccountHandoffResponseSchema, } from "./local-console-account-handoffs.js";
|
|
5
|
-
export { FEISHU_BROWSER_HANDOFF_TOKEN_LENGTH, FEISHU_DOCX_REQUIRED_USER_SCOPE, FEISHU_H5_AUTHORIZATION_CODE_MAX_LENGTH, FEISHU_H5_REQUIRED_USER_SCOPE, FEISHU_PLATFORM_STATE_LENGTH, FeishuPlatformSessionBootstrapBodySchema, FeishuPlatformSessionBootstrapResponseSchema, FeishuBrowserHandoffResponseSchema, FeishuBrowserHandoffTokenSchema, ConsumeFeishuBrowserHandoffBodySchema, FeishuDocumentAuthorizationBootstrapResponseSchema, FeishuDocumentAuthorizationExchangeBodySchema, FeishuDocumentAuthorizationProjectionSchema, FeishuPlatformSessionExchangeBodySchema, FeishuPlatformSessionProjectionSchema, FeishuPlatformStateSchema, } from "./platform-sessions.js";
|
|
5
|
+
export { FEISHU_BROWSER_HANDOFF_TOKEN_LENGTH, FEISHU_DOCX_READWRITE_USER_SCOPE, FEISHU_DOCX_REQUIRED_USER_SCOPE, FEISHU_H5_AUTHORIZATION_CODE_MAX_LENGTH, FEISHU_H5_REQUIRED_USER_SCOPE, FEISHU_OFFLINE_ACCESS_SCOPE, FEISHU_WIKI_REQUIRED_USER_SCOPE, FeishuDocumentAuthorizationBootstrapBodySchema, FEISHU_PLATFORM_STATE_LENGTH, FeishuPlatformSessionBootstrapBodySchema, FeishuPlatformSessionBootstrapResponseSchema, FeishuBrowserHandoffResponseSchema, FeishuBrowserHandoffTokenSchema, ConsumeFeishuBrowserHandoffBodySchema, FeishuDocumentAuthorizationBootstrapResponseSchema, FeishuDocumentAuthorizationExchangeBodySchema, FeishuDocumentAuthorizationProjectionSchema, FeishuPlatformSessionExchangeBodySchema, FeishuPlatformSessionProjectionSchema, FeishuPlatformStateSchema, hasFeishuDocxReadCapability, hasFeishuWikiReadCapability, } from "./platform-sessions.js";
|
|
6
6
|
export { ApiErrorCodeSchema, ApiErrorResponseSchema, CommandDispositionBaseSchema, CursorPageRequestSchema, DEFAULT_SSE_REPLAY_WINDOW_POLICY, InterruptedCommandDispositionSchema, QueryInvalidationHintSchema, RelayInvalidationHintSchema, RelaySseEventTypeSchema, SseReplayWindowPolicySchema, WorkspaceSseEventTypeSchema, commandEnvelopeSchema, commandResponseSchema, commandResponseWithResultSchema, cursorPageSchema, relaySseEventSchema, timelineWindowSchema, workspaceSseEventSchema, } from "./primitives.js";
|
|
7
7
|
export { GetProviderModelsResponseSchema, MAX_PROVIDER_MODEL_NAME_LENGTH, ProviderConfigInvalidReasonCodeSchema, ProviderConfigProjectionSchema, ProviderModelDiscoveryUnavailableReasonSchema, ProviderModelNameSchema, ProviderModelValidationFailureReasonSchema, ProviderUnavailableReasonCodeSchema, ProjectProviderUnavailableReasonSchema, UpdateProviderDefaultModelBodySchema, UpdateProviderDefaultModelDispositionSchema, UpdateProviderDefaultModelPayloadSchema, UpdateProviderDefaultModelResponseSchema, } from "./provider-config.js";
|
|
8
8
|
export { ProviderUsageBreakdownProjectionSchema, ProviderUsageCategorySchema, ProviderUsageModelSummaryProjectionSchema, ProviderUsageProjectionSchema, ProviderUsageSourceSummaryProjectionSchema, } from "./provider-usage.js";
|
|
@@ -18,4 +18,6 @@ export { ArtifactKindSchema, ArtifactManifestSchema, ArtifactPreviewProjectionSc
|
|
|
18
18
|
export { DeleteSkillBodySchema, DeleteSkillDispositionSchema, DeleteSkillPayloadSchema, DeleteSkillResponseSchema, GetSkillParamsSchema, GetSkillResponseSchema, GetSkillsResponseSchema, ImportSkillZipBodySchema, ImportSkillZipDispositionSchema, ImportSkillZipPayloadSchema, ImportSkillZipResponseSchema, ImportSkillZipResultSchema, SkillDetailProjectionSchema, SkillNameSchema, SkillProjectionSchema, } from "./skills.js";
|
|
19
19
|
export { ActivityEventProjectionSchema, ActivityEventSsePayloadSchema, ApprovalChangedEventPayloadSchema, ActivityProjectionSchema, ConnectionReadyEventPayloadSchema, ExecutionActivitySummarySchema, ExecutionStatusChangedEventPayloadSchema, ExecutionStatusKindSchema, ExecutionStatusProjectionSchema, ProcedureLaneSchema, ProviderConfigChangedEventPayloadSchema, QueryInvalidateEventPayloadSchema, ScratchpadUpdatedEventPayloadSchema, TaskDetailUpdatedEventPayloadSchema, TaskUpdatedEventPayloadSchema, WorklistChangedEventPayloadSchema, WorkspaceRecoveredEventPayloadSchema, } from "./runtime-events.js";
|
|
20
20
|
export { ContextSyncBodySchema, ContextSyncDispositionSchema, ContextSyncPayloadSchema, ContextSyncResponseSchema, ContextSyncResultSchema, InitializeProjectDocsBodySchema, InitializeProjectDocsDispositionSchema, InitializeProjectDocsPayloadSchema, InitializeProjectDocsResponseSchema, InitializeProjectDocsResultSchema, ProjectDocsProcedureStartResultSchema, RefreshScratchpadDispositionSchema, RefreshScratchpadResultSchema, RunSchedulerNowBodySchema, RunSchedulerNowDispositionSchema, RunSchedulerNowPayloadSchema, RunSchedulerNowResponseSchema, RetryTaskBodySchema, RetryTaskDispositionSchema, RetryTaskPayloadSchema, RetryTaskResponseSchema, SubmitWorklistBodySchema, SubmitWorklistDispositionSchema, SubmitWorklistPayloadSchema, SubmitWorklistResponseSchema, SubmitWorklistResultSchema, UpdateProjectDescriptionBodySchema, UpdateProjectDescriptionDispositionSchema, UpdateProjectDescriptionPayloadSchema, UpdateProjectDescriptionResponseSchema, UpdateProjectDescriptionResultSchema, UpdateProjectDisplayNameBodySchema, UpdateProjectDisplayNameDispositionSchema, UpdateProjectDisplayNamePayloadSchema, UpdateProjectDisplayNameResponseSchema, UpdateProjectDisplayNameResultSchema, } from "./workspace-commands.js";
|
|
21
|
+
export * from "./feishu-documents.js";
|
|
22
|
+
export * from "./external-references.js";
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -133,6 +133,12 @@ export declare const ArtifactPreviewRefSchema: import("@sinclair/typebox").TObje
|
|
|
133
133
|
run_result_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
134
134
|
}>;
|
|
135
135
|
export declare const MessageRefsSchema: import("@sinclair/typebox").TObject<{
|
|
136
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
137
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
138
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
139
|
+
name: import("@sinclair/typebox").TString;
|
|
140
|
+
created_at: import("@sinclair/typebox").TString;
|
|
141
|
+
}>>>;
|
|
136
142
|
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
137
143
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
138
144
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -337,6 +343,12 @@ export declare const MessageProjectionSchema: import("@sinclair/typebox").TObjec
|
|
|
337
343
|
message_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user_text">, import("@sinclair/typebox").TLiteral<"agent_text">, import("@sinclair/typebox").TLiteral<"system_notice">, import("@sinclair/typebox").TLiteral<"clarification_request">, import("@sinclair/typebox").TLiteral<"clarification_card">]>;
|
|
338
344
|
body: import("@sinclair/typebox").TString;
|
|
339
345
|
refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
346
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
347
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
348
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
349
|
+
name: import("@sinclair/typebox").TString;
|
|
350
|
+
created_at: import("@sinclair/typebox").TString;
|
|
351
|
+
}>>>;
|
|
340
352
|
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
341
353
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
342
354
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -660,6 +672,12 @@ export declare const SendMainChatMessageResultSchema: import("@sinclair/typebox"
|
|
|
660
672
|
message_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user_text">, import("@sinclair/typebox").TLiteral<"agent_text">, import("@sinclair/typebox").TLiteral<"system_notice">, import("@sinclair/typebox").TLiteral<"clarification_request">, import("@sinclair/typebox").TLiteral<"clarification_card">]>;
|
|
661
673
|
body: import("@sinclair/typebox").TString;
|
|
662
674
|
refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
675
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
676
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
677
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
678
|
+
name: import("@sinclair/typebox").TString;
|
|
679
|
+
created_at: import("@sinclair/typebox").TString;
|
|
680
|
+
}>>>;
|
|
663
681
|
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
664
682
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
665
683
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -885,6 +903,12 @@ export declare const MessageCreatedEventPayloadSchema: import("@sinclair/typebox
|
|
|
885
903
|
message_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user_text">, import("@sinclair/typebox").TLiteral<"agent_text">, import("@sinclair/typebox").TLiteral<"system_notice">, import("@sinclair/typebox").TLiteral<"clarification_request">, import("@sinclair/typebox").TLiteral<"clarification_card">]>;
|
|
886
904
|
body: import("@sinclair/typebox").TString;
|
|
887
905
|
refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
906
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
907
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
908
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
909
|
+
name: import("@sinclair/typebox").TString;
|
|
910
|
+
created_at: import("@sinclair/typebox").TString;
|
|
911
|
+
}>>>;
|
|
888
912
|
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
889
913
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
890
914
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { ExternalReferenceDescriptorSchema } from "./external-references.js";
|
|
2
3
|
import { ActivityRefSchema, ClarificationRoundRefSchema, ClarificationThreadRefSchema, CursorSchema, IsoDateTimeStringSchema, MessageIdSchema, RunResultIdSchema, TaskIdSchema, WorkflowInvocationRefSchema, } from "../domain/index.js";
|
|
3
4
|
import { ACCOUNT_AVATAR_COLORS } from "../../domain/index.js";
|
|
4
5
|
import { InterruptedCommandDispositionSchema, NonEmptyStringSchema, commandEnvelopeSchema, commandResponseWithResultSchema, timelineWindowSchema, } from "./primitives.js";
|
|
@@ -124,6 +125,7 @@ export const ArtifactPreviewRefSchema = Type.Object({
|
|
|
124
125
|
run_result_id: Type.Optional(RunResultIdSchema),
|
|
125
126
|
}, { additionalProperties: false });
|
|
126
127
|
export const MessageRefsSchema = Type.Object({
|
|
128
|
+
external_references: Type.Optional(Type.Array(ExternalReferenceDescriptorSchema, { minItems: 1, maxItems: 16 })),
|
|
127
129
|
task_id: Type.Optional(TaskIdSchema),
|
|
128
130
|
activity_ref: Type.Optional(ActivityRefSchema),
|
|
129
131
|
workflow_ref: Type.Optional(WorkflowInvocationRefSchema),
|
|
@@ -2,8 +2,17 @@ import type { Static } from "@sinclair/typebox";
|
|
|
2
2
|
export declare const FEISHU_H5_AUTHORIZATION_CODE_MAX_LENGTH = 2048;
|
|
3
3
|
export declare const FEISHU_H5_REQUIRED_USER_SCOPE = "im:chat.members:read";
|
|
4
4
|
export declare const FEISHU_DOCX_REQUIRED_USER_SCOPE = "docx:document:readonly";
|
|
5
|
+
export declare const FEISHU_DOCX_READWRITE_USER_SCOPE = "docx:document";
|
|
6
|
+
export declare const FEISHU_OFFLINE_ACCESS_SCOPE = "offline_access";
|
|
7
|
+
export declare const FEISHU_WIKI_REQUIRED_USER_SCOPE = "wiki:node:read";
|
|
8
|
+
export type FeishuDocumentAuthorizationProfile = "docx" | "wiki_docx";
|
|
5
9
|
export declare const FEISHU_PLATFORM_STATE_LENGTH = 43;
|
|
6
10
|
export declare const FEISHU_BROWSER_HANDOFF_TOKEN_LENGTH = 43;
|
|
11
|
+
export declare function hasFeishuDocxReadCapability(scopes: readonly string[]): boolean;
|
|
12
|
+
export declare function hasFeishuWikiReadCapability(scopes: readonly string[]): boolean;
|
|
13
|
+
export declare const FeishuDocumentAuthorizationBootstrapBodySchema: import("@sinclair/typebox").TObject<{
|
|
14
|
+
profile: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"docx">, import("@sinclair/typebox").TLiteral<"wiki_docx">]>>;
|
|
15
|
+
}>;
|
|
7
16
|
export declare const FeishuPlatformStateSchema: import("@sinclair/typebox").TString;
|
|
8
17
|
export declare const FeishuBrowserHandoffTokenSchema: import("@sinclair/typebox").TString;
|
|
9
18
|
export declare const FeishuPlatformSessionBootstrapBodySchema: import("@sinclair/typebox").TObject<{
|
|
@@ -43,7 +52,7 @@ export declare const FeishuDocumentAuthorizationBootstrapResponseSchema: import(
|
|
|
43
52
|
platform: import("@sinclair/typebox").TLiteral<"feishu">;
|
|
44
53
|
app_id: import("@sinclair/typebox").TString;
|
|
45
54
|
state: import("@sinclair/typebox").TString;
|
|
46
|
-
authorization_scopes: import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TLiteral<"docx:document:readonly">]>;
|
|
55
|
+
authorization_scopes: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TLiteral<"docx:document:readonly">, import("@sinclair/typebox").TLiteral<"offline_access">]>, import("@sinclair/typebox").TTuple<[import("@sinclair/typebox").TLiteral<"docx:document:readonly">, import("@sinclair/typebox").TLiteral<"offline_access">, import("@sinclair/typebox").TLiteral<"wiki:node:read">]>]>;
|
|
47
56
|
expires_at: import("@sinclair/typebox").TString;
|
|
48
57
|
}>;
|
|
49
58
|
export declare const FeishuDocumentAuthorizationExchangeBodySchema: import("@sinclair/typebox").TObject<{
|
|
@@ -3,8 +3,20 @@ import { IsoDateTimeStringSchema, RelayAccountRefSchema, RelayPlatformSessionRef
|
|
|
3
3
|
export const FEISHU_H5_AUTHORIZATION_CODE_MAX_LENGTH = 2_048;
|
|
4
4
|
export const FEISHU_H5_REQUIRED_USER_SCOPE = "im:chat.members:read";
|
|
5
5
|
export const FEISHU_DOCX_REQUIRED_USER_SCOPE = "docx:document:readonly";
|
|
6
|
+
export const FEISHU_DOCX_READWRITE_USER_SCOPE = "docx:document";
|
|
7
|
+
export const FEISHU_OFFLINE_ACCESS_SCOPE = "offline_access";
|
|
8
|
+
export const FEISHU_WIKI_REQUIRED_USER_SCOPE = "wiki:node:read";
|
|
6
9
|
export const FEISHU_PLATFORM_STATE_LENGTH = 43;
|
|
7
10
|
export const FEISHU_BROWSER_HANDOFF_TOKEN_LENGTH = 43;
|
|
11
|
+
export function hasFeishuDocxReadCapability(scopes) {
|
|
12
|
+
return scopes.some((scope) => scope === FEISHU_DOCX_REQUIRED_USER_SCOPE || scope === FEISHU_DOCX_READWRITE_USER_SCOPE);
|
|
13
|
+
}
|
|
14
|
+
export function hasFeishuWikiReadCapability(scopes) {
|
|
15
|
+
return scopes.some((scope) => [FEISHU_WIKI_REQUIRED_USER_SCOPE, "wiki:wiki:readonly", "wiki:wiki"].includes(scope));
|
|
16
|
+
}
|
|
17
|
+
export const FeishuDocumentAuthorizationBootstrapBodySchema = Type.Object({
|
|
18
|
+
profile: Type.Optional(Type.Union([Type.Literal("docx"), Type.Literal("wiki_docx")])),
|
|
19
|
+
}, { additionalProperties: false });
|
|
8
20
|
export const FeishuPlatformStateSchema = Type.String({
|
|
9
21
|
minLength: FEISHU_PLATFORM_STATE_LENGTH,
|
|
10
22
|
maxLength: FEISHU_PLATFORM_STATE_LENGTH,
|
|
@@ -52,7 +64,17 @@ export const FeishuDocumentAuthorizationBootstrapResponseSchema = Type.Object({
|
|
|
52
64
|
platform: Type.Literal("feishu"),
|
|
53
65
|
app_id: Type.String({ minLength: 1, maxLength: 128, pattern: "^cli_[A-Za-z0-9]+$" }),
|
|
54
66
|
state: FeishuPlatformStateSchema,
|
|
55
|
-
authorization_scopes: Type.
|
|
67
|
+
authorization_scopes: Type.Union([
|
|
68
|
+
Type.Tuple([
|
|
69
|
+
Type.Literal(FEISHU_DOCX_REQUIRED_USER_SCOPE),
|
|
70
|
+
Type.Literal(FEISHU_OFFLINE_ACCESS_SCOPE),
|
|
71
|
+
]),
|
|
72
|
+
Type.Tuple([
|
|
73
|
+
Type.Literal(FEISHU_DOCX_REQUIRED_USER_SCOPE),
|
|
74
|
+
Type.Literal(FEISHU_OFFLINE_ACCESS_SCOPE),
|
|
75
|
+
Type.Literal(FEISHU_WIKI_REQUIRED_USER_SCOPE),
|
|
76
|
+
]),
|
|
77
|
+
]),
|
|
56
78
|
expires_at: IsoDateTimeStringSchema,
|
|
57
79
|
}, { additionalProperties: false });
|
|
58
80
|
export const FeishuDocumentAuthorizationExchangeBodySchema = Type.Object({
|
|
@@ -400,6 +400,12 @@ export declare const UploadReferenceFileResultSchema: import("@sinclair/typebox"
|
|
|
400
400
|
message_kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"user_text">, import("@sinclair/typebox").TLiteral<"agent_text">, import("@sinclair/typebox").TLiteral<"system_notice">, import("@sinclair/typebox").TLiteral<"clarification_request">, import("@sinclair/typebox").TLiteral<"clarification_card">]>;
|
|
401
401
|
body: import("@sinclair/typebox").TString;
|
|
402
402
|
refs: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
403
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
404
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
405
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
406
|
+
name: import("@sinclair/typebox").TString;
|
|
407
|
+
created_at: import("@sinclair/typebox").TString;
|
|
408
|
+
}>>>;
|
|
403
409
|
task_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
404
410
|
activity_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
405
411
|
workflow_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { type Static } from "@sinclair/typebox";
|
|
2
|
+
import { type ExternalReferenceList } from "../api/external-references.js";
|
|
3
|
+
export declare const EXTERNAL_REFERENCE_CONTROL_PATH = "/internal/v1/external-references";
|
|
4
|
+
export declare const EXTERNAL_REFERENCE_HOST_PATH = "/host-control/v1/external-references";
|
|
5
|
+
export declare const ExternalReferenceAuthoritySchema: import("@sinclair/typebox").TObject<{
|
|
6
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
7
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
8
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
9
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
10
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
11
|
+
}>;
|
|
12
|
+
export declare const ExternalReferenceControlRequestSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
13
|
+
action: import("@sinclair/typebox").TLiteral<"list">;
|
|
14
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
15
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
16
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
17
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
18
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
19
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
20
|
+
}>;
|
|
21
|
+
request_ref: import("@sinclair/typebox").TString;
|
|
22
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
23
|
+
action: import("@sinclair/typebox").TLiteral<"register">;
|
|
24
|
+
document_url: import("@sinclair/typebox").TString;
|
|
25
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
26
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
27
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
28
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
29
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
30
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
31
|
+
}>;
|
|
32
|
+
request_ref: import("@sinclair/typebox").TString;
|
|
33
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
34
|
+
action: import("@sinclair/typebox").TLiteral<"prepare">;
|
|
35
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
36
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
37
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
38
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
39
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
40
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
41
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
42
|
+
}>;
|
|
43
|
+
request_ref: import("@sinclair/typebox").TString;
|
|
44
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
45
|
+
action: import("@sinclair/typebox").TLiteral<"transfer">;
|
|
46
|
+
transfer_ref: import("@sinclair/typebox").TString;
|
|
47
|
+
put_url: import("@sinclair/typebox").TString;
|
|
48
|
+
headers: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TString>;
|
|
49
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
50
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
51
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
52
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
53
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
54
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
55
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
56
|
+
}>;
|
|
57
|
+
request_ref: import("@sinclair/typebox").TString;
|
|
58
|
+
}>]>;
|
|
59
|
+
export declare const ExternalReferencePreparedSchema: import("@sinclair/typebox").TObject<{
|
|
60
|
+
source: import("@sinclair/typebox").TObject<{
|
|
61
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
62
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
63
|
+
name: import("@sinclair/typebox").TString;
|
|
64
|
+
created_at: import("@sinclair/typebox").TString;
|
|
65
|
+
}>;
|
|
66
|
+
revision: import("@sinclair/typebox").TString;
|
|
67
|
+
sha256: import("@sinclair/typebox").TString;
|
|
68
|
+
size_bytes: import("@sinclair/typebox").TInteger;
|
|
69
|
+
media_type: import("@sinclair/typebox").TString;
|
|
70
|
+
transfer_ref: import("@sinclair/typebox").TString;
|
|
71
|
+
}>;
|
|
72
|
+
export declare const ExternalReferenceReadResultSchema: import("@sinclair/typebox").TObject<{
|
|
73
|
+
upload_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
74
|
+
source: import("@sinclair/typebox").TObject<{
|
|
75
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
76
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
77
|
+
name: import("@sinclair/typebox").TString;
|
|
78
|
+
created_at: import("@sinclair/typebox").TString;
|
|
79
|
+
}>;
|
|
80
|
+
revision: import("@sinclair/typebox").TString;
|
|
81
|
+
sha256: import("@sinclair/typebox").TString;
|
|
82
|
+
size_bytes: import("@sinclair/typebox").TInteger;
|
|
83
|
+
media_type: import("@sinclair/typebox").TString;
|
|
84
|
+
transfer_ref: import("@sinclair/typebox").TString;
|
|
85
|
+
}>;
|
|
86
|
+
export declare const ExternalReferenceHostRequestSchema: import("@sinclair/typebox").TObject<{
|
|
87
|
+
invocation_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
88
|
+
project_identity: import("@sinclair/typebox").TObject<{
|
|
89
|
+
source: import("@sinclair/typebox").TLiteral<"git_config">;
|
|
90
|
+
project_id: import("@sinclair/typebox").TString;
|
|
91
|
+
}>;
|
|
92
|
+
host_auth: import("@sinclair/typebox").TObject<{
|
|
93
|
+
kind: import("@sinclair/typebox").TLiteral<"host_registration_secret_v1">;
|
|
94
|
+
secret: import("@sinclair/typebox").TString;
|
|
95
|
+
}>;
|
|
96
|
+
relay_project_ref: import("@sinclair/typebox").TString;
|
|
97
|
+
host_connection_ref: import("@sinclair/typebox").TString;
|
|
98
|
+
request_ref: import("@sinclair/typebox").TString;
|
|
99
|
+
action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"read">]>;
|
|
100
|
+
source_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
101
|
+
}>;
|
|
102
|
+
export type ExternalReferenceAuthority = Static<typeof ExternalReferenceAuthoritySchema>;
|
|
103
|
+
export type ExternalReferenceControlRequest = Static<typeof ExternalReferenceControlRequestSchema>;
|
|
104
|
+
export type ExternalReferencePrepared = Static<typeof ExternalReferencePreparedSchema>;
|
|
105
|
+
export type ExternalReferenceReadResult = Static<typeof ExternalReferenceReadResultSchema>;
|
|
106
|
+
export type ExternalReferenceHostRequest = Static<typeof ExternalReferenceHostRequestSchema>;
|
|
107
|
+
export declare function isExternalReferenceList(value: unknown): value is ExternalReferenceList;
|
|
108
|
+
export declare function isExternalReferenceReadResult(value: unknown): value is ExternalReferenceReadResult;
|
|
109
|
+
//# sourceMappingURL=external-references.d.ts.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { Value } from "@sinclair/typebox/value";
|
|
3
|
+
import { ExternalReferenceListSchema, } from "../api/external-references.js";
|
|
4
|
+
import { ExternalReferenceDescriptorSchema, ExternalReferenceRefSchema, } from "../api/external-references.js";
|
|
5
|
+
import { HostConnectionRefSchema, EventRefSchema, ProjectIdSchema, RelayProjectRefSchema, RelayUploadRefSchema, } from "../domain/index.js";
|
|
6
|
+
export const EXTERNAL_REFERENCE_CONTROL_PATH = "/internal/v1/external-references";
|
|
7
|
+
export const EXTERNAL_REFERENCE_HOST_PATH = "/host-control/v1/external-references";
|
|
8
|
+
export const ExternalReferenceAuthoritySchema = Type.Object({
|
|
9
|
+
project_ref: RelayProjectRefSchema,
|
|
10
|
+
installation_ref: Type.String({ minLength: 1, maxLength: 512 }),
|
|
11
|
+
binding_ref: Type.String({ minLength: 1, maxLength: 512 }),
|
|
12
|
+
external_subject_ref: Type.String({ pattern: "^open_id:[A-Za-z0-9_-]{1,500}$" }),
|
|
13
|
+
role: Type.Union([Type.Literal("owner"), Type.Literal("member")]),
|
|
14
|
+
}, { additionalProperties: false });
|
|
15
|
+
const common = {
|
|
16
|
+
authority: ExternalReferenceAuthoritySchema,
|
|
17
|
+
request_ref: Type.String({ pattern: "^eref_[a-f0-9]{32}$" }),
|
|
18
|
+
};
|
|
19
|
+
const SourceRead = { source_ref: ExternalReferenceRefSchema };
|
|
20
|
+
// PUT URL is a transient, private Relay-issued staging capability. Never log or persist it.
|
|
21
|
+
export const ExternalReferenceControlRequestSchema = Type.Union([
|
|
22
|
+
Type.Object({ ...common, action: Type.Literal("list") }, { additionalProperties: false }),
|
|
23
|
+
Type.Object({
|
|
24
|
+
...common,
|
|
25
|
+
action: Type.Literal("register"),
|
|
26
|
+
document_url: Type.String({ minLength: 1, maxLength: 2048 }),
|
|
27
|
+
}, { additionalProperties: false }),
|
|
28
|
+
Type.Object({ ...common, ...SourceRead, action: Type.Literal("prepare") }, { additionalProperties: false }),
|
|
29
|
+
Type.Object({
|
|
30
|
+
...common,
|
|
31
|
+
...SourceRead,
|
|
32
|
+
action: Type.Literal("transfer"),
|
|
33
|
+
transfer_ref: Type.String({ pattern: "^transfer_[a-f0-9]{32}$" }),
|
|
34
|
+
put_url: Type.String({ maxLength: 8192, pattern: "^https://" }),
|
|
35
|
+
headers: Type.Record(Type.String({ maxLength: 128 }), Type.String({ maxLength: 2048 })),
|
|
36
|
+
}, { additionalProperties: false }),
|
|
37
|
+
]);
|
|
38
|
+
export const ExternalReferencePreparedSchema = Type.Object({
|
|
39
|
+
source: ExternalReferenceDescriptorSchema,
|
|
40
|
+
revision: Type.String({ minLength: 1, maxLength: 256 }),
|
|
41
|
+
sha256: Type.String({ pattern: "^[a-f0-9]{64}$" }),
|
|
42
|
+
size_bytes: Type.Integer({ minimum: 0, maximum: 10485760 }),
|
|
43
|
+
media_type: Type.String({ minLength: 1, maxLength: 128 }),
|
|
44
|
+
transfer_ref: Type.String({ pattern: "^transfer_[a-f0-9]{32}$" }),
|
|
45
|
+
}, { additionalProperties: false });
|
|
46
|
+
export const ExternalReferenceReadResultSchema = Type.Object({
|
|
47
|
+
...ExternalReferencePreparedSchema.properties,
|
|
48
|
+
upload_id: Type.Optional(RelayUploadRefSchema),
|
|
49
|
+
}, { additionalProperties: false });
|
|
50
|
+
export const ExternalReferenceHostRequestSchema = Type.Object({
|
|
51
|
+
invocation_ref: Type.Optional(EventRefSchema),
|
|
52
|
+
project_identity: Type.Object({ source: Type.Literal("git_config"), project_id: ProjectIdSchema }, { additionalProperties: false }),
|
|
53
|
+
host_auth: Type.Object({
|
|
54
|
+
kind: Type.Literal("host_registration_secret_v1"),
|
|
55
|
+
secret: Type.String({ minLength: 1, maxLength: 512 }),
|
|
56
|
+
}, { additionalProperties: false }),
|
|
57
|
+
relay_project_ref: RelayProjectRefSchema,
|
|
58
|
+
host_connection_ref: HostConnectionRefSchema,
|
|
59
|
+
request_ref: common.request_ref,
|
|
60
|
+
action: Type.Union([Type.Literal("list"), Type.Literal("read")]),
|
|
61
|
+
source_ref: Type.Optional(ExternalReferenceRefSchema),
|
|
62
|
+
}, { additionalProperties: false });
|
|
63
|
+
export function isExternalReferenceList(value) {
|
|
64
|
+
return Value.Check(ExternalReferenceListSchema, value);
|
|
65
|
+
}
|
|
66
|
+
export function isExternalReferenceReadResult(value) {
|
|
67
|
+
return (Value.Check(ExternalReferenceReadResultSchema, value) &&
|
|
68
|
+
(value.size_bytes === 0 || value.upload_id !== undefined));
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=external-references.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { type Static } from "@sinclair/typebox";
|
|
2
|
+
export declare const FEISHU_DOCUMENT_CONTROL_PATH = "/internal/v1/feishu-documents";
|
|
3
|
+
export declare const FeishuDocumentControlRequestSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
4
|
+
action: import("@sinclair/typebox").TLiteral<"list">;
|
|
5
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
6
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
7
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
8
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
9
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
10
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
11
|
+
}>;
|
|
12
|
+
diagnostic_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
13
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
14
|
+
action: import("@sinclair/typebox").TLiteral<"connect">;
|
|
15
|
+
document_id: import("@sinclair/typebox").TString;
|
|
16
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
17
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
18
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
19
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
20
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
21
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
22
|
+
}>;
|
|
23
|
+
diagnostic_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
24
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
25
|
+
action: import("@sinclair/typebox").TLiteral<"connect_wiki">;
|
|
26
|
+
node_token: import("@sinclair/typebox").TString;
|
|
27
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
28
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
29
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
30
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
31
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
32
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
33
|
+
}>;
|
|
34
|
+
diagnostic_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
35
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
36
|
+
expected_updated_at: import("@sinclair/typebox").TString;
|
|
37
|
+
action: import("@sinclair/typebox").TLiteral<"refresh">;
|
|
38
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
39
|
+
authority: import("@sinclair/typebox").TObject<{
|
|
40
|
+
project_ref: import("@sinclair/typebox").TString;
|
|
41
|
+
installation_ref: import("@sinclair/typebox").TString;
|
|
42
|
+
binding_ref: import("@sinclair/typebox").TString;
|
|
43
|
+
external_subject_ref: import("@sinclair/typebox").TString;
|
|
44
|
+
role: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"owner">, import("@sinclair/typebox").TLiteral<"member">]>;
|
|
45
|
+
}>;
|
|
46
|
+
diagnostic_id: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
47
|
+
}>]>;
|
|
48
|
+
export type FeishuDocumentControlRequest = Static<typeof FeishuDocumentControlRequestSchema>;
|
|
49
|
+
//# sourceMappingURL=feishu-documents.d.ts.map
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Type } from "@sinclair/typebox";
|
|
2
|
+
import { FeishuDocumentSourceRefSchema, RefreshFeishuDocumentBodySchema, } from "../api/feishu-documents.js";
|
|
3
|
+
import { RelayProjectRefSchema } from "../domain/index.js";
|
|
4
|
+
export const FEISHU_DOCUMENT_CONTROL_PATH = "/internal/v1/feishu-documents";
|
|
5
|
+
const authority = Type.Object({
|
|
6
|
+
project_ref: RelayProjectRefSchema,
|
|
7
|
+
installation_ref: Type.String({ minLength: 1, maxLength: 512 }),
|
|
8
|
+
binding_ref: Type.String({ minLength: 1, maxLength: 512 }),
|
|
9
|
+
external_subject_ref: Type.String({ pattern: "^open_id:[A-Za-z0-9_-]{1,500}$" }),
|
|
10
|
+
role: Type.Union([Type.Literal("owner"), Type.Literal("member")]),
|
|
11
|
+
}, { additionalProperties: false });
|
|
12
|
+
const common = {
|
|
13
|
+
authority,
|
|
14
|
+
diagnostic_id: Type.Optional(Type.String({ pattern: "^fdiag_[a-f0-9]{32}$" })),
|
|
15
|
+
};
|
|
16
|
+
// The private document locator travels only in this authenticated Relay -> Integration body.
|
|
17
|
+
export const FeishuDocumentControlRequestSchema = Type.Union([
|
|
18
|
+
Type.Object({ ...common, action: Type.Literal("list") }, { additionalProperties: false }),
|
|
19
|
+
Type.Object({
|
|
20
|
+
...common,
|
|
21
|
+
action: Type.Literal("connect"),
|
|
22
|
+
document_id: Type.String({ pattern: "^[A-Za-z0-9]{27}$" }),
|
|
23
|
+
}, { additionalProperties: false }),
|
|
24
|
+
Type.Object({
|
|
25
|
+
...common,
|
|
26
|
+
action: Type.Literal("connect_wiki"),
|
|
27
|
+
node_token: Type.String({ pattern: "^[A-Za-z0-9]{1,999}$" }),
|
|
28
|
+
}, { additionalProperties: false }),
|
|
29
|
+
Type.Object({
|
|
30
|
+
...common,
|
|
31
|
+
action: Type.Literal("refresh"),
|
|
32
|
+
source_ref: FeishuDocumentSourceRefSchema,
|
|
33
|
+
...RefreshFeishuDocumentBodySchema.properties,
|
|
34
|
+
}, { additionalProperties: false }),
|
|
35
|
+
]);
|
|
36
|
+
//# sourceMappingURL=feishu-documents.js.map
|
|
@@ -73,4 +73,6 @@ export declare function isFeishuPlatformSessionContext(value: unknown): value is
|
|
|
73
73
|
export declare function parseFeishuPlatformSessionContext(value: unknown): FeishuPlatformSessionContext | null;
|
|
74
74
|
export * from "./platform-integration.js";
|
|
75
75
|
export * from "./feishu-user-credentials.js";
|
|
76
|
+
export * from "./feishu-documents.js";
|
|
77
|
+
export * from "./external-references.js";
|
|
76
78
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -67,4 +67,6 @@ export function parseFeishuPlatformSessionContext(value) {
|
|
|
67
67
|
}
|
|
68
68
|
export * from "./platform-integration.js";
|
|
69
69
|
export * from "./feishu-user-credentials.js";
|
|
70
|
+
export * from "./feishu-documents.js";
|
|
71
|
+
export * from "./external-references.js";
|
|
70
72
|
//# sourceMappingURL=index.js.map
|
|
@@ -217,6 +217,12 @@ export declare const PreIdentityReferenceAttachmentSourceSchema: import("@sincla
|
|
|
217
217
|
adapter_version: import("@sinclair/typebox").TString;
|
|
218
218
|
}>;
|
|
219
219
|
export declare const NormalizedConversationSourceSchema: import("@sinclair/typebox").TObject<{
|
|
220
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
221
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
222
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
223
|
+
name: import("@sinclair/typebox").TString;
|
|
224
|
+
created_at: import("@sinclair/typebox").TString;
|
|
225
|
+
}>>>;
|
|
220
226
|
locator: import("@sinclair/typebox").TObject<{
|
|
221
227
|
conversation: import("@sinclair/typebox").TObject<{
|
|
222
228
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -287,6 +293,12 @@ export declare const NormalizedConversationSourceSchema: import("@sinclair/typeb
|
|
|
287
293
|
adapter_version: import("@sinclair/typebox").TString;
|
|
288
294
|
}>;
|
|
289
295
|
export declare const PreIdentityNormalizedConversationSourceSchema: import("@sinclair/typebox").TObject<{
|
|
296
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
297
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
298
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
299
|
+
name: import("@sinclair/typebox").TString;
|
|
300
|
+
created_at: import("@sinclair/typebox").TString;
|
|
301
|
+
}>>>;
|
|
290
302
|
locator: import("@sinclair/typebox").TObject<{
|
|
291
303
|
conversation: import("@sinclair/typebox").TObject<{
|
|
292
304
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -466,6 +478,12 @@ export declare const ConversationSourceIngestionEnvelopeSchema: import("@sinclai
|
|
|
466
478
|
verified_at: import("@sinclair/typebox").TString;
|
|
467
479
|
}>;
|
|
468
480
|
source: import("@sinclair/typebox").TObject<{
|
|
481
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
482
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
483
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
484
|
+
name: import("@sinclair/typebox").TString;
|
|
485
|
+
created_at: import("@sinclair/typebox").TString;
|
|
486
|
+
}>>>;
|
|
469
487
|
locator: import("@sinclair/typebox").TObject<{
|
|
470
488
|
conversation: import("@sinclair/typebox").TObject<{
|
|
471
489
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -661,6 +679,12 @@ export declare const ConversationIngestionEnvelopeSchema: import("@sinclair/type
|
|
|
661
679
|
verified_at: import("@sinclair/typebox").TString;
|
|
662
680
|
}>;
|
|
663
681
|
source: import("@sinclair/typebox").TObject<{
|
|
682
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
683
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
684
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
685
|
+
name: import("@sinclair/typebox").TString;
|
|
686
|
+
created_at: import("@sinclair/typebox").TString;
|
|
687
|
+
}>>>;
|
|
664
688
|
locator: import("@sinclair/typebox").TObject<{
|
|
665
689
|
conversation: import("@sinclair/typebox").TObject<{
|
|
666
690
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -883,6 +907,12 @@ export declare const IntegrationConversationSourceDeliveryRequestSchema: import(
|
|
|
883
907
|
attempt: import("@sinclair/typebox").TInteger;
|
|
884
908
|
}>;
|
|
885
909
|
source: import("@sinclair/typebox").TObject<{
|
|
910
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
911
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
912
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
913
|
+
name: import("@sinclair/typebox").TString;
|
|
914
|
+
created_at: import("@sinclair/typebox").TString;
|
|
915
|
+
}>>>;
|
|
886
916
|
locator: import("@sinclair/typebox").TObject<{
|
|
887
917
|
conversation: import("@sinclair/typebox").TObject<{
|
|
888
918
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -1438,6 +1468,12 @@ export declare const TrustedConversationSourceIngestionCommandSchema: import("@s
|
|
|
1438
1468
|
verified_at: import("@sinclair/typebox").TString;
|
|
1439
1469
|
}>;
|
|
1440
1470
|
source: import("@sinclair/typebox").TObject<{
|
|
1471
|
+
external_references: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
1472
|
+
source_ref: import("@sinclair/typebox").TString;
|
|
1473
|
+
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"feishu_docx">, import("@sinclair/typebox").TLiteral<"feishu_file">, import("@sinclair/typebox").TLiteral<"feishu_image">]>;
|
|
1474
|
+
name: import("@sinclair/typebox").TString;
|
|
1475
|
+
created_at: import("@sinclair/typebox").TString;
|
|
1476
|
+
}>>>;
|
|
1441
1477
|
locator: import("@sinclair/typebox").TObject<{
|
|
1442
1478
|
conversation: import("@sinclair/typebox").TObject<{
|
|
1443
1479
|
installation: import("@sinclair/typebox").TObject<{
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { Value } from "@sinclair/typebox/value";
|
|
3
|
+
import { ExternalReferenceDescriptorSchema } from "../api/external-references.js";
|
|
3
4
|
import { IdempotencyKeySchema, IsoDateTimeStringSchema, MessageIdSchema, RelayAccountRefSchema, RelayProjectRefSchema, } from "../domain/index.js";
|
|
4
5
|
import { MAX_REFERENCE_STAGED_UPLOAD_BYTES, PresignedUploadPutSchema, ReferenceStagedUploadReferenceProperties, RelayUploadProjectionSchema, } from "../api/uploads.js";
|
|
5
6
|
export const PlatformAdapterKeySchema = Type.String({
|
|
@@ -132,6 +133,7 @@ export const PreIdentityReferenceAttachmentSourceSchema = Type.Object({
|
|
|
132
133
|
adapter_version: Type.String({ minLength: 1, maxLength: 128 }),
|
|
133
134
|
}, { additionalProperties: false });
|
|
134
135
|
export const NormalizedConversationSourceSchema = Type.Object({
|
|
136
|
+
external_references: Type.Optional(Type.Array(ExternalReferenceDescriptorSchema, { minItems: 1, maxItems: 16 })),
|
|
135
137
|
locator: ExternalMessageLocatorSchema,
|
|
136
138
|
revision_ref: ExternalObjectRefSchema,
|
|
137
139
|
author: NormalizedConversationAuthorSchema,
|
|
@@ -142,6 +144,7 @@ export const NormalizedConversationSourceSchema = Type.Object({
|
|
|
142
144
|
adapter_version: Type.String({ minLength: 1, maxLength: 128 }),
|
|
143
145
|
}, { additionalProperties: false });
|
|
144
146
|
export const PreIdentityNormalizedConversationSourceSchema = Type.Object({
|
|
147
|
+
external_references: Type.Optional(Type.Array(ExternalReferenceDescriptorSchema, { minItems: 1, maxItems: 16 })),
|
|
145
148
|
locator: ExternalMessageLocatorSchema,
|
|
146
149
|
revision_ref: ExternalObjectRefSchema,
|
|
147
150
|
author: PreIdentityConversationAuthorSchema,
|