gbz185-sdk 0.1.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.
Files changed (86) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/LICENSE +21 -0
  3. package/README.md +192 -0
  4. package/dist/agent-maintenance.d.ts +35 -0
  5. package/dist/agent-maintenance.d.ts.map +1 -0
  6. package/dist/agent-maintenance.js +107 -0
  7. package/dist/agent-maintenance.js.map +1 -0
  8. package/dist/authorization.d.ts +32 -0
  9. package/dist/authorization.d.ts.map +1 -0
  10. package/dist/authorization.js +37 -0
  11. package/dist/authorization.js.map +1 -0
  12. package/dist/client.d.ts +39 -0
  13. package/dist/client.d.ts.map +1 -0
  14. package/dist/client.js +70 -0
  15. package/dist/client.js.map +1 -0
  16. package/dist/conformance.d.ts +11 -0
  17. package/dist/conformance.d.ts.map +1 -0
  18. package/dist/conformance.js +195 -0
  19. package/dist/conformance.js.map +1 -0
  20. package/dist/credentials.d.ts +124 -0
  21. package/dist/credentials.d.ts.map +1 -0
  22. package/dist/credentials.js +209 -0
  23. package/dist/credentials.js.map +1 -0
  24. package/dist/description-registry.d.ts +66 -0
  25. package/dist/description-registry.d.ts.map +1 -0
  26. package/dist/description-registry.js +137 -0
  27. package/dist/description-registry.js.map +1 -0
  28. package/dist/discovery.d.ts +14 -0
  29. package/dist/discovery.d.ts.map +1 -0
  30. package/dist/discovery.js +105 -0
  31. package/dist/discovery.js.map +1 -0
  32. package/dist/factory.d.ts +34 -0
  33. package/dist/factory.d.ts.map +1 -0
  34. package/dist/factory.js +98 -0
  35. package/dist/factory.js.map +1 -0
  36. package/dist/functional-architecture.d.ts +18 -0
  37. package/dist/functional-architecture.d.ts.map +1 -0
  38. package/dist/functional-architecture.js +159 -0
  39. package/dist/functional-architecture.js.map +1 -0
  40. package/dist/identity-code.d.ts +8 -0
  41. package/dist/identity-code.d.ts.map +1 -0
  42. package/dist/identity-code.js +76 -0
  43. package/dist/identity-code.js.map +1 -0
  44. package/dist/identity-registry.d.ts +68 -0
  45. package/dist/identity-registry.d.ts.map +1 -0
  46. package/dist/identity-registry.js +155 -0
  47. package/dist/identity-registry.js.map +1 -0
  48. package/dist/index.d.ts +19 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +19 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/interaction.d.ts +41 -0
  53. package/dist/interaction.d.ts.map +1 -0
  54. package/dist/interaction.js +95 -0
  55. package/dist/interaction.js.map +1 -0
  56. package/dist/message-distribution.d.ts +18 -0
  57. package/dist/message-distribution.d.ts.map +1 -0
  58. package/dist/message-distribution.js +35 -0
  59. package/dist/message-distribution.js.map +1 -0
  60. package/dist/tool-access.d.ts +16 -0
  61. package/dist/tool-access.d.ts.map +1 -0
  62. package/dist/tool-access.js +30 -0
  63. package/dist/tool-access.js.map +1 -0
  64. package/dist/tools.d.ts +18 -0
  65. package/dist/tools.d.ts.map +1 -0
  66. package/dist/tools.js +77 -0
  67. package/dist/tools.js.map +1 -0
  68. package/dist/transport.d.ts +21 -0
  69. package/dist/transport.d.ts.map +1 -0
  70. package/dist/transport.js +36 -0
  71. package/dist/transport.js.map +1 -0
  72. package/dist/types.d.ts +165 -0
  73. package/dist/types.d.ts.map +1 -0
  74. package/dist/types.js +2 -0
  75. package/dist/types.js.map +1 -0
  76. package/dist/validation.d.ts +12 -0
  77. package/dist/validation.d.ts.map +1 -0
  78. package/dist/validation.js +94 -0
  79. package/dist/validation.js.map +1 -0
  80. package/docs/API_REFERENCE.md +116 -0
  81. package/docs/CONFORMANCE.md +96 -0
  82. package/docs/GITHUB_PAGES.md +54 -0
  83. package/docs/NPM_RELEASE.md +107 -0
  84. package/docs/SDK_GUIDE.md +439 -0
  85. package/examples/calendar.ts +105 -0
  86. package/package.json +60 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-access.js","sourceRoot":"","sources":["../src/tool-access.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD,KAAK,CAAC,WAAW,CAAC,eAA0B;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAA0B;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,KAKzB;QACC,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;QACvC,MAAM,OAAO,GAAuB,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;QACnC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAClD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import type { JsonObject, ToolDescriptor, ToolInvokeItem, ToolInvokeRequest, ToolInvokeResult, ToolSyncData, ToolUpdateData } from "./types.js";
2
+ export type ToolHandler = (input: JsonObject, context: {
3
+ sessionId: string | number;
4
+ item: ToolInvokeItem;
5
+ }) => Promise<JsonObject> | JsonObject;
6
+ export interface RegisteredTool {
7
+ descriptor: ToolDescriptor;
8
+ handler: ToolHandler;
9
+ }
10
+ export declare class ToolRuntime {
11
+ private tools;
12
+ private updatedTools;
13
+ registerTool(descriptor: ToolDescriptor, handler: ToolHandler): Promise<ToolDescriptor>;
14
+ listTools(requestedToolIds?: string[]): Promise<ToolSyncData>;
15
+ getUpdates(): Promise<ToolUpdateData>;
16
+ invoke(request: ToolInvokeRequest): Promise<ToolInvokeResult>;
17
+ }
18
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAkB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhK,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,KAAK,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC;AAEjJ,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,YAAY,CAAqB;IAEnC,YAAY,CAAC,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC;IAOvF,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAW7D,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAarC,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyCpE"}
package/dist/tools.js ADDED
@@ -0,0 +1,77 @@
1
+ import { assertToolDescriptor } from "./validation.js";
2
+ export class ToolRuntime {
3
+ tools = new Map();
4
+ updatedTools = new Set();
5
+ async registerTool(descriptor, handler) {
6
+ assertToolDescriptor(descriptor);
7
+ this.tools.set(toolKey(descriptor.toolId, descriptor.toolVersion), { descriptor, handler });
8
+ this.updatedTools.add(descriptor.toolId);
9
+ return descriptor;
10
+ }
11
+ async listTools(requestedToolIds) {
12
+ const requested = requestedToolIds ? new Set(requestedToolIds) : undefined;
13
+ return {
14
+ syncType: requested ? 2 : 1,
15
+ timestamp: Date.now(),
16
+ toolSyncList: [...this.tools.values()]
17
+ .map((tool) => tool.descriptor)
18
+ .filter((descriptor) => !requested || requested.has(descriptor.toolId))
19
+ };
20
+ }
21
+ async getUpdates() {
22
+ const updateIds = new Set(this.updatedTools);
23
+ this.updatedTools.clear();
24
+ return {
25
+ syncType: 2,
26
+ timestamp: Date.now(),
27
+ toolUpdateList: [...this.tools.values()]
28
+ .map((tool) => tool.descriptor)
29
+ .filter((descriptor) => updateIds.has(descriptor.toolId))
30
+ .map(({ toolId, toolName, toolDescription, toolVersion }) => ({ toolId, toolName, toolDescription, toolVersion }))
31
+ };
32
+ }
33
+ async invoke(request) {
34
+ const results = [];
35
+ for (const item of request.toolInvokeList) {
36
+ const registered = this.tools.get(toolKey(item.toolId, item.toolVersion));
37
+ if (!registered) {
38
+ results.push({
39
+ toolId: item.toolId,
40
+ toolVersion: item.toolVersion,
41
+ statusCode: "TOOL_NOT_FOUND",
42
+ ok: false,
43
+ error: `Tool not found: ${item.toolId}@${item.toolVersion}`
44
+ });
45
+ continue;
46
+ }
47
+ try {
48
+ const output = await registered.handler(item.toolInputParam, { sessionId: request.sessionId, item });
49
+ results.push({
50
+ toolId: item.toolId,
51
+ toolVersion: item.toolVersion,
52
+ toolOutputParam: output,
53
+ statusCode: 0,
54
+ ok: true
55
+ });
56
+ }
57
+ catch (error) {
58
+ results.push({
59
+ toolId: item.toolId,
60
+ toolVersion: item.toolVersion,
61
+ statusCode: "TOOL_EXECUTION_FAILED",
62
+ ok: false,
63
+ error: error.message
64
+ });
65
+ }
66
+ }
67
+ return {
68
+ sessionId: request.sessionId,
69
+ timestamp: request.timestamp ?? Date.now(),
70
+ toolResultList: results
71
+ };
72
+ }
73
+ }
74
+ function toolKey(toolId, version) {
75
+ return `${toolId}@${version}`;
76
+ }
77
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface JsonTransport {
2
+ request<TRequest = unknown, TResponse = unknown>(operation: string, payload: TRequest): Promise<TResponse>;
3
+ }
4
+ export type JsonOperationHandler<TRequest = unknown, TResponse = unknown> = (payload: TRequest) => Promise<TResponse> | TResponse;
5
+ export declare class InProcessJsonTransport implements JsonTransport {
6
+ private handlers;
7
+ register<TRequest = unknown, TResponse = unknown>(operation: string, handler: JsonOperationHandler<TRequest, TResponse>): void;
8
+ request<TRequest = unknown, TResponse = unknown>(operation: string, payload: TRequest): Promise<TResponse>;
9
+ }
10
+ export interface HttpJsonTransportOptions {
11
+ endpoint: string;
12
+ fetchImpl?: typeof fetch;
13
+ headers?: Record<string, string>;
14
+ }
15
+ export declare class HttpJsonTransport implements JsonTransport {
16
+ private readonly options;
17
+ private readonly fetchImpl;
18
+ constructor(options: HttpJsonTransportOptions);
19
+ request<TRequest = unknown, TResponse = unknown>(operation: string, payload: TRequest): Promise<TResponse>;
20
+ }
21
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;CAC5G;AAED,MAAM,MAAM,oBAAoB,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AAElI,qBAAa,sBAAuB,YAAW,aAAa;IAC1D,OAAO,CAAC,QAAQ,CAA2C;IAE3D,QAAQ,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI;IAIxH,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAOjH;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAGzC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;gBAEZ,OAAO,EAAE,wBAAwB;IAIxD,OAAO,CAAC,QAAQ,GAAG,OAAO,EAAE,SAAS,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAcjH"}
@@ -0,0 +1,36 @@
1
+ export class InProcessJsonTransport {
2
+ handlers = new Map();
3
+ register(operation, handler) {
4
+ this.handlers.set(operation, handler);
5
+ }
6
+ async request(operation, payload) {
7
+ const handler = this.handlers.get(operation);
8
+ if (!handler) {
9
+ throw new Error(`No JSON transport handler registered for operation: ${operation}`);
10
+ }
11
+ return handler(payload);
12
+ }
13
+ }
14
+ export class HttpJsonTransport {
15
+ options;
16
+ fetchImpl;
17
+ constructor(options) {
18
+ this.options = options;
19
+ this.fetchImpl = options.fetchImpl ?? fetch;
20
+ }
21
+ async request(operation, payload) {
22
+ const response = await this.fetchImpl(this.options.endpoint, {
23
+ method: "POST",
24
+ headers: {
25
+ "content-type": "application/json",
26
+ ...(this.options.headers ?? {})
27
+ },
28
+ body: JSON.stringify({ operation, payload })
29
+ });
30
+ if (!response.ok) {
31
+ throw new Error(`HTTP JSON transport failed: ${response.status} ${response.statusText}`);
32
+ }
33
+ return (await response.json());
34
+ }
35
+ }
36
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,sBAAsB;IACzB,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE3D,QAAQ,CAA0C,SAAiB,EAAE,OAAkD;QACrH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAA+B,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CAA0C,SAAiB,EAAE,OAAiB;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,SAAS,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAuB,CAAC;IAChD,CAAC;CACF;AAQD,MAAM,OAAO,iBAAiB;IAGC;IAFZ,SAAS,CAAe;IAEzC,YAA6B,OAAiC;QAAjC,YAAO,GAAP,OAAO,CAA0B;QAC5D,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAA0C,SAAiB,EAAE,OAAiB;QACzF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC3D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aAChC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;SAC7C,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAc,CAAC;IAC9C,CAAC;CACF"}
@@ -0,0 +1,165 @@
1
+ export type JsonPrimitive = string | number | boolean | null;
2
+ export type JsonValue = JsonPrimitive | JsonObject | JsonValue[];
3
+ export interface JsonObject {
4
+ [key: string]: JsonValue;
5
+ }
6
+ export type AgentInteractionMode = "point_to_point" | "group" | "hybrid";
7
+ export type AgentRole = "requester" | "service";
8
+ export type MessageArtifact = "work_communication" | "work_result";
9
+ export type TaskState = "accepted" | "rejected" | "completed" | "failed" | "cancelled" | "in_progress" | "progress";
10
+ export interface AgentIdentityCodeParts {
11
+ oid: "1.2.156.3088";
12
+ version: "1";
13
+ registrationServiceProvider: string;
14
+ registrationRequester: string;
15
+ ontologySerial: string;
16
+ instanceSerial: string;
17
+ }
18
+ export type AgentIdentityCode = string;
19
+ export interface SkillDescription {
20
+ skillId: string;
21
+ skillName: string;
22
+ skillDescription: string;
23
+ tags: string[];
24
+ examples?: string[] | undefined;
25
+ inputTypes: string[];
26
+ outputTypes: string[];
27
+ dependencies?: JsonObject[] | undefined;
28
+ }
29
+ export interface AccessMethod {
30
+ type: "url" | "ip" | "fqdn" | string;
31
+ address: string;
32
+ metadata?: JsonObject | undefined;
33
+ }
34
+ export interface AuthenticationDescription {
35
+ type: "none" | "x509" | "bearer" | "custom" | string;
36
+ metadata?: JsonObject | undefined;
37
+ }
38
+ export interface AgentDescription {
39
+ agentId: AgentIdentityCode;
40
+ name: string;
41
+ alias?: string | undefined;
42
+ version: string;
43
+ description: string;
44
+ iconAddress?: string | undefined;
45
+ provider: string | JsonObject;
46
+ accessAddress?: string | undefined;
47
+ accessMethod?: AccessMethod[] | undefined;
48
+ servingArea?: JsonObject | undefined;
49
+ authentication?: AuthenticationDescription | undefined;
50
+ capabilities: JsonObject;
51
+ defaultInputTypes: string[];
52
+ defaultOutputTypes: string[];
53
+ skills: SkillDescription[];
54
+ discoverable?: boolean | undefined;
55
+ available?: boolean | undefined;
56
+ metadata?: JsonObject | undefined;
57
+ }
58
+ export interface DiscoveryQuery {
59
+ text?: string | undefined;
60
+ agentId?: AgentIdentityCode | undefined;
61
+ name?: string | undefined;
62
+ requiredSkills?: string[] | undefined;
63
+ tags?: string[] | undefined;
64
+ inputTypes?: string[] | undefined;
65
+ outputTypes?: string[] | undefined;
66
+ includeUndiscoverable?: boolean | undefined;
67
+ requireAvailable?: boolean | undefined;
68
+ limit?: number | undefined;
69
+ }
70
+ export interface DiscoveryResult {
71
+ description: AgentDescription;
72
+ score: number;
73
+ matchedBy: string[];
74
+ }
75
+ export interface DataItem {
76
+ type: string;
77
+ metadata: JsonObject;
78
+ payload: unknown;
79
+ }
80
+ export interface Message {
81
+ senderRole: AgentRole;
82
+ senderId: AgentIdentityCode;
83
+ sessionId: string;
84
+ taskId?: string | undefined;
85
+ id: string;
86
+ artifact?: MessageArtifact | undefined;
87
+ final?: boolean | undefined;
88
+ chunkIndex?: number | undefined;
89
+ lastChunk?: boolean | undefined;
90
+ dataItems: DataItem[];
91
+ createdAt: string;
92
+ }
93
+ export interface Task {
94
+ id: string;
95
+ sessionId: string;
96
+ state: TaskState;
97
+ stateChangedAt?: string | undefined;
98
+ messages?: Message[] | undefined;
99
+ artifacts?: Array<Message | Task> | undefined;
100
+ }
101
+ export interface SessionReceiver {
102
+ agentId: AgentIdentityCode;
103
+ accessAddress?: string | undefined;
104
+ mode: AgentInteractionMode;
105
+ parameters?: JsonObject | undefined;
106
+ }
107
+ export interface Session {
108
+ id: string;
109
+ mode: AgentInteractionMode;
110
+ sender: {
111
+ agentId: AgentIdentityCode;
112
+ accessAddress?: string | undefined;
113
+ };
114
+ receivers: SessionReceiver[];
115
+ context?: Array<Message | Task> | undefined;
116
+ createdAt: string;
117
+ }
118
+ export interface ToolDescriptor {
119
+ toolId: string;
120
+ toolName: string;
121
+ toolDescription: string;
122
+ toolVersion: string;
123
+ toolInputParam: JsonObject;
124
+ toolOutputParam: JsonObject;
125
+ metadata?: JsonObject | undefined;
126
+ }
127
+ export interface ToolRequestData {
128
+ requestType: 1 | 2;
129
+ timestamp?: string | number | undefined;
130
+ toolRequestList?: string[] | undefined;
131
+ }
132
+ export interface ToolSyncData {
133
+ syncType: 1 | 2;
134
+ timestamp?: string | number | undefined;
135
+ toolSyncList: ToolDescriptor[];
136
+ }
137
+ export interface ToolUpdateData {
138
+ syncType: 2;
139
+ timestamp?: string | number | undefined;
140
+ toolUpdateList: Pick<ToolDescriptor, "toolId" | "toolName" | "toolDescription" | "toolVersion">[];
141
+ }
142
+ export interface ToolInvokeItem {
143
+ toolId: string;
144
+ toolVersion: string;
145
+ toolInputParam: JsonObject;
146
+ }
147
+ export interface ToolInvokeRequest {
148
+ sessionId: string | number;
149
+ timestamp?: string | number | undefined;
150
+ toolInvokeList: ToolInvokeItem[];
151
+ }
152
+ export interface ToolResultItem {
153
+ toolId: string;
154
+ toolVersion: string;
155
+ toolOutputParam?: JsonObject | undefined;
156
+ statusCode: string | number;
157
+ ok: boolean;
158
+ error?: string | undefined;
159
+ }
160
+ export interface ToolInvokeResult {
161
+ sessionId: string | number;
162
+ timestamp?: string | number | undefined;
163
+ toolResultList: ToolResultItem[];
164
+ }
165
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import type { AgentDescription, JsonObject, SkillDescription, ToolDescriptor } from "./types.js";
2
+ export interface ValidationResult {
3
+ ok: boolean;
4
+ errors: string[];
5
+ }
6
+ export declare function isJsonObject(value: unknown): value is JsonObject;
7
+ export declare function validateSkillDescription(skill: SkillDescription, path?: string): ValidationResult;
8
+ export declare function validateAgentDescription(description: AgentDescription): ValidationResult;
9
+ export declare function assertAgentDescription(description: AgentDescription): void;
10
+ export declare function validateToolDescriptor(tool: ToolDescriptor): ValidationResult;
11
+ export declare function assertToolDescriptor(tool: ToolDescriptor): void;
12
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAcD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,SAAU,GAAG,gBAAgB,CAelG;AAED,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,gBAAgB,GAAG,gBAAgB,CAkCxF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAK1E;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,cAAc,GAAG,gBAAgB,CAa7E;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAK/D"}
@@ -0,0 +1,94 @@
1
+ import { validateIdentityCode } from "./identity-code.js";
2
+ export function isJsonObject(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value);
4
+ }
5
+ function requiredString(value, path, errors) {
6
+ if (typeof value !== "string" || value.trim().length === 0) {
7
+ errors.push(`${path} must be a non-empty string`);
8
+ }
9
+ }
10
+ function requiredStringArray(value, path, errors) {
11
+ if (!Array.isArray(value) || value.length === 0 || value.some((item) => typeof item !== "string" || item.trim().length === 0)) {
12
+ errors.push(`${path} must be a non-empty string array`);
13
+ }
14
+ }
15
+ export function validateSkillDescription(skill, path = "skill") {
16
+ const errors = [];
17
+ requiredString(skill.skillId, `${path}.skillId`, errors);
18
+ requiredString(skill.skillName, `${path}.skillName`, errors);
19
+ requiredString(skill.skillDescription, `${path}.skillDescription`, errors);
20
+ requiredStringArray(skill.tags, `${path}.tags`, errors);
21
+ requiredStringArray(skill.inputTypes, `${path}.inputTypes`, errors);
22
+ requiredStringArray(skill.outputTypes, `${path}.outputTypes`, errors);
23
+ if (skill.examples !== undefined) {
24
+ requiredStringArray(skill.examples, `${path}.examples`, errors);
25
+ }
26
+ if (skill.dependencies !== undefined && (!Array.isArray(skill.dependencies) || skill.dependencies.some((item) => !isJsonObject(item)))) {
27
+ errors.push(`${path}.dependencies must be an array of JSON objects`);
28
+ }
29
+ return { ok: errors.length === 0, errors };
30
+ }
31
+ export function validateAgentDescription(description) {
32
+ const errors = [];
33
+ if (!validateIdentityCode(description.agentId)) {
34
+ errors.push("agentId must be a valid GB/Z 185 identity code");
35
+ }
36
+ requiredString(description.name, "name", errors);
37
+ requiredString(description.version, "version", errors);
38
+ requiredString(description.description, "description", errors);
39
+ if (!(typeof description.provider === "string" && description.provider.trim()) && !isJsonObject(description.provider)) {
40
+ errors.push("provider must be a non-empty string or JSON object");
41
+ }
42
+ if (!isJsonObject(description.capabilities)) {
43
+ errors.push("capabilities must be a JSON object");
44
+ }
45
+ requiredStringArray(description.defaultInputTypes, "defaultInputTypes", errors);
46
+ requiredStringArray(description.defaultOutputTypes, "defaultOutputTypes", errors);
47
+ if (!Array.isArray(description.skills) || description.skills.length === 0) {
48
+ errors.push("skills must contain at least one skill");
49
+ }
50
+ else {
51
+ for (const [index, skill] of description.skills.entries()) {
52
+ errors.push(...validateSkillDescription(skill, `skills[${index}]`).errors);
53
+ }
54
+ }
55
+ if (description.accessMethod !== undefined) {
56
+ if (!Array.isArray(description.accessMethod)) {
57
+ errors.push("accessMethod must be an array");
58
+ }
59
+ else {
60
+ for (const [index, method] of description.accessMethod.entries()) {
61
+ requiredString(method.type, `accessMethod[${index}].type`, errors);
62
+ requiredString(method.address, `accessMethod[${index}].address`, errors);
63
+ }
64
+ }
65
+ }
66
+ return { ok: errors.length === 0, errors };
67
+ }
68
+ export function assertAgentDescription(description) {
69
+ const result = validateAgentDescription(description);
70
+ if (!result.ok) {
71
+ throw new Error(`Invalid agent description: ${result.errors.join("; ")}`);
72
+ }
73
+ }
74
+ export function validateToolDescriptor(tool) {
75
+ const errors = [];
76
+ requiredString(tool.toolId, "toolId", errors);
77
+ requiredString(tool.toolName, "toolName", errors);
78
+ requiredString(tool.toolDescription, "toolDescription", errors);
79
+ requiredString(tool.toolVersion, "toolVersion", errors);
80
+ if (!isJsonObject(tool.toolInputParam)) {
81
+ errors.push("toolInputParam must be a JSON object");
82
+ }
83
+ if (!isJsonObject(tool.toolOutputParam)) {
84
+ errors.push("toolOutputParam must be a JSON object");
85
+ }
86
+ return { ok: errors.length === 0, errors };
87
+ }
88
+ export function assertToolDescriptor(tool) {
89
+ const result = validateToolDescriptor(tool);
90
+ if (!result.ok) {
91
+ throw new Error(`Invalid tool descriptor: ${result.errors.join("; ")}`);
92
+ }
93
+ }
94
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ # gbz185-sdk API Reference
2
+
3
+ This reference lists the main public APIs exported by `gbz185-sdk`.
4
+
5
+ ## Identity Code
6
+
7
+ | API | Purpose |
8
+ | --- | --- |
9
+ | `formatIdentityCode(parts)` | Builds a GB/Z 185.2 identity code with prefix `1.2.156.3088` and version `1`. |
10
+ | `parseIdentityCode(code)` | Parses identity code parts and validates OID/version/node structure. |
11
+ | `validateIdentityCode(code)` | Returns a boolean instead of throwing. |
12
+ | `validateIdentityCodeParts(parts)` | Validates parsed or manually assembled identity-code parts. |
13
+
14
+ ## Runtime Factory
15
+
16
+ | API | Purpose |
17
+ | --- | --- |
18
+ | `createAgentInterconnectRuntime()` | Creates the in-memory reference runtime with identity, credential, description, discovery, interaction, message distribution, tool access, tool service, transport, and client wired together. |
19
+ | `AgentInterconnectRuntime` | Interface describing the assembled runtime object. |
20
+
21
+ ## Agent-Side Facades
22
+
23
+ | API | Purpose |
24
+ | --- | --- |
25
+ | `AgentIdentityMaintenance` | Agent-side identity-code and credential maintenance: register, refresh, update, issue credential, lock/unlock/revoke account, lock/unlock/revoke credential. |
26
+ | `AgentDescriptionMaintenance` | Agent-side description maintenance: register, review request, publish, change, unpublish, revoke. |
27
+ | `InterconnectionAuthorizationRuntime` | Creates process credential packages, authenticates peers, evaluates authorization decisions, and supports mutual authentication. |
28
+ | `ToolAccessRuntime` | Agent-side tool access facade: get tool list, sync updates, invoke tools, repeat invocation until complete. |
29
+
30
+ ## Identity And Credentials
31
+
32
+ | API | Purpose |
33
+ | --- | --- |
34
+ | `IdentityRegistryRuntime` | Identity account lifecycle: register, update, issue credential, lock, unlock, revoke, get, list. |
35
+ | `IdentityAccount` | Account model with identity code, delegator, subject, status, evidence, credential IDs, audit log, timestamps. |
36
+ | `IdentityAuditEvent` | Audit event emitted by identity lifecycle operations. |
37
+ | `CredentialIssuer` | Interface for issuing, updating, locking, unlocking, revoking, and reading credentials. |
38
+ | `CredentialVerifier` | Interface for verifying process credential packages. |
39
+ | `DevelopmentCredentialIssuer` | Node.js crypto development implementation using Ed25519 keys. |
40
+ | `DevelopmentCredentialVerifier` | Development verifier for validity, status, audience, scope, and signature checks. |
41
+ | `CertificateChainVerifier` | Production extension point for X.509 chain validation. |
42
+ | `CredentialStatusStore` | Extension point for credential lock/revoke status lookup. |
43
+ | `createProcessCredentialPackage(input)` | Signs a process credential package for peer authentication. |
44
+
45
+ ## Agent Description
46
+
47
+ | API | Purpose |
48
+ | --- | --- |
49
+ | `AgentDescription` | GB/Z 185.4 agent description model. |
50
+ | `SkillDescription` | GB/Z 185.4 skill model. |
51
+ | `AgentDescriptionRegistry` | Description lifecycle: register, review, issue publication certificate, publish, change, unpublish, revoke, get, list. |
52
+ | `DescriptionRecord` | Stored description record with lifecycle status and publication metadata. |
53
+ | `PublicationCertificate` | Reference model for publication certificate metadata. |
54
+ | `validateAgentDescription(description)` | Returns validation errors for required fields and skills. |
55
+ | `assertAgentDescription(description)` | Throws on invalid descriptions. |
56
+
57
+ ## Discovery
58
+
59
+ | API | Purpose |
60
+ | --- | --- |
61
+ | `DiscoveryService` | Searches published and preset descriptions using text, identity code, name, skills, tags, IO types, discoverability, availability, and limit filters. |
62
+ | `PresetDiscoverySource` | Represents provider preset data, cached discovery results, user configuration, or `.well-known`-derived descriptions. |
63
+ | `DiscoveryQuery` | Query object for discovery. |
64
+ | `DiscoveryResult` | Scored result with matched fields. |
65
+
66
+ ## Interaction And Message Distribution
67
+
68
+ | API | Purpose |
69
+ | --- | --- |
70
+ | `InteractionRuntime` | Creates sessions, submits tasks, updates task state, sends messages, lists messages. |
71
+ | `MessageDistributionRuntime` | Distributes group messages to all recipients except the sender and stores delivery receipts. |
72
+ | `Session` | GB/Z 185.6 session model. |
73
+ | `Task` | GB/Z 185.6 task model. |
74
+ | `Message` | GB/Z 185.6 message model. |
75
+ | `DataItem` | GB/Z 185.6 data payload model. |
76
+
77
+ ## Tool Invocation
78
+
79
+ | API | Purpose |
80
+ | --- | --- |
81
+ | `ToolRuntime` | Resource-side tool service: register tools, list tools, get updates, invoke one or more tools. |
82
+ | `ToolDescriptor` | GB/Z 185.7 tool property description. |
83
+ | `ToolRequestData` | Tool-list request data shape. |
84
+ | `ToolSyncData` | Tool-list sync data shape. |
85
+ | `ToolUpdateData` | Tool-update notification data shape. |
86
+ | `ToolInvokeRequest` | Tool invocation request data shape. |
87
+ | `ToolInvokeResult` | Tool invocation result data shape. |
88
+
89
+ ## Client And Transport
90
+
91
+ | API | Purpose |
92
+ | --- | --- |
93
+ | `JsonTransport` | Transport contract: `request(operation, payload)`. |
94
+ | `InProcessJsonTransport` | Local in-process operation router used by the reference runtime. |
95
+ | `HttpJsonTransport` | Minimal HTTP adapter that POSTs `{ operation, payload }` to a configured endpoint. |
96
+ | `AgentInterconnectClient` | Client facade over identity, description, discovery, interaction, distribution, and tool operations. |
97
+
98
+ ## Conformance Metadata
99
+
100
+ | API | Purpose |
101
+ | --- | --- |
102
+ | `GBZ185_FUNCTIONS` | 12 GB/Z 185.1 function domains mapped to SDK surfaces. |
103
+ | `GBZ185_FRAI_INTERFACES` | FRAI-01 through FRAI-10 interface coverage map. |
104
+ | `GBZ185_CONFORMANCE_MATRIX` | Clause-level conformance map for GB/Z 185.1 through GB/Z 185.7. |
105
+
106
+ ## Production Extension Points
107
+
108
+ The reference runtime is intentionally replaceable. Production systems should implement these interfaces:
109
+
110
+ - `IdentityAccountStore`
111
+ - `DescriptionStore`
112
+ - `CredentialIssuer`
113
+ - `CredentialVerifier`
114
+ - `CredentialStatusStore`
115
+ - `CertificateChainVerifier`
116
+ - `JsonTransport`