@gt-fe/eap-sdk 0.1.13 → 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/README.md +140 -70
- package/dist/materialization/index.d.ts +0 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +0 -1
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/prepare-agent-runtime.d.ts +6 -0
- package/dist/materialization/prepare-agent-runtime.d.ts.map +1 -1
- package/dist/materialization/prepare-agent-runtime.js +11 -17
- package/dist/materialization/prepare-agent-runtime.js.map +1 -1
- package/dist/materialization/types.d.ts +0 -2
- package/dist/materialization/types.d.ts.map +1 -1
- package/dist/packaging/package-agent-project.d.ts.map +1 -1
- package/dist/packaging/package-agent-project.js +2 -4
- package/dist/packaging/package-agent-project.js.map +1 -1
- package/dist/platform/client.d.ts.map +1 -1
- package/dist/platform/client.js +13 -2
- package/dist/platform/client.js.map +1 -1
- package/dist/platform/types.d.ts +2 -0
- package/dist/platform/types.d.ts.map +1 -1
- package/dist/schema/agent/manifest.d.ts +1029 -98
- package/dist/schema/agent/manifest.d.ts.map +1 -1
- package/dist/schema/graph.d.ts +1538 -252
- package/dist/schema/graph.d.ts.map +1 -1
- package/dist/schema/graph.js +30 -5
- package/dist/schema/graph.js.map +1 -1
- package/dist/schema/lockfile.d.ts +30 -30
- package/dist/service/create-agent.d.ts +8 -0
- package/dist/service/create-agent.d.ts.map +1 -0
- package/dist/service/create-agent.js +407 -0
- package/dist/service/create-agent.js.map +1 -0
- package/dist/service/events.d.ts +12 -45
- package/dist/service/events.d.ts.map +1 -1
- package/dist/service/events.js +45 -1
- package/dist/service/events.js.map +1 -1
- package/dist/service/index.d.ts +5 -2
- package/dist/service/index.d.ts.map +1 -1
- package/dist/service/index.js +4 -1
- package/dist/service/index.js.map +1 -1
- package/dist/service/messages.d.ts +13 -0
- package/dist/service/messages.d.ts.map +1 -0
- package/dist/service/messages.js +24 -0
- package/dist/service/messages.js.map +1 -0
- package/dist/service/resources.d.ts +86 -0
- package/dist/service/resources.d.ts.map +1 -0
- package/dist/service/resources.js +26 -0
- package/dist/service/resources.js.map +1 -0
- package/dist/service/runtime-adapter.d.ts.map +1 -1
- package/dist/service/runtime-adapter.js +26 -2
- package/dist/service/runtime-adapter.js.map +1 -1
- package/dist/service/sessions.d.ts +33 -0
- package/dist/service/sessions.d.ts.map +1 -0
- package/dist/service/sessions.js +67 -0
- package/dist/service/sessions.js.map +1 -0
- package/dist/service/types.d.ts +121 -32
- package/dist/service/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/materialization/sync-author-resources.d.ts +0 -21
- package/dist/materialization/sync-author-resources.d.ts.map +0 -1
- package/dist/materialization/sync-author-resources.js +0 -98
- package/dist/materialization/sync-author-resources.js.map +0 -1
- package/dist/service/create-agent-service.d.ts +0 -12
- package/dist/service/create-agent-service.d.ts.map +0 -1
- package/dist/service/create-agent-service.js +0 -283
- package/dist/service/create-agent-service.js.map +0 -1
- package/dist/service/http-server.d.ts +0 -4
- package/dist/service/http-server.d.ts.map +0 -1
- package/dist/service/http-server.js +0 -89
- package/dist/service/http-server.js.map +0 -1
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export type ResourceKind = 'tool' | 'skill';
|
|
2
|
+
export type ResourceSource = 'bundled' | 'remote';
|
|
3
|
+
export interface ResourceRef {
|
|
4
|
+
kind: ResourceKind;
|
|
5
|
+
code: string;
|
|
6
|
+
version: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ResourceQuery {
|
|
9
|
+
kind?: ResourceKind;
|
|
10
|
+
code?: string;
|
|
11
|
+
source?: ResourceSource;
|
|
12
|
+
desiredState?: 'enabled' | 'disabled' | 'uninstalled';
|
|
13
|
+
effectiveState?: 'enabled' | 'disabled' | 'uninstalled' | 'pending';
|
|
14
|
+
}
|
|
15
|
+
export interface ResourceError {
|
|
16
|
+
code: string;
|
|
17
|
+
message: string;
|
|
18
|
+
}
|
|
19
|
+
export interface AgentResourceState extends ResourceRef {
|
|
20
|
+
source: ResourceSource;
|
|
21
|
+
name?: string;
|
|
22
|
+
digest: string;
|
|
23
|
+
desiredState: 'enabled' | 'disabled' | 'uninstalled';
|
|
24
|
+
effectiveState: 'enabled' | 'disabled' | 'uninstalled' | 'pending';
|
|
25
|
+
loadedAt?: string;
|
|
26
|
+
revision: string;
|
|
27
|
+
error?: ResourceError;
|
|
28
|
+
}
|
|
29
|
+
export interface ResourceCatalogItem extends ResourceRef {
|
|
30
|
+
name: string;
|
|
31
|
+
digest: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
installed: boolean;
|
|
34
|
+
enabled?: boolean;
|
|
35
|
+
}
|
|
36
|
+
export interface ResourceMutationOptions {
|
|
37
|
+
expectedRevision?: string;
|
|
38
|
+
idempotencyKey?: string;
|
|
39
|
+
}
|
|
40
|
+
export interface ResourceActivationOptions extends ResourceMutationOptions {
|
|
41
|
+
}
|
|
42
|
+
export interface InstallResourceRequest extends ResourceMutationOptions {
|
|
43
|
+
ref: ResourceRef;
|
|
44
|
+
enabled?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export interface RefreshResourceRequest extends ResourceMutationOptions {
|
|
47
|
+
ref?: ResourceRef;
|
|
48
|
+
kind?: ResourceKind;
|
|
49
|
+
code?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ResourceApplyOptions {
|
|
52
|
+
resources?: ResourceRef[];
|
|
53
|
+
/** Set false to only materialize desired state without reloading the Agent. */
|
|
54
|
+
reload?: boolean;
|
|
55
|
+
}
|
|
56
|
+
export interface ResourceChangeResult {
|
|
57
|
+
ref: ResourceRef;
|
|
58
|
+
status: 'pending' | 'effective' | 'failed';
|
|
59
|
+
desiredRevision: string;
|
|
60
|
+
effectiveRevision?: string;
|
|
61
|
+
requiresReload: boolean;
|
|
62
|
+
error?: ResourceError;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Adapter owned by the embedding host. The SDK intentionally stores no
|
|
66
|
+
* resource database and never writes CLI manifest or lock files for it.
|
|
67
|
+
*/
|
|
68
|
+
export interface AgentResourceManager {
|
|
69
|
+
listMarket(query?: ResourceQuery): Promise<ResourceCatalogItem[]>;
|
|
70
|
+
listInstalled(query?: ResourceQuery): Promise<AgentResourceState[]>;
|
|
71
|
+
get(ref: ResourceRef): Promise<AgentResourceState | null>;
|
|
72
|
+
install(request: InstallResourceRequest): Promise<ResourceChangeResult>;
|
|
73
|
+
uninstall(ref: ResourceRef, options?: ResourceMutationOptions): Promise<ResourceChangeResult>;
|
|
74
|
+
refresh(request?: RefreshResourceRequest): Promise<ResourceChangeResult[]>;
|
|
75
|
+
enable(ref: ResourceRef, options?: ResourceActivationOptions): Promise<ResourceChangeResult>;
|
|
76
|
+
disable(ref: ResourceRef, options?: ResourceActivationOptions): Promise<ResourceChangeResult>;
|
|
77
|
+
apply(options?: ResourceApplyOptions): Promise<ResourceChangeResult>;
|
|
78
|
+
invalidate(ref?: ResourceRef): Promise<void>;
|
|
79
|
+
}
|
|
80
|
+
export declare class ResourceManagerUnavailableError extends Error {
|
|
81
|
+
readonly code = "resource_manager_unavailable";
|
|
82
|
+
readonly status = 501;
|
|
83
|
+
constructor();
|
|
84
|
+
}
|
|
85
|
+
export declare function createUnavailableResourceManager(): AgentResourceManager;
|
|
86
|
+
//# sourceMappingURL=resources.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../src/service/resources.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export class ResourceManagerUnavailableError extends Error {
|
|
2
|
+
code = 'resource_manager_unavailable';
|
|
3
|
+
status = 501;
|
|
4
|
+
constructor() {
|
|
5
|
+
super('No embedded resource manager was configured');
|
|
6
|
+
this.name = 'ResourceManagerUnavailableError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function createUnavailableResourceManager() {
|
|
10
|
+
const unavailable = async () => {
|
|
11
|
+
throw new ResourceManagerUnavailableError();
|
|
12
|
+
};
|
|
13
|
+
return {
|
|
14
|
+
listMarket: unavailable,
|
|
15
|
+
listInstalled: unavailable,
|
|
16
|
+
get: unavailable,
|
|
17
|
+
install: unavailable,
|
|
18
|
+
uninstall: unavailable,
|
|
19
|
+
refresh: unavailable,
|
|
20
|
+
enable: unavailable,
|
|
21
|
+
disable: unavailable,
|
|
22
|
+
apply: unavailable,
|
|
23
|
+
invalidate: unavailable,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=resources.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../../src/service/resources.ts"],"names":[],"mappings":"AA2FA,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAC/C,IAAI,GAAG,8BAA8B,CAAC;IACtC,MAAM,GAAG,GAAG,CAAC;IAEtB;QACE,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;IAChD,CAAC;CACF;AAED,MAAM,UAAU,gCAAgC;IAC9C,MAAM,WAAW,GAAG,KAAK,IAAoB,EAAE;QAC7C,MAAM,IAAI,+BAA+B,EAAE,CAAC;IAC9C,CAAC,CAAC;IACF,OAAO;QACL,UAAU,EAAE,WAAW;QACvB,aAAa,EAAE,WAAW;QAC1B,GAAG,EAAE,WAAW;QAChB,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,WAAW;QACtB,OAAO,EAAE,WAAW;QACpB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,WAAW;QAClB,UAAU,EAAE,WAAW;KACxB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-adapter.d.ts","sourceRoot":"","sources":["../../src/service/runtime-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,oBAAoB,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,UAAU,
|
|
1
|
+
{"version":3,"file":"runtime-adapter.d.ts","sourceRoot":"","sources":["../../src/service/runtime-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAExE,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,oBAAoB,EAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,UAAU,CAuBZ"}
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import { createDevRuntime, } from '@gt-fe/eap-runtime';
|
|
2
2
|
export function createRuntimeForPrepared(_prepared, environment) {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const previous = new Map();
|
|
4
|
+
const serverSensitiveKeys = environment.EAP_DEPLOYMENT_CONTEXT === 'server'
|
|
5
|
+
? ['EAP_TOKEN', 'EAP_DELEGATION_TOKEN', 'OPENAI_API_KEY']
|
|
6
|
+
: [];
|
|
7
|
+
for (const key of serverSensitiveKeys) {
|
|
8
|
+
previous.set(key, process.env[key]);
|
|
9
|
+
delete process.env[key];
|
|
10
|
+
}
|
|
11
|
+
for (const [key, value] of Object.entries(environment)) {
|
|
12
|
+
if (!previous.has(key))
|
|
13
|
+
previous.set(key, process.env[key]);
|
|
14
|
+
process.env[key] = value;
|
|
15
|
+
}
|
|
16
|
+
try {
|
|
17
|
+
// Runtime currently reads its assembly settings from process.env. Restore
|
|
18
|
+
// immediately after construction so embedded Agent configuration is scoped.
|
|
19
|
+
return createDevRuntime();
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
for (const [key, value] of previous) {
|
|
23
|
+
if (value === undefined)
|
|
24
|
+
delete process.env[key];
|
|
25
|
+
else
|
|
26
|
+
process.env[key] = value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
5
29
|
}
|
|
6
30
|
//# sourceMappingURL=runtime-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-adapter.js","sourceRoot":"","sources":["../../src/service/runtime-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,UAAU,wBAAwB,CACtC,SAA+B,EAC/B,WAAmC;IAEnC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-adapter.js","sourceRoot":"","sources":["../../src/service/runtime-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,GAEjB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,UAAU,wBAAwB,CACtC,SAA+B,EAC/B,WAAmC;IAEnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;IACvD,MAAM,mBAAmB,GAAG,WAAW,CAAC,sBAAsB,KAAK,QAAQ;QACzE,CAAC,CAAC,CAAC,WAAW,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC;IACP,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,IAAI,CAAC;QACH,0EAA0E;QAC1E,4EAA4E;QAC5E,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;YAAS,CAAC;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;gBAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAChC,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { DevRuntime, SessionRecord } from '@gt-fe/eap-runtime';
|
|
2
|
+
export interface Page<T> {
|
|
3
|
+
items: T[];
|
|
4
|
+
limit: number;
|
|
5
|
+
offset: number;
|
|
6
|
+
total?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface CreateSessionInput {
|
|
9
|
+
id?: string;
|
|
10
|
+
userId?: string;
|
|
11
|
+
title?: string;
|
|
12
|
+
metadata?: Record<string, unknown>;
|
|
13
|
+
}
|
|
14
|
+
export interface SessionListQuery {
|
|
15
|
+
userId?: string;
|
|
16
|
+
limit?: number;
|
|
17
|
+
offset?: number;
|
|
18
|
+
}
|
|
19
|
+
export type SessionView = SessionRecord;
|
|
20
|
+
export declare class SessionCapabilityError extends Error {
|
|
21
|
+
readonly code = "not_supported";
|
|
22
|
+
readonly status = 501;
|
|
23
|
+
constructor(message?: string);
|
|
24
|
+
}
|
|
25
|
+
export interface AgentSessionManager {
|
|
26
|
+
create(input?: CreateSessionInput): Promise<SessionView>;
|
|
27
|
+
get(sessionId: string): Promise<SessionView | null>;
|
|
28
|
+
list(query?: SessionListQuery): Promise<Page<SessionView>>;
|
|
29
|
+
restore(sessionId: string): Promise<SessionView>;
|
|
30
|
+
archive(sessionId: string): Promise<SessionView>;
|
|
31
|
+
}
|
|
32
|
+
export declare function createSessionManager(getRuntime: () => DevRuntime, agentCode: string, defaultUserId?: string): AgentSessionManager;
|
|
33
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/service/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEpE,MAAM,WAAW,IAAI,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,IAAI,mBAAmB;IAChC,QAAQ,CAAC,MAAM,OAAO;gBAEV,OAAO,SAA4D;CAIhF;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IACpD,IAAI,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CAClD;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,UAAU,EAC5B,SAAS,EAAE,MAAM,EACjB,aAAa,SAAiB,GAC7B,mBAAmB,CAmCrB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export class SessionCapabilityError extends Error {
|
|
2
|
+
code = 'not_supported';
|
|
3
|
+
status = 501;
|
|
4
|
+
constructor(message = 'Session restore is not supported by the current Runtime') {
|
|
5
|
+
super(message);
|
|
6
|
+
this.name = 'SessionCapabilityError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export function createSessionManager(getRuntime, agentCode, defaultUserId = 'default-user') {
|
|
10
|
+
return {
|
|
11
|
+
async create(input = {}) {
|
|
12
|
+
const userId = input.userId?.trim() || defaultUserId;
|
|
13
|
+
return getRuntime().sessionService.createSession({
|
|
14
|
+
...(input.id ? { id: input.id } : {}),
|
|
15
|
+
userId,
|
|
16
|
+
agentId: agentCode,
|
|
17
|
+
...(input.title !== undefined ? { title: input.title } : {}),
|
|
18
|
+
...(input.metadata !== undefined ? { metadata: input.metadata } : {}),
|
|
19
|
+
});
|
|
20
|
+
},
|
|
21
|
+
async get(sessionId) {
|
|
22
|
+
return getRuntime().sessionService.findSession(sessionId);
|
|
23
|
+
},
|
|
24
|
+
async list(query = {}) {
|
|
25
|
+
const limit = normalizePageSize(query.limit);
|
|
26
|
+
const offset = normalizeOffset(query.offset);
|
|
27
|
+
const service = getRuntime().sessionService;
|
|
28
|
+
const items = query.userId
|
|
29
|
+
? await service.listSessions(query.userId, { limit, offset })
|
|
30
|
+
: await listAllOrPage(service, limit, offset);
|
|
31
|
+
return { items, limit, offset };
|
|
32
|
+
},
|
|
33
|
+
async restore(_sessionId) {
|
|
34
|
+
throw new SessionCapabilityError();
|
|
35
|
+
},
|
|
36
|
+
async archive(sessionId) {
|
|
37
|
+
const service = getRuntime().sessionService;
|
|
38
|
+
await service.archiveSession(sessionId);
|
|
39
|
+
const session = await service.findSession(sessionId);
|
|
40
|
+
if (!session)
|
|
41
|
+
throw new Error(`Session not found: ${sessionId}`);
|
|
42
|
+
return session;
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
async function listAllOrPage(service, limit, offset) {
|
|
47
|
+
if (typeof service.listAllSessions === 'function') {
|
|
48
|
+
const all = await service.listAllSessions();
|
|
49
|
+
return all.slice(offset, offset + limit);
|
|
50
|
+
}
|
|
51
|
+
return service.listSessions('default-user', { limit, offset });
|
|
52
|
+
}
|
|
53
|
+
function normalizePageSize(value) {
|
|
54
|
+
if (value === undefined)
|
|
55
|
+
return 50;
|
|
56
|
+
if (!Number.isInteger(value) || value < 1 || value > 500)
|
|
57
|
+
throw new RangeError('Session limit must be an integer between 1 and 500');
|
|
58
|
+
return value;
|
|
59
|
+
}
|
|
60
|
+
function normalizeOffset(value) {
|
|
61
|
+
if (value === undefined)
|
|
62
|
+
return 0;
|
|
63
|
+
if (!Number.isInteger(value) || value < 0)
|
|
64
|
+
throw new RangeError('Session offset must be a non-negative integer');
|
|
65
|
+
return value;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/service/sessions.ts"],"names":[],"mappings":"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"}
|
package/dist/service/types.d.ts
CHANGED
|
@@ -1,54 +1,143 @@
|
|
|
1
|
-
import type { ConversationDetail, DevRuntime, ExecuteParams,
|
|
1
|
+
import type { ConversationDetail, DevRuntime, ExecuteParams, GraphDSL as RuntimeGraphDSL, LlmTurnIndexEntry, LlmTurnRecord, MessageRecord, SSEEvent, SessionRecord } from '@gt-fe/eap-runtime';
|
|
2
2
|
import type { ResolvedAgentProject } from '../discovery/index.js';
|
|
3
3
|
import type { PreparedAgentRuntime } from '../materialization/index.js';
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export type
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
runtimeFactory?: AgentRuntimeFactory;
|
|
16
|
-
messages?: GraphMessage[];
|
|
4
|
+
import type { AgentEventManager } from './events.js';
|
|
5
|
+
import type { AgentMessageManager } from './messages.js';
|
|
6
|
+
import type { AgentResourceManager } from './resources.js';
|
|
7
|
+
import type { AgentSessionManager } from './sessions.js';
|
|
8
|
+
export type AgentEventHandler = (event: SSEEvent) => void | Promise<void>;
|
|
9
|
+
/** Request options accepted by both invoke and stream. */
|
|
10
|
+
export type AgentRequest = Omit<ExecuteParams, 'agentCode' | 'input'> & {
|
|
11
|
+
/** Receives the same Runtime SSEEvent values yielded by stream(). */
|
|
12
|
+
onEvent?: AgentEventHandler;
|
|
13
|
+
/** Event callback errors are ignored by default so Runtime results are unchanged. */
|
|
14
|
+
onEventError?: 'ignore' | 'throw';
|
|
17
15
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
16
|
+
* RAG 会话勾选的数据源 id 列表。
|
|
17
|
+
* undefined = 目录全部启用(缺省);[] = 全不勾(外部源全拒;声明过 local-file 未勾 → 本地关闭)。
|
|
18
|
+
* TODO(runtime): 最新 @gt-fe/eap-runtime 尚未在 ExecuteParams 上发布该字段,
|
|
19
|
+
* 暂由 SDK 在 AgentRequest 补齐并随 execute/stream 透传;待 runtime 更新后迁移到 ExecuteParams 并移除 SDK 侧声明。
|
|
22
20
|
*/
|
|
23
|
-
|
|
21
|
+
ragSources?: string[];
|
|
22
|
+
/**
|
|
23
|
+
* RAG 本地检索范围(只作用本地源)。
|
|
24
|
+
* dirPaths 按目录整棵圈定(含子目录);fileIds 与 dirPaths 取并集;fileIds: [] 显式关本地(引擎回空)。
|
|
25
|
+
* TODO(runtime): 最新 @gt-fe/eap-runtime 尚未在 ExecuteParams 上发布该字段,
|
|
26
|
+
* 暂由 SDK 在 AgentRequest 补齐并随 execute/stream 透传;待 runtime 更新后迁移到 ExecuteParams 并移除 SDK 侧声明。
|
|
27
|
+
*/
|
|
28
|
+
ragScope?: {
|
|
29
|
+
fileIds?: string[];
|
|
30
|
+
dirPaths?: string[];
|
|
31
|
+
};
|
|
24
32
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
33
|
+
export type AgentStream = AsyncIterable<SSEEvent>;
|
|
34
|
+
export type AgentInvokeResult = ReturnType<DevRuntime['agentRuntime']['execute']>;
|
|
35
|
+
export interface CredentialToken {
|
|
36
|
+
value: string;
|
|
37
|
+
expiresAt?: string;
|
|
38
|
+
subject?: string;
|
|
39
|
+
scopes?: string[];
|
|
40
|
+
}
|
|
41
|
+
export interface AgentCredentialProvider {
|
|
42
|
+
getToken(input: {
|
|
43
|
+
audience: 'portal' | 'foundation' | 'runtime';
|
|
44
|
+
agentCode: string;
|
|
45
|
+
requestId?: string;
|
|
46
|
+
signal?: AbortSignal;
|
|
47
|
+
}): Promise<CredentialToken>;
|
|
48
|
+
invalidate?(input: {
|
|
49
|
+
audience: string;
|
|
50
|
+
reason: 'expired' | 'unauthorized' | 'revoked';
|
|
51
|
+
}): Promise<void> | void;
|
|
52
|
+
}
|
|
53
|
+
export interface EmbeddedSdkConfig {
|
|
54
|
+
platform?: {
|
|
55
|
+
portalEndpoint?: string;
|
|
56
|
+
foundationEndpoint?: string;
|
|
57
|
+
};
|
|
58
|
+
credentials: {
|
|
59
|
+
provider?: AgentCredentialProvider;
|
|
60
|
+
/** Development-only token. It is rejected for server deployments. */
|
|
61
|
+
developmentToken?: string;
|
|
62
|
+
};
|
|
63
|
+
resources?: {
|
|
64
|
+
manager: AgentResourceManager;
|
|
65
|
+
};
|
|
66
|
+
runtime?: {
|
|
67
|
+
environment?: Record<string, string>;
|
|
68
|
+
/** An already authenticated runtime adapter may be used in server mode. */
|
|
69
|
+
authenticated?: boolean;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export interface ReloadResult {
|
|
73
|
+
status: 'effective' | 'failed';
|
|
74
|
+
revision: string;
|
|
75
|
+
error?: {
|
|
76
|
+
code: string;
|
|
77
|
+
message: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
export interface ConfigWriteResult {
|
|
81
|
+
revision: string;
|
|
82
|
+
status: 'pending' | 'effective';
|
|
83
|
+
requiresReload: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface RuntimeConfigView {
|
|
86
|
+
revision: string;
|
|
87
|
+
pending: boolean;
|
|
88
|
+
environment: Readonly<Record<string, string>>;
|
|
89
|
+
}
|
|
90
|
+
export interface RuntimeConfigPatch {
|
|
91
|
+
environment?: Record<string, string>;
|
|
92
|
+
[key: string]: unknown;
|
|
93
|
+
}
|
|
94
|
+
export interface AgentConfigApi {
|
|
95
|
+
read(): RuntimeConfigView;
|
|
96
|
+
write(patch: RuntimeConfigPatch): Promise<ConfigWriteResult>;
|
|
97
|
+
apply(): Promise<ReloadResult>;
|
|
98
|
+
}
|
|
99
|
+
export type AgentRuntimeFactory = (prepared: PreparedAgentRuntime, environment: Record<string, string>) => DevRuntime;
|
|
100
|
+
export interface CreateAgentOptions {
|
|
101
|
+
/** 已物化的 Runtime 根目录;缺省读取 EAP_RUNTIME_ROOT 或 dist/.eap/runtime。 */
|
|
102
|
+
runtimeRoot?: string;
|
|
32
103
|
agentCode?: string;
|
|
33
104
|
version?: string;
|
|
34
105
|
runtimeFactory?: AgentRuntimeFactory;
|
|
106
|
+
sessionPersistence?: boolean;
|
|
35
107
|
environment?: Record<string, string>;
|
|
36
108
|
deploymentContext?: 'dev' | 'desktop' | 'server';
|
|
37
|
-
sessionPersistence?: boolean;
|
|
38
109
|
sessionDirectory?: string;
|
|
110
|
+
embeddedConfig?: EmbeddedSdkConfig;
|
|
111
|
+
}
|
|
112
|
+
export interface AgentGraphApi {
|
|
113
|
+
read(): RuntimeGraphDSL;
|
|
114
|
+
replace(graph: RuntimeGraphDSL): Promise<ConfigWriteResult>;
|
|
115
|
+
update(updater: (graph: RuntimeGraphDSL) => RuntimeGraphDSL | void | Promise<RuntimeGraphDSL | void>): Promise<ConfigWriteResult>;
|
|
39
116
|
}
|
|
40
|
-
|
|
117
|
+
/** Runtime-backed Agent API. It does not start an HTTP server. */
|
|
118
|
+
export interface Agent {
|
|
41
119
|
readonly target: ResolvedAgentProject;
|
|
42
120
|
readonly runtime: DevRuntime;
|
|
43
|
-
|
|
44
|
-
|
|
121
|
+
readonly graph: AgentGraphApi;
|
|
122
|
+
readonly config: AgentConfigApi;
|
|
123
|
+
readonly resources: AgentResourceManager;
|
|
124
|
+
readonly sessions: AgentSessionManager;
|
|
125
|
+
readonly messages: AgentMessageManager;
|
|
126
|
+
readonly events: AgentEventManager;
|
|
127
|
+
readonly credentials?: AgentCredentialProvider;
|
|
128
|
+
invoke(input: string, options?: AgentRequest): AgentInvokeResult;
|
|
129
|
+
stream(input: string, options?: AgentRequest): AgentStream;
|
|
45
130
|
getConversation(sessionId: string): Promise<ConversationDetail>;
|
|
46
131
|
listConversations(options?: {
|
|
47
132
|
userId?: string;
|
|
48
133
|
}): Promise<SessionRecord[]>;
|
|
49
134
|
listLlmTurns(sessionId: string): Promise<LlmTurnIndexEntry[]>;
|
|
50
135
|
getLlmTurn(sessionId: string, turnId: string): Promise<LlmTurnRecord | null>;
|
|
51
|
-
|
|
52
|
-
|
|
136
|
+
reload(): Promise<ReloadResult>;
|
|
137
|
+
dispose(): void;
|
|
53
138
|
}
|
|
139
|
+
export type AgentFacade = Agent;
|
|
140
|
+
export type CodeAgentFacade = Agent;
|
|
141
|
+
export type GraphAgentFacade = Agent;
|
|
142
|
+
export type { ConversationDetail, MessageRecord, RuntimeGraphDSL, SSEEvent, SessionRecord };
|
|
54
143
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/service/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gt-fe/eap-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "EAP Agent 开发 SDK — Runtime 开发服务、项目校验与确定性打包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@gt-fe/eap-contracts": "0.0.11",
|
|
20
|
-
"@gt-fe/eap-runtime": "0.0.
|
|
20
|
+
"@gt-fe/eap-runtime": "0.0.17",
|
|
21
21
|
"yaml": "^2.9.0",
|
|
22
22
|
"zod": "^3.25.76"
|
|
23
23
|
},
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { PreparedAgentRuntime } from './types.js';
|
|
2
|
-
export interface AuthorResourceSyncResult {
|
|
3
|
-
skills: {
|
|
4
|
-
updated: string[];
|
|
5
|
-
removed: string[];
|
|
6
|
-
};
|
|
7
|
-
tools: {
|
|
8
|
-
updated: string[];
|
|
9
|
-
removed: string[];
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* 开发态:把工程作者源 `skills/`、`tools/` 对账到 Runtime 读的
|
|
14
|
-
* `agents/<code>/<ver>/preinstall/{skills,tools}/`。
|
|
15
|
-
*
|
|
16
|
-
* 只同步 `agent.manifest.json` 引用、且已在锁文件中的资源;未引用的本地
|
|
17
|
-
* 目录不会进入 `.eap/runtime`。不删除 dest 里多出来的包(Registry 物化的
|
|
18
|
-
* Skill/Tool 必须保留)。热加载以 Runtime 读作者源为准。
|
|
19
|
-
*/
|
|
20
|
-
export declare function syncAuthorResources(prepared: PreparedAgentRuntime): AuthorResourceSyncResult;
|
|
21
|
-
//# sourceMappingURL=sync-author-resources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-author-resources.d.ts","sourceRoot":"","sources":["../../src/materialization/sync-author-resources.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAKvD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IACjD,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,wBAAwB,CAM5F"}
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { copyFileSync, existsSync, lstatSync, mkdirSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
2
|
-
import { join, relative, resolve } from 'node:path';
|
|
3
|
-
import { copyResourceDirectory } from './copy-resource-directory.js';
|
|
4
|
-
const SKILL_CODE = /^[a-z0-9][a-z0-9-]*$/;
|
|
5
|
-
const TOOL_CODE = /^[a-z0-9][a-z0-9_-]*$/;
|
|
6
|
-
/**
|
|
7
|
-
* 开发态:把工程作者源 `skills/`、`tools/` 对账到 Runtime 读的
|
|
8
|
-
* `agents/<code>/<ver>/preinstall/{skills,tools}/`。
|
|
9
|
-
*
|
|
10
|
-
* 只同步 `agent.manifest.json` 引用、且已在锁文件中的资源;未引用的本地
|
|
11
|
-
* 目录不会进入 `.eap/runtime`。不删除 dest 里多出来的包(Registry 物化的
|
|
12
|
-
* Skill/Tool 必须保留)。热加载以 Runtime 读作者源为准。
|
|
13
|
-
*/
|
|
14
|
-
export function syncAuthorResources(prepared) {
|
|
15
|
-
syncPromptFiles(prepared.projectRoot, prepared.agentDir);
|
|
16
|
-
return {
|
|
17
|
-
skills: syncKind(prepared.projectRoot, prepared.agentDir, 'skills', SKILL_CODE, declaredCodes(prepared, 'skills')),
|
|
18
|
-
tools: syncKind(prepared.projectRoot, prepared.agentDir, 'tools', TOOL_CODE, declaredCodes(prepared, 'tools')),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function declaredCodes(prepared, kind) {
|
|
22
|
-
return new Set(prepared.resources
|
|
23
|
-
.filter((resource) => resource.kind === kind)
|
|
24
|
-
.map((resource) => resource.code));
|
|
25
|
-
}
|
|
26
|
-
function syncPromptFiles(projectRoot, agentDir) {
|
|
27
|
-
const source = join(projectRoot, 'prompts');
|
|
28
|
-
if (!existsSync(source) || !isRegularDirectory(source))
|
|
29
|
-
return;
|
|
30
|
-
const dest = join(agentDir, 'prompts');
|
|
31
|
-
mkdirSync(dest, { recursive: true });
|
|
32
|
-
for (const name of readdirSync(source)) {
|
|
33
|
-
const from = join(source, name);
|
|
34
|
-
if (!lstatSync(from).isFile())
|
|
35
|
-
continue;
|
|
36
|
-
copyFileSync(from, join(dest, name));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function syncKind(projectRoot, agentDir, kind, codePattern, declaredCodes) {
|
|
40
|
-
const sourceRoot = resolve(projectRoot, kind);
|
|
41
|
-
const destRoot = resolve(agentDir, 'preinstall', kind);
|
|
42
|
-
const updated = [];
|
|
43
|
-
const removed = [];
|
|
44
|
-
if (!existsSync(sourceRoot) || !isRegularDirectory(sourceRoot)) {
|
|
45
|
-
return { updated, removed };
|
|
46
|
-
}
|
|
47
|
-
mkdirSync(destRoot, { recursive: true });
|
|
48
|
-
const sourceCodes = listCodes(sourceRoot, codePattern).filter((code) => declaredCodes.has(code));
|
|
49
|
-
for (const code of sourceCodes) {
|
|
50
|
-
const source = join(sourceRoot, code);
|
|
51
|
-
const dest = join(destRoot, code);
|
|
52
|
-
if (directoryStamp(source) === directoryStamp(dest))
|
|
53
|
-
continue;
|
|
54
|
-
rmSync(dest, { recursive: true, force: true });
|
|
55
|
-
copyResourceDirectory(source, dest);
|
|
56
|
-
writeFileSync(join(dest, '.ready'), '');
|
|
57
|
-
updated.push(code);
|
|
58
|
-
}
|
|
59
|
-
return { updated, removed };
|
|
60
|
-
}
|
|
61
|
-
function listCodes(root, codePattern) {
|
|
62
|
-
return readdirSync(root)
|
|
63
|
-
.filter((name) => codePattern.test(name) && isRegularDirectory(join(root, name)))
|
|
64
|
-
.sort();
|
|
65
|
-
}
|
|
66
|
-
function directoryStamp(root) {
|
|
67
|
-
if (!existsSync(root) || !isRegularDirectory(root))
|
|
68
|
-
return '';
|
|
69
|
-
const parts = [];
|
|
70
|
-
walkFiles(root, root, parts);
|
|
71
|
-
return parts.sort().join('\n');
|
|
72
|
-
}
|
|
73
|
-
function walkFiles(root, current, parts) {
|
|
74
|
-
for (const entry of readdirSync(current, { withFileTypes: true }).sort((left, right) => left.name.localeCompare(right.name))) {
|
|
75
|
-
if (entry.name === '.ready' || entry.name === '.env' || entry.name.startsWith('.env.') || entry.name.endsWith('.tmp')) {
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
const path = join(current, entry.name);
|
|
79
|
-
if (entry.isSymbolicLink())
|
|
80
|
-
continue;
|
|
81
|
-
if (entry.isDirectory()) {
|
|
82
|
-
if (entry.name === '.git' || entry.name === '.eap' || entry.name === 'node_modules')
|
|
83
|
-
continue;
|
|
84
|
-
walkFiles(root, path, parts);
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
if (!entry.isFile())
|
|
88
|
-
continue;
|
|
89
|
-
const stat = lstatSync(path);
|
|
90
|
-
const rel = relative(root, path).split(/[\\/]/).join('/');
|
|
91
|
-
parts.push(`${rel}:${stat.size}:${Math.floor(stat.mtimeMs)}`);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
function isRegularDirectory(path) {
|
|
95
|
-
const stat = lstatSync(path);
|
|
96
|
-
return stat.isDirectory() && !stat.isSymbolicLink();
|
|
97
|
-
}
|
|
98
|
-
//# sourceMappingURL=sync-author-resources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sync-author-resources.js","sourceRoot":"","sources":["../../src/materialization/sync-author-resources.ts"],"names":[],"mappings":"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"}
|