@proteos/sdk 0.32.0 → 0.33.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.
@@ -106,10 +106,17 @@ export interface MeetingService {
106
106
  /** Make the bot leave the meeting and end the conversation (by conversation id). */
107
107
  remove(conversationId: string): Promise<Conversation>
108
108
  /**
109
- * Regenerate this meeting conversation's markdown summary from its stored
110
- * transcript, overwriting any existing one. Resolves with the updated
111
- * conversation (its fresh `summary`). Rejects with `no_transcript` when the
112
- * conversation has no completed transcript to summarize.
109
+ * START regenerating this meeting conversation's markdown summary from its
110
+ * stored transcript, overwriting any existing one when it lands. Generation
111
+ * runs server-side beyond this request, so the promise resolves as soon as the
112
+ * conversation is CLAIMED with `summary_status: 'processing'` and the OLD
113
+ * `summary` still attached. Poll `conversations.get(id)` until
114
+ * `summary_status` is `completed` (or `failed`) to read the new one.
115
+ *
116
+ * Rejects with `no_transcript` when the conversation has no completed
117
+ * transcript to summarize, `summarization_unavailable` when the environment
118
+ * has no generator configured, and `summary_in_progress` when a generation is
119
+ * already running for this conversation.
113
120
  */
114
121
  summarize(conversationId: string): Promise<Conversation>
115
122
  }
@@ -41,6 +41,7 @@ export type Channel =
41
41
  export type ConnectorKey =
42
42
  | 'slack'
43
43
  | 'gmail'
44
+ | 'outlook'
44
45
  | 'echo'
45
46
  | 'unipile-whatsapp'
46
47
  | 'unipile-linkedin'
@@ -73,6 +74,15 @@ export type ConnectionStatus = 'pending' | 'active' | 'error' | 'revoked'
73
74
  * drafting) — hidden from the default list until the first successful send.
74
75
  */
75
76
  export type ConversationStatus = 'active' | 'ended' | 'archived' | 'draft'
77
+ /**
78
+ * Generation lifecycle of a conversation's `summary`. `none` is the resting
79
+ * default — no summary exists and none is being produced, the state of every
80
+ * conversation that is not a transcript-backed meeting. `processing` is claimed
81
+ * for the duration of one generation run (automatic at transcript attach, or a
82
+ * manual `meetings.summarize()`), so any client can render "Summarizing…"
83
+ * without having started the run itself.
84
+ */
85
+ export type ConversationSummaryStatus = 'none' | 'processing' | 'completed' | 'failed'
76
86
  export type AgentListenerTriggerType = 'always' | 'mention' | 'channel' | 'keyword'
77
87
 
78
88
  export interface UserRef {
@@ -207,6 +217,16 @@ export interface Conversation {
207
217
  * conversations, editable via update(). Absent when no summary exists.
208
218
  */
209
219
  summary?: string
220
+ /**
221
+ * Generation lifecycle of `summary`. Poll `conversations.get(id)` while this
222
+ * reads `processing` to pick up the finished summary.
223
+ */
224
+ summary_status: ConversationSummaryStatus
225
+ /**
226
+ * When the current `processing` run was claimed; absent otherwise. Bounds the
227
+ * claim server-side and gives clients an elapsed time to show.
228
+ */
229
+ summary_started_at?: string
210
230
  status: ConversationStatus
211
231
  /**
212
232
  * Room directory row a room-borne thread (Slack channel conversation) lives
package/src/index.ts CHANGED
@@ -52,6 +52,8 @@ export type {
52
52
  CreatePromptRequest,
53
53
  CreateSessionRequest,
54
54
  CreateToolRequest,
55
+ DependentAgent,
56
+ DependentSyncResult,
55
57
  EmptyPayload,
56
58
  ErrorPayload,
57
59
  EventType,
@@ -221,6 +223,7 @@ export type {
221
223
  ConversationParticipant,
222
224
  ConversationService,
223
225
  ConversationStatus,
226
+ ConversationSummaryStatus,
224
227
  CreateAgentListenerRequest,
225
228
  CreateConnectionRequest,
226
229
  CreateConversationFilterRequest,
@@ -587,7 +590,6 @@ export {
587
590
  } from './types/index.js'
588
591
  export type {
589
592
  AgentActionParams,
590
- AgentKickoff,
591
593
  BinaryRef,
592
594
  ConnectionEndpoint,
593
595
  CreateWorkflowRequest,
@@ -611,7 +613,6 @@ export type {
611
613
  ListExecutionsOptions,
612
614
  ListWorkflowsOptions,
613
615
  ManualTriggerParams,
614
- MessageKickoff,
615
616
  MessageTriggerParams,
616
617
  NodeDescriptor,
617
618
  NodeExecution,
@@ -625,8 +626,6 @@ export type {
625
626
  NodeTypeService,
626
627
  NodeTypeStatus,
627
628
  OnErrorPolicy,
628
- OutcomeKickoff,
629
- OutcomeRubric,
630
629
  PairedItem,
631
630
  PortSpec,
632
631
  PropertyOption,
@@ -641,7 +640,6 @@ export type {
641
640
  WebhookTriggerParams,
642
641
  Workflow,
643
642
  WorkflowConnection,
644
- WorkflowContentBlock,
645
643
  WorkflowExecution,
646
644
  WorkflowGraph,
647
645
  WorkflowNode,
@@ -100,6 +100,12 @@ export type ComponentElement = CommonProps & {
100
100
  type: 'component'
101
101
  component_slug: string
102
102
  props?: Record<string, unknown>
103
+ /** Placeholder height (px) reserved while the component bundle loads, used
104
+ * ONLY when `height` is unset/auto. Does not constrain the rendered
105
+ * component — it auto-sizes to real content after load. Reserving roughly
106
+ * the right space keeps the reveal from shoving content below it. Defaults
107
+ * to the host's 80px fallback when unset. */
108
+ reserved_height?: number
103
109
  }
104
110
 
105
111
  export type DividerElement = CommonProps & {
@@ -195,6 +201,7 @@ export const LayoutElementSchema: z.ZodType<LayoutElement> = z.lazy(() =>
195
201
  ...commonPropsShape,
196
202
  component_slug: z.string().min(1),
197
203
  props: z.record(z.unknown()).optional(),
204
+ reserved_height: z.number().positive().optional(),
198
205
  }),
199
206
  z.object({
200
207
  type: z.literal('divider'),
@@ -42,7 +42,6 @@ export type { ExecutionService } from './executions.js'
42
42
  export type { NodeTypeService } from './node-types.js'
43
43
  export type {
44
44
  AgentActionParams,
45
- AgentKickoff,
46
45
  BinaryRef,
47
46
  ConnectionEndpoint,
48
47
  CreateWorkflowRequest,
@@ -66,7 +65,6 @@ export type {
66
65
  ListExecutionsOptions,
67
66
  ListWorkflowsOptions,
68
67
  ManualTriggerParams,
69
- MessageKickoff,
70
68
  MessageTriggerParams,
71
69
  NodeDescriptor,
72
70
  NodeExecution,
@@ -79,8 +77,6 @@ export type {
79
77
  NodeTypeKey,
80
78
  NodeTypeStatus,
81
79
  OnErrorPolicy,
82
- OutcomeKickoff,
83
- OutcomeRubric,
84
80
  PairedItem,
85
81
  PortSpec,
86
82
  PropertyOption,
@@ -95,7 +91,6 @@ export type {
95
91
  WebhookTriggerParams,
96
92
  Workflow,
97
93
  WorkflowConnection,
98
- WorkflowContentBlock,
99
94
  WorkflowExecution,
100
95
  WorkflowGraph,
101
96
  WorkflowNode,
@@ -13,6 +13,7 @@
13
13
  * workflow; per-node results live in append-only NodeExecution rows.
14
14
  */
15
15
 
16
+ import type { Attribute } from '../meta/types.js'
16
17
  import type { AuditFields, ListOptions, UserRef } from '../types/common.js'
17
18
 
18
19
  // ---------------------------------------------------------------------------
@@ -163,6 +164,8 @@ export type PropertyType =
163
164
  | 'fixed_collection'
164
165
  | 'credentials_select'
165
166
  | 'button'
167
+ /** Edits a platform attribute list (`Attribute[]`) via the shared attribute schema builder. */
168
+ | 'attribute_schema'
166
169
  // Wave 2 (editor support lands with Phase 3):
167
170
  | 'resource_locator'
168
171
  | 'resource_mapper'
@@ -358,51 +361,36 @@ export interface MessageTriggerParams {
358
361
  export type KickoffType = 'message' | 'outcome'
359
362
 
360
363
  /**
361
- * Where a kickoff draws its instruction text from: typed inline (`manual`) or
362
- * resolved from a reusable agent-service Prompt by key (`prompt`) at run time.
364
+ * Where a kickoff slot draws its instruction text from: typed inline
365
+ * (`manual`) or resolved from a reusable agent-service Prompt by key
366
+ * (`prompt`) at run time.
363
367
  */
364
368
  export type KickoffSource = 'manual' | 'prompt'
365
369
 
366
- export interface WorkflowContentBlock {
367
- type: 'text' | 'file'
368
- text?: string
369
- file_id?: string
370
- }
371
-
372
- export interface MessageKickoff {
373
- source?: KickoffSource
374
- /** Inline content blocks (manual source). */
375
- content?: WorkflowContentBlock[]
376
- /** Prompt key whose body becomes the message text (prompt source). */
377
- prompt_key?: string
378
- }
379
-
380
- export interface OutcomeRubric {
381
- type: 'text' | 'file'
382
- content?: string
383
- file_id?: string
384
- }
385
-
386
- export interface OutcomeKickoff {
387
- /** Description and rubric are independently sourced (manual vs prompt). */
370
+ /**
371
+ * Flat, descriptor-driven parameters of the `action.agent` node (gated by
372
+ * display_options on `kickoff_type` / `*_source`). `output_schema` declares
373
+ * the node's structured output as platform attributes — the agent records it
374
+ * via the session-scoped `set_output` tool; `is_output_required` fails the
375
+ * node when the agent finishes without setting it.
376
+ */
377
+ export interface AgentActionParams {
378
+ agent_key: string
379
+ kickoff_type: KickoffType
380
+ message_source?: KickoffSource
381
+ message_text?: string
382
+ message_prompt_key?: string
388
383
  description_source?: KickoffSource
389
384
  description?: string
390
385
  description_prompt_key?: string
391
386
  rubric_source?: KickoffSource
392
- rubric?: OutcomeRubric
387
+ rubric_type?: 'text' | 'file'
388
+ rubric_content?: string
389
+ rubric_file_id?: string
393
390
  rubric_prompt_key?: string
394
391
  max_iterations?: number
395
- }
396
-
397
- export interface AgentKickoff {
398
- type: KickoffType
399
- message?: MessageKickoff
400
- outcome?: OutcomeKickoff
401
- }
402
-
403
- export interface AgentActionParams {
404
- agent_key: string
405
- kickoff: AgentKickoff
392
+ output_schema?: Attribute[]
393
+ is_output_required?: boolean
406
394
  }
407
395
 
408
396
  // ---------------------------------------------------------------------------