@opencxh/domain 1.154.0 → 1.159.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/entities/activity/catalog.d.ts +33 -2
- package/dist/entities/activity/resolve.d.ts +24 -0
- package/dist/entities/activity/types.d.ts +45 -2
- package/dist/entities/ai-conversation/types.d.ts +26 -0
- package/dist/entities/ai-profile/types.d.ts +19 -6
- package/dist/entities/ai-settings/types.d.ts +27 -0
- package/dist/entities/ai-settings/types.test.d.ts +1 -0
- package/dist/entities/assignment/index.d.ts +1 -0
- package/dist/entities/assignment/types.d.ts +170 -0
- package/dist/entities/assignment/types.test.d.ts +1 -0
- package/dist/entities/interaction/types.d.ts +4 -2
- package/dist/entities/live-lens/index.d.ts +1 -0
- package/dist/entities/live-lens/types.d.ts +81 -0
- package/dist/entities/live-lens/types.test.d.ts +1 -0
- package/dist/entities/playbook/actor.d.ts +20 -0
- package/dist/entities/playbook/assignment.d.ts +123 -0
- package/dist/entities/playbook/assignment.test.d.ts +1 -0
- package/dist/entities/playbook/index.d.ts +1 -0
- package/dist/entities/playbook/status.test.d.ts +1 -0
- package/dist/entities/playbook/trigger-vars.d.ts +34 -3
- package/dist/entities/playbook/types.d.ts +412 -33
- package/dist/entities/read-state/types.d.ts +1 -5
- package/dist/entities/user/types.d.ts +56 -0
- package/dist/index.cjs +8 -8
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1099 -545
- package/dist/platform/ai-tools.d.ts +20 -0
- package/dist/platform/api.d.ts +13 -0
- package/dist/platform/audio-gate.test.d.ts +1 -0
- package/dist/platform/context.d.ts +16 -0
- package/dist/platform/presence.d.ts +59 -0
- package/dist/platform/resource.d.ts +39 -0
- package/dist/platform/sdk.d.ts +6 -0
- package/dist/platform/tool-sources.test.d.ts +1 -0
- package/dist/platform/transcript-cadence.d.ts +93 -0
- package/dist/platform/transcript-cadence.test.d.ts +1 -0
- package/dist/platform/transcript-sanitize.d.ts +1 -0
- package/dist/platform/transcript-sanitize.test.d.ts +1 -0
- package/dist/platform/work-mode.test.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { LocaleBundle } from '../analytics/dashboard';
|
|
2
|
+
import { PlaybookTrigger } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Toewijzen als wekker — het oppervlak waarop een **opdracht** bestaat.
|
|
5
|
+
*
|
|
6
|
+
* **Herzien:** een opdracht *is* wél een entiteit — zie {@link Assignment}. Hier stond "een
|
|
7
|
+
* opdracht is geen entiteit: het is een run met een procedure", en dat brak op drie punten: een
|
|
8
|
+
* procedure-run werd altijd afgekort tot één beurt, de draad ernaast deelde geen geheugen met de
|
|
9
|
+
* agent, en "wat voor ding is dit" moest uit de uitvoeringsvorm worden afgeleid.
|
|
10
|
+
*
|
|
11
|
+
* Wat deze module doet verandert daar niet door: de handeling die het werk begint bestaat al in
|
|
12
|
+
* elke app die werk kent — **je wijst iets aan iemand toe.** Wijs je het aan een gebruiker met
|
|
13
|
+
* `type: "agent"` toe, dan is dat het startsignaal, en dan zet de engine er een opdracht neer.
|
|
14
|
+
*
|
|
15
|
+
* Daarom is dit een federatie en geen lijst in de ai-app. Alleen comms weet dat een gesprek
|
|
16
|
+
* toegewezen kan worden en dat `INTERACTION_ASSIGNED` dat aankondigt; alleen een taken-app weet
|
|
17
|
+
* dat van een taak. De hub hoort dat niet te weten — precies de scheiding die de
|
|
18
|
+
* geheugen-catalogus (`memory-source`) en de analytics-catalogus al maken. Mal:
|
|
19
|
+
* `apps/context/server/src/memory/catalog.ts`.
|
|
20
|
+
*
|
|
21
|
+
* **Er komt geen nieuw wekmechanisme.** Een toewijzing is al een activity, dus de bestaande
|
|
22
|
+
* `activity`-poort levert hem af; deze module voegt alleen de vraag toe die de engine zelf niet
|
|
23
|
+
* kan beantwoorden: *"is dit aan míjn agent toegewezen?"*
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Eén soort werk dat aan een agent toegewezen kan worden, gedeclareerd door de app die het
|
|
27
|
+
* bezit.
|
|
28
|
+
*/
|
|
29
|
+
export interface AssignmentTargetKind {
|
|
30
|
+
/**
|
|
31
|
+
* `<app>.<ding>` — het voorvoegsel is de eigenaar, dezelfde conventie als `memory_kind` en
|
|
32
|
+
* de dossiersleutels. Twee apps kunnen zo nooit dezelfde soort claimen.
|
|
33
|
+
*/
|
|
34
|
+
id: string;
|
|
35
|
+
label: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
/**
|
|
38
|
+
* De activity-types waarmee deze app "dit is toegewezen" aankondigt.
|
|
39
|
+
*
|
|
40
|
+
* Gedeclareerd en niet geraden: de engine ziet alleen een type-string langskomen, en welk
|
|
41
|
+
* type een toewijzing ís weet alleen de bron. Een geraden voorvoegsel zou bij de eerste app
|
|
42
|
+
* die zijn eigen soort meebrengt stil het verkeerde type pakken.
|
|
43
|
+
*/
|
|
44
|
+
activityTypes: string[];
|
|
45
|
+
/**
|
|
46
|
+
* Waar op de activity het userId van de toegewezene staat, als punt-pad
|
|
47
|
+
* (`"payload.userId"`).
|
|
48
|
+
*
|
|
49
|
+
* Een pad en geen vaste sleutel, omdat de payload van de bron is. Comms zet `payload.userId`;
|
|
50
|
+
* een andere app mag `payload.assignee.id` zetten zonder dat de hub verandert.
|
|
51
|
+
*/
|
|
52
|
+
assigneePath: string;
|
|
53
|
+
/** Gezet door de hub na de fan-out, niet door de bron. */
|
|
54
|
+
origin?: "app";
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Bare payload van `GET /provider/assignment/describe` — niet in `ResponseFactory` verpakt
|
|
58
|
+
* (mal: `MemorySourceDescription`).
|
|
59
|
+
*/
|
|
60
|
+
export interface AssignmentSourceDescription {
|
|
61
|
+
/** De declarerende app (== `manifest.name` == `req.source.app`). */
|
|
62
|
+
source: string;
|
|
63
|
+
targets: AssignmentTargetKind[];
|
|
64
|
+
/** Vlakke LIJST: keys met een punt worden gemangeld. */
|
|
65
|
+
locales?: LocaleBundle;
|
|
66
|
+
}
|
|
67
|
+
/** De samengestelde catalogus die de hub aan de builder levert. */
|
|
68
|
+
export interface AssignmentCatalog {
|
|
69
|
+
targets: AssignmentTargetKind[];
|
|
70
|
+
/** Bronnen die meededen aan de fan-out (voor "wie levert dit?"). */
|
|
71
|
+
sources: string[];
|
|
72
|
+
locales: LocaleBundle;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* De waarde op een punt-pad, of `undefined`.
|
|
76
|
+
*
|
|
77
|
+
* Eigen mini-lezer en niet `resolveRef` uit de engine: die woont in de ai-app en kent de
|
|
78
|
+
* `$`-conventie, terwijl hier een kaal pad uit een app-declaratie gelezen wordt. Stopt bij het
|
|
79
|
+
* eerste niet-object, zodat een pad dat langs `null` loopt `undefined` geeft en niet gooit.
|
|
80
|
+
*/
|
|
81
|
+
export declare function valueAtPath(source: unknown, path: string): unknown;
|
|
82
|
+
/**
|
|
83
|
+
* De doelsoort die dit activity-type aankondigt, en de doelsoort met dit id.
|
|
84
|
+
*
|
|
85
|
+
* Twee lezers, één lijst: de engine komt binnen met een type ("wat is dit?"), de builder en de
|
|
86
|
+
* validatie met een id ("bestaat deze soort?").
|
|
87
|
+
*/
|
|
88
|
+
export declare function targetForActivityType(catalog: Pick<AssignmentCatalog, "targets">, activityType: string): AssignmentTargetKind | undefined;
|
|
89
|
+
export declare function targetById(catalog: Pick<AssignmentCatalog, "targets">, id: string | undefined): AssignmentTargetKind | undefined;
|
|
90
|
+
/** Is dit een trigger die op een toewijzing wacht? */
|
|
91
|
+
export declare function isAssignmentTrigger(trigger: PlaybookTrigger | undefined): trigger is Extract<PlaybookTrigger, {
|
|
92
|
+
kind: "assignment";
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Waarom deze toewijzing géén run van deze playbook start, of `null` als hij dat wél doet.
|
|
96
|
+
*
|
|
97
|
+
* Een reden en geen boolean, om dezelfde reden als `triggerMismatch`: een trigger die niet
|
|
98
|
+
* matcht laat geen run achter, dus er is geen trace om in te kijken. "Ik heb dit gesprek aan de
|
|
99
|
+
* agent gegeven en er gebeurt niets" moet te beantwoorden zijn.
|
|
100
|
+
*
|
|
101
|
+
* Puur, en dat is waar de vier poorten hier staan in plaats van in de job:
|
|
102
|
+
*
|
|
103
|
+
* 1. **Geen agent** ⇒ nooit. "Toegewezen aan wie?" heeft dan geen antwoord, en zonder deze
|
|
104
|
+
* poort zou zo'n playbook op *elke* toewijzing van *iedereen* vuren.
|
|
105
|
+
* 2. **Onbekende doelsoort** ⇒ nooit, met naam en al. Dat is het geval "de app die dit
|
|
106
|
+
* declareerde is uitgeschakeld of antwoordt niet", en dat mag geen stilte zijn.
|
|
107
|
+
* 3. **Aan iemand anders toegewezen** ⇒ niet deze playbook. Dit is de kernvergelijking.
|
|
108
|
+
* 4. **De agent wees het zichzelf toe** ⇒ niet opnieuw. Zonder deze poort is een procedure die
|
|
109
|
+
* zelf toewijst (`update_interaction`) een lus die zichzelf blijft wekken: de
|
|
110
|
+
* lifecycle-activity draagt geen `runId`, dus de bestaande loop-demping ziet hem niet.
|
|
111
|
+
*/
|
|
112
|
+
export declare function assignmentMismatch(input: {
|
|
113
|
+
trigger: PlaybookTrigger | undefined;
|
|
114
|
+
/** `Playbook.agentId` — het userId van de agent die deze playbook uitvoert. */
|
|
115
|
+
agentId?: string | null;
|
|
116
|
+
/** De doelsoort uit de catalogus die bij deze playbook hoort, indien gevonden. */
|
|
117
|
+
target?: AssignmentTargetKind;
|
|
118
|
+
activityType: string;
|
|
119
|
+
/** Aan wie dit toegewezen werd, gelezen via `target.assigneePath`. */
|
|
120
|
+
assigneeUserId?: string;
|
|
121
|
+
/** Wie de toewijzing deed, als het een gebruiker was. */
|
|
122
|
+
authorUserId?: string;
|
|
123
|
+
}): string | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -52,22 +52,53 @@ export declare const TRIGGER_VARS: readonly [{
|
|
|
52
52
|
}, {
|
|
53
53
|
readonly name: "companyId";
|
|
54
54
|
readonly type: "string";
|
|
55
|
+
}, {
|
|
56
|
+
readonly name: "assigneeUserId";
|
|
57
|
+
readonly type: "string";
|
|
55
58
|
}];
|
|
56
|
-
/**
|
|
59
|
+
/**
|
|
60
|
+
* Wat een classify-stap per mode **oplevert** — het contract dat `runClassify` nakomt.
|
|
61
|
+
*
|
|
62
|
+
* Staat hier als type en niet alleen als lijst, omdat {@link CLASSIFY_VARS} eruit hoort te volgen.
|
|
63
|
+
* Die lijst was uiteengelopen met de werkelijkheid, precies zoals `TRIGGER_VARS` dat eerder was:
|
|
64
|
+
* `question` bood `confidence` aan (bestaat niet, de adapter geeft `answer` + `reasoning`) en
|
|
65
|
+
* `topics` miste `topicId` en `reasoning`. Een pad dat de picker aanbiedt en dat `undefined`
|
|
66
|
+
* oplevert is stil kapot — vandaar dat de adapter er in `ai/classify.test.ts` tegen wordt gehouden.
|
|
67
|
+
*/
|
|
68
|
+
export interface ClassifyTopicsResult {
|
|
69
|
+
topicId: string;
|
|
70
|
+
/** Naam van het onderwerp, of `null` bij `"none"`. */
|
|
71
|
+
topic: string | null;
|
|
72
|
+
confidence: number;
|
|
73
|
+
reasoning?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface ClassifyQuestionResult {
|
|
76
|
+
answer: boolean;
|
|
77
|
+
reasoning?: string;
|
|
78
|
+
}
|
|
79
|
+
/** De zelf-gedefinieerde velden uit `ClassifyStep.fields`; de vorm is van de auteur. */
|
|
80
|
+
export type ClassifyExtractResult = Record<string, unknown>;
|
|
81
|
+
/** De variabelen die een classify-stap oplevert, per mode. Volgt de types hierboven. */
|
|
57
82
|
export declare const CLASSIFY_VARS: {
|
|
58
83
|
readonly topics: readonly [{
|
|
84
|
+
readonly name: "topicId";
|
|
85
|
+
readonly type: "string";
|
|
86
|
+
}, {
|
|
59
87
|
readonly name: "topic";
|
|
60
88
|
readonly type: "string";
|
|
61
89
|
}, {
|
|
62
90
|
readonly name: "confidence";
|
|
63
91
|
readonly type: "number";
|
|
92
|
+
}, {
|
|
93
|
+
readonly name: "reasoning";
|
|
94
|
+
readonly type: "string";
|
|
64
95
|
}];
|
|
65
96
|
readonly question: readonly [{
|
|
66
97
|
readonly name: "answer";
|
|
67
98
|
readonly type: "boolean";
|
|
68
99
|
}, {
|
|
69
|
-
readonly name: "
|
|
70
|
-
readonly type: "
|
|
100
|
+
readonly name: "reasoning";
|
|
101
|
+
readonly type: "string";
|
|
71
102
|
}];
|
|
72
103
|
readonly extract: readonly [];
|
|
73
104
|
};
|