@agent-factory-platform/client 0.2.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/document-assistant-model.d.ts +50 -0
- package/dist/document-assistant-model.d.ts.map +1 -0
- package/dist/document-assistant-model.js +104 -0
- package/dist/document-assistant-model.js.map +1 -0
- package/dist/gen/agentfactory/agent/v1/agent_pb.d.ts +2242 -0
- package/dist/gen/agentfactory/agent/v1/agent_pb.d.ts.map +1 -0
- package/dist/gen/agentfactory/agent/v1/agent_pb.js +457 -0
- package/dist/gen/agentfactory/agent/v1/agent_pb.js.map +1 -0
- package/dist/gen/agentfactory/docs/v1/docs_pb.d.ts +1172 -0
- package/dist/gen/agentfactory/docs/v1/docs_pb.d.ts.map +1 -0
- package/dist/gen/agentfactory/docs/v1/docs_pb.js +287 -0
- package/dist/gen/agentfactory/docs/v1/docs_pb.js.map +1 -0
- package/dist/index.d.ts +453 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +46 -0
- package/dist/index.js.map +1 -0
- package/dist/session-model.d.ts +122 -0
- package/dist/session-model.d.ts.map +1 -0
- package/dist/session-model.js +343 -0
- package/dist/session-model.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type JsonValue } from "@bufbuild/protobuf";
|
|
2
|
+
import { AgentSessionModel, type AgentRunStatus, type AgentSessionState } from "./session-model.js";
|
|
3
|
+
export declare const DOCUMENT_ASSISTANT_OPERATION_SLOT = "document-assistant.operation";
|
|
4
|
+
export declare const DOCUMENT_ASSISTANT_OUTPUT_SLOT = "document-assistant.output";
|
|
5
|
+
export type DocumentAssistantOperationKind = "explain" | "rewrite" | "continue";
|
|
6
|
+
export interface DocumentAssistantOperation {
|
|
7
|
+
version: 1;
|
|
8
|
+
operation: DocumentAssistantOperationKind;
|
|
9
|
+
documentId: string;
|
|
10
|
+
nodeId: string;
|
|
11
|
+
baseRevision: string;
|
|
12
|
+
range: {
|
|
13
|
+
from: number;
|
|
14
|
+
to: number;
|
|
15
|
+
};
|
|
16
|
+
selection: string;
|
|
17
|
+
instruction: string;
|
|
18
|
+
context: string;
|
|
19
|
+
originalSlice?: JsonValue;
|
|
20
|
+
images: Array<{
|
|
21
|
+
assetId: string;
|
|
22
|
+
url: string;
|
|
23
|
+
}>;
|
|
24
|
+
source?: {
|
|
25
|
+
id: string;
|
|
26
|
+
title: string;
|
|
27
|
+
url: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface DocumentAssistantState {
|
|
31
|
+
status: "idle" | "submitting" | AgentRunStatus | "disconnected";
|
|
32
|
+
runId?: string;
|
|
33
|
+
operation?: DocumentAssistantOperation;
|
|
34
|
+
output: string;
|
|
35
|
+
error?: Error;
|
|
36
|
+
pendingInteractionId?: string;
|
|
37
|
+
}
|
|
38
|
+
export declare class DocumentAssistantModel {
|
|
39
|
+
#private;
|
|
40
|
+
readonly session: AgentSessionModel;
|
|
41
|
+
constructor(session: AgentSessionModel);
|
|
42
|
+
getSnapshot: () => DocumentAssistantState;
|
|
43
|
+
subscribe: (listener: () => void) => () => boolean;
|
|
44
|
+
bootstrap: () => Promise<import("./gen/agentfactory/agent/v1/agent_pb.js").Run | undefined>;
|
|
45
|
+
cancel: () => Promise<void>;
|
|
46
|
+
submit(operation: DocumentAssistantOperation): Promise<import("./gen/agentfactory/agent/v1/agent_pb.js").Run>;
|
|
47
|
+
resolvePending(resolution?: "confirmed" | "rejected"): Promise<import("./gen/agentfactory/agent/v1/agent_pb.js").Run>;
|
|
48
|
+
}
|
|
49
|
+
export declare function deriveDocumentAssistantState(state: AgentSessionState): DocumentAssistantState;
|
|
50
|
+
//# sourceMappingURL=document-assistant-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-assistant-model.d.ts","sourceRoot":"","sources":["../src/document-assistant-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,EAAW,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE7G,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAChF,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAE1E,MAAM,MAAM,8BAA8B,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEhF,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,CAAC,CAAC;IACX,SAAS,EAAE,8BAA8B,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACrD;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,cAAc,GAAG,cAAc,CAAC;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,0BAA0B,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,sBAAsB;;IAIrB,QAAQ,CAAC,OAAO,EAAE,iBAAiB;gBAA1B,OAAO,EAAE,iBAAiB;IAE/C,WAAW,+BAOT;IAEF,SAAS,GAAI,UAAU,MAAM,IAAI,mBAAsC;IACvE,SAAS,mFAAkC;IAC3C,MAAM,sBAA+B;IAErC,MAAM,CAAC,SAAS,EAAE,0BAA0B;IAS5C,cAAc,CAAC,UAAU,GAAE,WAAW,GAAG,UAAwB;CAKlE;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,iBAAiB,GAAG,sBAAsB,CAgC7F"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { create, fromJson, toJson } from "@bufbuild/protobuf";
|
|
2
|
+
import { ValueSchema } from "@bufbuild/protobuf/wkt";
|
|
3
|
+
import { ContentBlockSchema, DataBlockSchema, TextBlockSchema } from "./gen/agentfactory/agent/v1/agent_pb.js";
|
|
4
|
+
import { project } from "./session-model.js";
|
|
5
|
+
export const DOCUMENT_ASSISTANT_OPERATION_SLOT = "document-assistant.operation";
|
|
6
|
+
export const DOCUMENT_ASSISTANT_OUTPUT_SLOT = "document-assistant.output";
|
|
7
|
+
export class DocumentAssistantModel {
|
|
8
|
+
session;
|
|
9
|
+
#sessionState;
|
|
10
|
+
#snapshot = { status: "idle", output: "" };
|
|
11
|
+
constructor(session) {
|
|
12
|
+
this.session = session;
|
|
13
|
+
}
|
|
14
|
+
getSnapshot = () => {
|
|
15
|
+
const state = this.session.getSnapshot();
|
|
16
|
+
if (state !== this.#sessionState) {
|
|
17
|
+
this.#sessionState = state;
|
|
18
|
+
this.#snapshot = deriveDocumentAssistantState(state);
|
|
19
|
+
}
|
|
20
|
+
return this.#snapshot;
|
|
21
|
+
};
|
|
22
|
+
subscribe = (listener) => this.session.subscribe(listener);
|
|
23
|
+
bootstrap = () => this.session.bootstrap();
|
|
24
|
+
cancel = () => this.session.cancel();
|
|
25
|
+
submit(operation) {
|
|
26
|
+
if (!parseOperation(operation))
|
|
27
|
+
throw new Error("invalid document assistant operation");
|
|
28
|
+
const metadata = JSON.parse(JSON.stringify(operation));
|
|
29
|
+
return this.session.submitContent([
|
|
30
|
+
create(ContentBlockSchema, { block: { case: "text", value: create(TextBlockSchema, { text: operation.instruction }) } }),
|
|
31
|
+
create(ContentBlockSchema, { block: { case: "data", value: create(DataBlockSchema, { slot: DOCUMENT_ASSISTANT_OPERATION_SLOT, value: fromJson(ValueSchema, metadata) }) } }),
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
resolvePending(resolution = "confirmed") {
|
|
35
|
+
const interactionId = this.getSnapshot().pendingInteractionId;
|
|
36
|
+
if (!interactionId)
|
|
37
|
+
throw new Error("no document assistant interaction is waiting for input");
|
|
38
|
+
return this.session.resolveInteraction(interactionId, resolution);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export function deriveDocumentAssistantState(state) {
|
|
42
|
+
let operation;
|
|
43
|
+
let runId;
|
|
44
|
+
for (const event of state.events) {
|
|
45
|
+
if (event.event.case !== "message" || event.event.value.role !== "user")
|
|
46
|
+
continue;
|
|
47
|
+
for (const block of event.event.value.content) {
|
|
48
|
+
if (block.block.case !== "data" || block.block.value.slot !== DOCUMENT_ASSISTANT_OPERATION_SLOT)
|
|
49
|
+
continue;
|
|
50
|
+
const parsed = parseOperation(block.block.value.value ? toJson(ValueSchema, block.block.value.value) : undefined);
|
|
51
|
+
if (parsed) {
|
|
52
|
+
operation = parsed;
|
|
53
|
+
runId = event.runId || undefined;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (!operation || !runId)
|
|
58
|
+
return { status: state.status, output: "", error: state.error };
|
|
59
|
+
const runEvents = state.events.filter((event) => event.runId === runId);
|
|
60
|
+
const typedOutput = latestOutput(runEvents);
|
|
61
|
+
const output = typedOutput ?? project(runEvents).text;
|
|
62
|
+
const ownRun = state.run?.id === runId;
|
|
63
|
+
const finished = [...runEvents].reverse().find((event) => event.event.case === "lifecycle" && event.event.value.kind === "run_finished");
|
|
64
|
+
const status = ownRun ? state.status : lifecycleStatus(finished) ?? (output ? "completed" : "idle");
|
|
65
|
+
const resolvedInteractions = new Set(runEvents.flatMap((event) => event.event.case === "interaction" && event.event.value.phase === "resolved" ? [event.event.value.interactionId] : []));
|
|
66
|
+
const pendingInteraction = [...runEvents].reverse().find((event) => event.event.case === "interaction" && event.event.value.phase === "requested" && !resolvedInteractions.has(event.event.value.interactionId));
|
|
67
|
+
return {
|
|
68
|
+
status,
|
|
69
|
+
runId,
|
|
70
|
+
operation,
|
|
71
|
+
output,
|
|
72
|
+
error: ownRun ? state.error : undefined,
|
|
73
|
+
pendingInteractionId: pendingInteraction?.event.case === "interaction" ? pendingInteraction.event.value.interactionId : undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function latestOutput(events) {
|
|
77
|
+
for (const event of [...events].reverse()) {
|
|
78
|
+
if (event.event.case !== "message" || event.event.value.role !== "assistant")
|
|
79
|
+
continue;
|
|
80
|
+
for (const block of [...event.event.value.content].reverse()) {
|
|
81
|
+
if (block.block.case !== "data" || block.block.value.slot !== DOCUMENT_ASSISTANT_OUTPUT_SLOT || !block.block.value.value)
|
|
82
|
+
continue;
|
|
83
|
+
const value = toJson(ValueSchema, block.block.value.value);
|
|
84
|
+
if (value && typeof value === "object" && !Array.isArray(value) && typeof value.markdown === "string")
|
|
85
|
+
return value.markdown;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function lifecycleStatus(event) {
|
|
90
|
+
if (event?.event.case !== "lifecycle")
|
|
91
|
+
return undefined;
|
|
92
|
+
const status = event.event.value.status;
|
|
93
|
+
return status === "queued" || status === "running" || status === "waiting_for_input" || status === "completed" || status === "failed" || status === "cancelled" || status === "max_steps_reached" ? status : undefined;
|
|
94
|
+
}
|
|
95
|
+
function parseOperation(value) {
|
|
96
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
97
|
+
return;
|
|
98
|
+
const candidate = value;
|
|
99
|
+
const range = candidate.range;
|
|
100
|
+
if (candidate.version !== 1 || (candidate.operation !== "explain" && candidate.operation !== "rewrite" && candidate.operation !== "continue") || typeof candidate.documentId !== "string" || typeof candidate.nodeId !== "string" || typeof candidate.baseRevision !== "string" || typeof candidate.selection !== "string" || typeof candidate.instruction !== "string" || typeof candidate.context !== "string" || !range || typeof range !== "object" || Array.isArray(range) || !Number.isInteger(range.from) || !Number.isInteger(range.to) || Number(range.from) < 0 || Number(range.to) < Number(range.from))
|
|
101
|
+
return;
|
|
102
|
+
return value;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=document-assistant-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document-assistant-model.js","sourceRoot":"","sources":["../src/document-assistant-model.ts"],"names":[],"mappings":"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"}
|