@pellux/goodvibes-contracts 1.3.2 → 1.4.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/artifacts/operator-contract.json +181 -6
- package/dist/generated/foundation-client-types.d.ts +35 -0
- package/dist/generated/foundation-client-types.d.ts.map +1 -1
- package/dist/generated/foundation-metadata.d.ts +2 -2
- package/dist/generated/foundation-metadata.js +2 -2
- package/dist/generated/operator-contract.d.ts.map +1 -1
- package/dist/generated/operator-contract.js +181 -6
- package/dist/generated/operator-method-ids.d.ts +1 -1
- package/dist/generated/operator-method-ids.d.ts.map +1 -1
- package/dist/generated/operator-method-ids.js +2 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"product": {
|
|
4
4
|
"id": "goodvibes",
|
|
5
5
|
"surface": "operator",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.4.0"
|
|
7
7
|
},
|
|
8
8
|
"auth": {
|
|
9
9
|
"modes": [
|
|
@@ -22067,6 +22067,16 @@
|
|
|
22067
22067
|
},
|
|
22068
22068
|
"createdAt": {
|
|
22069
22069
|
"type": "number"
|
|
22070
|
+
},
|
|
22071
|
+
"deliveryState": {
|
|
22072
|
+
"type": "string",
|
|
22073
|
+
"enum": [
|
|
22074
|
+
"cancelled",
|
|
22075
|
+
"queued"
|
|
22076
|
+
]
|
|
22077
|
+
},
|
|
22078
|
+
"inReplyTo": {
|
|
22079
|
+
"type": "string"
|
|
22070
22080
|
}
|
|
22071
22081
|
},
|
|
22072
22082
|
"required": [
|
|
@@ -22145,6 +22155,99 @@
|
|
|
22145
22155
|
},
|
|
22146
22156
|
"invokable": true
|
|
22147
22157
|
},
|
|
22158
|
+
{
|
|
22159
|
+
"id": "companion.chat.messages.steer",
|
|
22160
|
+
"title": "Steer Companion Chat (Interrupt And Send)",
|
|
22161
|
+
"description": "Send a message that runs IMMEDIATELY, interrupting the in-flight turn if one is running. The message jumps to the front of the pending-turn queue; the active turn is cancelled through the same finalization path as companion.chat.turns.cancel (any non-empty partial reply is persisted with `deliveryState: \"cancelled\"` and the terminal `turn.cancelled` event reaches every subscriber), then the steered message's turn starts. Messages queued behind an active turn keep their places behind the steer. With no turn running this behaves as an ordinary send. Accepts the same payload as companion.chat.messages.create (`body`/`content`, `attachments`, `metadata`). Returns the new message id, `steered: true`, and `cancelledTurnId` when a turn was interrupted. Ordinary sends posted while a turn is running are QUEUED (transcript-visible immediately with `deliveryState: \"queued\"`, answered in order) — steer is the explicit jump-the-line verb.",
|
|
22162
|
+
"category": "companion",
|
|
22163
|
+
"source": "builtin",
|
|
22164
|
+
"access": "authenticated",
|
|
22165
|
+
"transport": [
|
|
22166
|
+
"http",
|
|
22167
|
+
"ws"
|
|
22168
|
+
],
|
|
22169
|
+
"scopes": [
|
|
22170
|
+
"write:sessions"
|
|
22171
|
+
],
|
|
22172
|
+
"http": {
|
|
22173
|
+
"method": "POST",
|
|
22174
|
+
"path": "/api/companion/chat/sessions/{sessionId}/messages/steer"
|
|
22175
|
+
},
|
|
22176
|
+
"inputSchema": {
|
|
22177
|
+
"type": "object",
|
|
22178
|
+
"properties": {
|
|
22179
|
+
"sessionId": {
|
|
22180
|
+
"type": "string"
|
|
22181
|
+
},
|
|
22182
|
+
"body": {
|
|
22183
|
+
"type": "string"
|
|
22184
|
+
},
|
|
22185
|
+
"content": {
|
|
22186
|
+
"type": "string"
|
|
22187
|
+
},
|
|
22188
|
+
"attachments": {
|
|
22189
|
+
"type": "array",
|
|
22190
|
+
"items": {
|
|
22191
|
+
"type": "object",
|
|
22192
|
+
"properties": {
|
|
22193
|
+
"artifactId": {
|
|
22194
|
+
"type": "string"
|
|
22195
|
+
},
|
|
22196
|
+
"label": {
|
|
22197
|
+
"type": "string"
|
|
22198
|
+
},
|
|
22199
|
+
"metadata": {
|
|
22200
|
+
"type": "object",
|
|
22201
|
+
"properties": {},
|
|
22202
|
+
"additionalProperties": false
|
|
22203
|
+
}
|
|
22204
|
+
},
|
|
22205
|
+
"required": [
|
|
22206
|
+
"artifactId"
|
|
22207
|
+
],
|
|
22208
|
+
"additionalProperties": false
|
|
22209
|
+
}
|
|
22210
|
+
},
|
|
22211
|
+
"metadata": {
|
|
22212
|
+
"type": "object",
|
|
22213
|
+
"properties": {},
|
|
22214
|
+
"additionalProperties": false
|
|
22215
|
+
}
|
|
22216
|
+
},
|
|
22217
|
+
"required": [
|
|
22218
|
+
"sessionId"
|
|
22219
|
+
],
|
|
22220
|
+
"additionalProperties": true
|
|
22221
|
+
},
|
|
22222
|
+
"outputSchema": {
|
|
22223
|
+
"type": "object",
|
|
22224
|
+
"properties": {
|
|
22225
|
+
"sessionId": {
|
|
22226
|
+
"type": "string"
|
|
22227
|
+
},
|
|
22228
|
+
"messageId": {
|
|
22229
|
+
"type": "string"
|
|
22230
|
+
},
|
|
22231
|
+
"steered": {
|
|
22232
|
+
"type": "boolean"
|
|
22233
|
+
},
|
|
22234
|
+
"cancelledTurnId": {
|
|
22235
|
+
"type": "string"
|
|
22236
|
+
},
|
|
22237
|
+
"turnStarted": {
|
|
22238
|
+
"type": "boolean"
|
|
22239
|
+
}
|
|
22240
|
+
},
|
|
22241
|
+
"required": [
|
|
22242
|
+
"sessionId",
|
|
22243
|
+
"messageId",
|
|
22244
|
+
"steered",
|
|
22245
|
+
"turnStarted"
|
|
22246
|
+
],
|
|
22247
|
+
"additionalProperties": false
|
|
22248
|
+
},
|
|
22249
|
+
"invokable": true
|
|
22250
|
+
},
|
|
22148
22251
|
{
|
|
22149
22252
|
"id": "companion.chat.sessions.close",
|
|
22150
22253
|
"title": "Close Companion Chat Session",
|
|
@@ -22611,6 +22714,16 @@
|
|
|
22611
22714
|
},
|
|
22612
22715
|
"createdAt": {
|
|
22613
22716
|
"type": "number"
|
|
22717
|
+
},
|
|
22718
|
+
"deliveryState": {
|
|
22719
|
+
"type": "string",
|
|
22720
|
+
"enum": [
|
|
22721
|
+
"cancelled",
|
|
22722
|
+
"queued"
|
|
22723
|
+
]
|
|
22724
|
+
},
|
|
22725
|
+
"inReplyTo": {
|
|
22726
|
+
"type": "string"
|
|
22614
22727
|
}
|
|
22615
22728
|
},
|
|
22616
22729
|
"required": [
|
|
@@ -22919,6 +23032,68 @@
|
|
|
22919
23032
|
},
|
|
22920
23033
|
"invokable": true
|
|
22921
23034
|
},
|
|
23035
|
+
{
|
|
23036
|
+
"id": "companion.chat.turns.cancel",
|
|
23037
|
+
"title": "Cancel Companion Chat Turn",
|
|
23038
|
+
"description": "Stop the in-flight turn for a companion chat session — a true server-side stop: the provider stream is aborted, any non-empty partial reply is persisted to the transcript with an explicit `deliveryState: \"cancelled\"` marker (an honest partial, never disguised as a complete reply) AND committed to the model-facing conversation history with an explicit interruption note — later turns can reason about what the user saw and stopped, which is usually what a follow-up or steer refers to, and the terminal `turn.cancelled` event is published to every subscriber of the session stream so a stop from one client converges on all others. Any announced tool call without a result is closed with a synthetic error `turn.tool_result` before the terminal event. Optional `turnId` guards against cancelling a newer turn a stale stop raced against (409 TURN_MISMATCH). No turn in flight is the benign 404 NO_ACTIVE_TURN (the turn finished before the stop landed). Repeat cancels are idempotent successes. The session stays open; the next message starts a fresh turn normally.",
|
|
23039
|
+
"category": "companion",
|
|
23040
|
+
"source": "builtin",
|
|
23041
|
+
"access": "authenticated",
|
|
23042
|
+
"transport": [
|
|
23043
|
+
"http",
|
|
23044
|
+
"ws"
|
|
23045
|
+
],
|
|
23046
|
+
"scopes": [
|
|
23047
|
+
"write:sessions"
|
|
23048
|
+
],
|
|
23049
|
+
"http": {
|
|
23050
|
+
"method": "POST",
|
|
23051
|
+
"path": "/api/companion/chat/sessions/{sessionId}/turns/cancel"
|
|
23052
|
+
},
|
|
23053
|
+
"inputSchema": {
|
|
23054
|
+
"type": "object",
|
|
23055
|
+
"properties": {
|
|
23056
|
+
"sessionId": {
|
|
23057
|
+
"type": "string"
|
|
23058
|
+
},
|
|
23059
|
+
"turnId": {
|
|
23060
|
+
"type": "string"
|
|
23061
|
+
}
|
|
23062
|
+
},
|
|
23063
|
+
"required": [
|
|
23064
|
+
"sessionId"
|
|
23065
|
+
],
|
|
23066
|
+
"additionalProperties": true
|
|
23067
|
+
},
|
|
23068
|
+
"outputSchema": {
|
|
23069
|
+
"type": "object",
|
|
23070
|
+
"properties": {
|
|
23071
|
+
"sessionId": {
|
|
23072
|
+
"type": "string"
|
|
23073
|
+
},
|
|
23074
|
+
"turnId": {
|
|
23075
|
+
"type": "string"
|
|
23076
|
+
},
|
|
23077
|
+
"cancelled": {
|
|
23078
|
+
"type": "boolean"
|
|
23079
|
+
},
|
|
23080
|
+
"alreadyCancelled": {
|
|
23081
|
+
"type": "boolean"
|
|
23082
|
+
},
|
|
23083
|
+
"partialPersisted": {
|
|
23084
|
+
"type": "boolean"
|
|
23085
|
+
}
|
|
23086
|
+
},
|
|
23087
|
+
"required": [
|
|
23088
|
+
"sessionId",
|
|
23089
|
+
"turnId",
|
|
23090
|
+
"cancelled",
|
|
23091
|
+
"partialPersisted"
|
|
23092
|
+
],
|
|
23093
|
+
"additionalProperties": false
|
|
23094
|
+
},
|
|
23095
|
+
"invokable": true
|
|
23096
|
+
},
|
|
22922
23097
|
{
|
|
22923
23098
|
"id": "config.get",
|
|
22924
23099
|
"title": "Get Config",
|
|
@@ -81377,10 +81552,10 @@
|
|
|
81377
81552
|
}
|
|
81378
81553
|
],
|
|
81379
81554
|
"schemaCoverage": {
|
|
81380
|
-
"methods":
|
|
81381
|
-
"typedInputs":
|
|
81555
|
+
"methods": 329,
|
|
81556
|
+
"typedInputs": 329,
|
|
81382
81557
|
"genericInputs": 0,
|
|
81383
|
-
"typedOutputs":
|
|
81558
|
+
"typedOutputs": 329,
|
|
81384
81559
|
"genericOutputs": 0
|
|
81385
81560
|
},
|
|
81386
81561
|
"eventCoverage": {
|
|
@@ -81389,8 +81564,8 @@
|
|
|
81389
81564
|
"withWireEvents": 31
|
|
81390
81565
|
},
|
|
81391
81566
|
"validationCoverage": {
|
|
81392
|
-
"methods":
|
|
81393
|
-
"validated":
|
|
81567
|
+
"methods": 329,
|
|
81568
|
+
"validated": 327,
|
|
81394
81569
|
"skippedGeneric": 0,
|
|
81395
81570
|
"skippedUntyped": 2
|
|
81396
81571
|
}
|
|
@@ -30,6 +30,8 @@ export type CompanionChatMessage = {
|
|
|
30
30
|
role: CompanionChatMessageRole;
|
|
31
31
|
content: string;
|
|
32
32
|
createdAt: number;
|
|
33
|
+
deliveryState?: "cancelled" | "queued";
|
|
34
|
+
inReplyTo?: string;
|
|
33
35
|
};
|
|
34
36
|
export type CompanionChatSessionsListTotals = {
|
|
35
37
|
sessions: number;
|
|
@@ -529,6 +531,19 @@ export interface OperatorMethodInputMap {
|
|
|
529
531
|
"companion.chat.messages.list": {
|
|
530
532
|
sessionId: string;
|
|
531
533
|
};
|
|
534
|
+
"companion.chat.messages.steer": ({
|
|
535
|
+
sessionId: string;
|
|
536
|
+
body?: string;
|
|
537
|
+
content?: string;
|
|
538
|
+
attachments?: readonly ({
|
|
539
|
+
artifactId: string;
|
|
540
|
+
label?: string;
|
|
541
|
+
metadata?: {};
|
|
542
|
+
})[];
|
|
543
|
+
metadata?: {};
|
|
544
|
+
} & {
|
|
545
|
+
readonly [key: string]: unknown;
|
|
546
|
+
});
|
|
532
547
|
"companion.chat.sessions.close": {
|
|
533
548
|
sessionId: string;
|
|
534
549
|
};
|
|
@@ -559,6 +574,12 @@ export interface OperatorMethodInputMap {
|
|
|
559
574
|
} & {
|
|
560
575
|
readonly [key: string]: unknown;
|
|
561
576
|
});
|
|
577
|
+
"companion.chat.turns.cancel": ({
|
|
578
|
+
sessionId: string;
|
|
579
|
+
turnId?: string;
|
|
580
|
+
} & {
|
|
581
|
+
readonly [key: string]: unknown;
|
|
582
|
+
});
|
|
562
583
|
"config.get": {};
|
|
563
584
|
"config.set": ({
|
|
564
585
|
key: string;
|
|
@@ -4532,6 +4553,13 @@ export interface OperatorMethodOutputMap {
|
|
|
4532
4553
|
sessionId: string;
|
|
4533
4554
|
messages: readonly CompanionChatMessage[];
|
|
4534
4555
|
};
|
|
4556
|
+
"companion.chat.messages.steer": {
|
|
4557
|
+
sessionId: string;
|
|
4558
|
+
messageId: string;
|
|
4559
|
+
steered: boolean;
|
|
4560
|
+
cancelledTurnId?: string;
|
|
4561
|
+
turnStarted: boolean;
|
|
4562
|
+
};
|
|
4535
4563
|
"companion.chat.sessions.close": {
|
|
4536
4564
|
sessionId: string;
|
|
4537
4565
|
status: string;
|
|
@@ -4556,6 +4584,13 @@ export interface OperatorMethodOutputMap {
|
|
|
4556
4584
|
"companion.chat.sessions.update": {
|
|
4557
4585
|
session: CompanionChatSession;
|
|
4558
4586
|
};
|
|
4587
|
+
"companion.chat.turns.cancel": {
|
|
4588
|
+
sessionId: string;
|
|
4589
|
+
turnId: string;
|
|
4590
|
+
cancelled: boolean;
|
|
4591
|
+
alreadyCancelled?: boolean;
|
|
4592
|
+
partialPersisted: boolean;
|
|
4593
|
+
};
|
|
4559
4594
|
"config.get": ({
|
|
4560
4595
|
danger?: ({} & {
|
|
4561
4596
|
readonly [key: string]: ({} & {
|