@vertesia/appgen-docs 1.5.0-dev.20260807.073259Z → 1.5.0-dev.20260901.005903Z
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/lib/docs/interaction-runtime.md +47 -0
- package/lib/docs/package-types.md +1 -0
- package/lib/docs/store-objects.md +4 -0
- package/lib/docs/ui-interfaces.d.ts +16 -1
- package/lib/docs/vertesia-client.d.ts +306 -822
- package/lib/docs/vertesia-common.d.ts +200 -1267
- package/package.json +6 -6
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Installed Capability Runtime Execution
|
|
2
|
+
|
|
3
|
+
Use the root `VertesiaClient` for app-owned interaction execution. For an immutable candidate, call `client.withAppVersion(versionId)` once before any Studio or Store request.
|
|
4
|
+
|
|
5
|
+
## Interactions
|
|
6
|
+
|
|
7
|
+
`executeByName` accepts the portable app interaction ref and an `InteractionExecutionPayload`. Put prompt inputs under `data`; the returned result is already enhanced with typed accessors.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
interface StatusBriefingInput {
|
|
11
|
+
project_id: string;
|
|
12
|
+
tasks: Array<{ id: string; title: string; status: string }>;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
interface StatusBriefingResult {
|
|
16
|
+
summary: string;
|
|
17
|
+
evidence: Array<{ id: string; title: string; status: string }>;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const execution = await client.interactions.executeByName<StatusBriefingResult, StatusBriefingInput>(
|
|
21
|
+
`app:${APP_NAME}:main:project-status-briefing`,
|
|
22
|
+
{ data: input },
|
|
23
|
+
);
|
|
24
|
+
const briefing = execution.result.object();
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Use `execution.result.text()` for text output and `execution.result.objects()` for multiple JSON results. Validate the parsed object against the exact durable input snapshot before displaying or persisting it. Do not reimplement `/api/v1/execute` with raw `fetch`.
|
|
28
|
+
|
|
29
|
+
## Processes and activities
|
|
30
|
+
|
|
31
|
+
Installed app activities are internal process nodes. The root SDK has no `client.activities` execution API, so exercise an activity through a packaged process that references it. Start processes through the Store agent API; `client.processes` manages definitions and has no `executeByName` method.
|
|
32
|
+
|
|
33
|
+
```ts
|
|
34
|
+
const run = await client.agents.start({
|
|
35
|
+
process_id: `app:${APP_NAME}:milestone-transition`,
|
|
36
|
+
run_type: 'programmatic',
|
|
37
|
+
data: { milestone_id, target_status: 'complete' },
|
|
38
|
+
});
|
|
39
|
+
await client.agents.streamMessages(run.id);
|
|
40
|
+
const terminal = await client.agents.retrieveProcess(run.id);
|
|
41
|
+
const { context } = await client.agents.getContext(run.id);
|
|
42
|
+
if (terminal.status !== 'completed') {
|
|
43
|
+
throw new Error(String(context.error ?? terminal.status));
|
|
44
|
+
}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
A package summary containing an activity proves registration only, not runtime execution. Unit-test the exact interaction and process call shapes with focused SDK mocks before constructing an immutable candidate. Never invent `client.activities.executeByName` or `client.processes.executeByName`.
|
|
@@ -4,6 +4,8 @@ Use the Vertesia client from `useUserSession()` in browser code and the injected
|
|
|
4
4
|
|
|
5
5
|
App-owned types are referenced by their **in-code string** `app:<app-name>:<local>`, never a resolved ObjectId — pass the string straight to `search`/`create` and derive it from a single `APP_NAME` constant (= package.json name = VITE_APP_NAME = manifest name) so the app stays portable. See `package-types.md` for the rule.
|
|
6
6
|
|
|
7
|
+
Every `objects.create` payload requires a top-level `name`. A title inside `properties` does not satisfy this Store contract. Use a stable human-readable value, normally the record title, and keep it in sync when the product renames the record.
|
|
8
|
+
|
|
7
9
|
## Search
|
|
8
10
|
|
|
9
11
|
```ts
|
|
@@ -63,6 +65,7 @@ async function seedCase(client: VertesiaClient, record: { external_id: string; t
|
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
return client.objects.create({
|
|
68
|
+
name: record.title,
|
|
66
69
|
type: CASE_TYPE,
|
|
67
70
|
properties: { ...record, seed_marker: SEED_MARKER },
|
|
68
71
|
});
|
|
@@ -75,6 +78,7 @@ For document, review, and intake apps, attach realistic source content to repres
|
|
|
75
78
|
|
|
76
79
|
```ts
|
|
77
80
|
await client.objects.create({
|
|
81
|
+
name: 'Screening evidence',
|
|
78
82
|
type: `app:${APP_NAME}:evidence`,
|
|
79
83
|
properties: {
|
|
80
84
|
title: 'Screening evidence',
|
|
@@ -16,6 +16,7 @@ export * from './Divider.js';
|
|
|
16
16
|
export * from './EmptyCollection.js';
|
|
17
17
|
export * from './FileUpload.js';
|
|
18
18
|
export * from './FormItem.js';
|
|
19
|
+
export * from './InfoTip.js';
|
|
19
20
|
export * from './InputList.js';
|
|
20
21
|
export * from './Link.js';
|
|
21
22
|
export * from './MenuList.js';
|
|
@@ -55,6 +56,7 @@ export * from './LanguageSwitcher';
|
|
|
55
56
|
export * from './label';
|
|
56
57
|
export * from './MessageBox';
|
|
57
58
|
export * from './modal';
|
|
59
|
+
export * from './overflowTabs';
|
|
58
60
|
export * from './Panel';
|
|
59
61
|
export * from './popover';
|
|
60
62
|
export * from './radioGroup';
|
|
@@ -1010,13 +1012,20 @@ interface GenericPageNavHeaderProps {
|
|
|
1010
1012
|
children?: ReactNode;
|
|
1011
1013
|
className?: string;
|
|
1012
1014
|
useDynamicBreadcrumbs?: boolean;
|
|
1015
|
+
/**
|
|
1016
|
+
* Parent page linked from the breadcrumbs when there is no history chain to walk (the user
|
|
1017
|
+
* landed on this URL directly). Give it as an absolute app path, including the module mount.
|
|
1018
|
+
*/
|
|
1019
|
+
parentPath?: string;
|
|
1020
|
+
/** Label for {@link parentPath}; defaults to its last segment, title-cased. */
|
|
1021
|
+
parentLabel?: string;
|
|
1013
1022
|
}
|
|
1014
1023
|
interface BreadcrumbElementProps {
|
|
1015
1024
|
href?: string;
|
|
1016
1025
|
clearBreadcrumbs?: boolean;
|
|
1017
1026
|
children?: ReactNode;
|
|
1018
1027
|
}
|
|
1019
|
-
export declare function GenericPageNavHeader({ className, children, title, description, actions, breadcrumbs, useDynamicBreadcrumbs, }: GenericPageNavHeaderProps): JSX.Element;
|
|
1028
|
+
export declare function GenericPageNavHeader({ className, children, title, description, actions, breadcrumbs, useDynamicBreadcrumbs, parentPath, parentLabel, }: GenericPageNavHeaderProps): JSX.Element;
|
|
1020
1029
|
export {};
|
|
1021
1030
|
|
|
1022
1031
|
// -----------------------------------------------------------------------------
|
|
@@ -1068,6 +1077,12 @@ export interface ModernAgentConversationProps {
|
|
|
1068
1077
|
onShowDetails?: () => void;
|
|
1069
1078
|
/** Whether workflow control actions such as cancel should be shown. */
|
|
1070
1079
|
allowWorkflowControl?: boolean;
|
|
1080
|
+
/**
|
|
1081
|
+
* Workstream selected on mount instead of "all" — use it to open the conversation on one
|
|
1082
|
+
* sub-agent (a process agent node's workstream is its node id). Initial value only; the user's
|
|
1083
|
+
* later tab choices win.
|
|
1084
|
+
*/
|
|
1085
|
+
initialWorkstream?: string;
|
|
1071
1086
|
/** Called when files are dropped/pasted/selected */
|
|
1072
1087
|
onFilesSelected?: (files: File[]) => void;
|
|
1073
1088
|
/** Currently uploaded files to display */
|