@gencode/shared 0.0.12 → 0.0.14

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/index.d.ts CHANGED
@@ -8,5 +8,5 @@ export type { CollapseSpan, CompressionLayer, ContextCompactionState, ReadStateR
8
8
  export { isHitlPending, isHitlResolved, isHitlExpired, isHitlTool, HITL_TOOL_NAMES, parseTextToResolution } from "./hitl.js";
9
9
  export type { HitlKind, HitlChoice, HitlChoiceInput, HitlTextInput, HitlFormInput, HitlInputSchema, HitlPreview, HitlPolicy, HitlRequest, HitlResolution, HitlCheckpointPhase, HitlCheckpoint, HitlToolContext, HitlStatus, PausedRunState, HitlHistoryEntry, } from "./hitl.js";
10
10
  export { validateUiToolResult } from "./ui-tool.js";
11
- export type { UiToolFieldType, UiToolFieldSchema, UiToolSchema, UiToolRequest, UiToolResult, UiToolPendingStatus, UiToolPausedState, UiToolValidationError, UiToolValidationResult, } from "./ui-tool.js";
11
+ export type { UiToolExtra, UiToolJsonSchemaProperty, UiToolJsonSchemaType, UiToolSchema, UiToolRequest, UiToolResult, UiToolPendingStatus, UiToolPausedState, UiToolValidationError, UiToolValidationResult, } from "./ui-tool.js";
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC7H,YAAY,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,YAAY,EACV,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,oBAAoB,EACpB,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC7H,YAAY,EACV,QAAQ,EACR,UAAU,EACV,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EACV,WAAW,EACX,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { AgentProgressEvent } from "./agent-progress.js";
2
2
  import type { HitlKind, HitlRequest } from "./hitl.js";
3
- import type { UiToolSchema } from "./ui-tool.js";
3
+ import type { UiToolExtra, UiToolSchema } from "./ui-tool.js";
4
4
  export type Channel = "H5" | "WEB" | "KLPA" | "TASK" | "CRON" | "EIP_ASSISTANT" | (string & {});
5
5
  type EventEnvelopeBase = {
6
6
  sessionId: string;
@@ -27,6 +27,7 @@ export type RunResultPayload = {
27
27
  toolName: string;
28
28
  toolCallId: string;
29
29
  schema: UiToolSchema;
30
+ extra?: UiToolExtra;
30
31
  };
31
32
  context?: {
32
33
  snapshotPath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"run-events.d.ts","sourceRoot":"","sources":["../src/run-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-events.d.ts","sourceRoot":"","sources":["../src/run-events.ts"],"names":[],"mappings":"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"}
package/dist/ui-tool.d.ts CHANGED
@@ -3,122 +3,90 @@
3
3
  *
4
4
  * UI Tools are a special category of agent tools that, when invoked by the LLM,
5
5
  * immediately pause the agent loop and request structured user input through
6
- * a front-end rendered form. Unlike HITL, UI tools are lightweight and do not
7
- * persist pause state to disk — the interrupt is transient and resolved within
8
- * the same CLI invocation when the user submits data.
9
- *
10
- * Design:
11
- * 1. The agent calls a registered UI tool.
12
- * 2. The tool execution returns a UiToolPauseSignal (thrown as an error).
13
- * 3. The runner catches the signal, emits `ui_tool_request` progress event,
14
- * and ends the current run with a `uiToolPending` marker.
15
- * 4. The front-end renders the form described by `UiToolSchema`.
16
- * 5. On user submit, the CLI is re-invoked with the UI tool result.
17
- * 6. The result is validated against the schema (or custom validator),
18
- * written as a `tool_result` entry in the transcript, and the agent
19
- * loop resumes.
6
+ * a front-end rendered form.
20
7
  */
21
- /** Supported primitive field types for UI tool forms. */
22
- export type UiToolFieldType = "string" | "number" | "boolean" | "date" | "select" | "multiselect" | "textarea" | "file";
23
- /** Describes a single field in a UI tool form. */
24
- export type UiToolFieldSchema = {
25
- /** Machine-readable field key (used in the submitted values object). */
26
- name: string;
27
- /** Human-readable label rendered next to the input. */
28
- label: string;
29
- /** The input type. */
30
- type: UiToolFieldType;
31
- /** Whether the field is required (defaults to false). */
32
- required?: boolean;
33
- /** Placeholder text shown inside the input. */
34
- placeholder?: string;
35
- /** Help text / description shown below the field. */
8
+ export type UiToolJsonSchemaType = "string" | "number" | "integer" | "boolean" | "array" | "object";
9
+ export type UiToolPrimitiveSchema = {
10
+ type?: "string" | "number" | "integer" | "boolean";
11
+ title?: string;
12
+ description?: string;
13
+ default?: unknown;
14
+ enum?: unknown[];
15
+ format?: string;
16
+ minLength?: number;
17
+ maxLength?: number;
18
+ minimum?: number;
19
+ maximum?: number;
20
+ pattern?: string;
21
+ };
22
+ export type UiToolArraySchema = {
23
+ type: "array";
24
+ title?: string;
25
+ description?: string;
26
+ default?: unknown;
27
+ items?: UiToolJsonSchemaProperty;
28
+ minItems?: number;
29
+ maxItems?: number;
30
+ uniqueItems?: boolean;
31
+ };
32
+ export type UiToolObjectSchema = {
33
+ type: "object";
34
+ title?: string;
36
35
  description?: string;
37
- /** Default value for the field. */
38
- defaultValue?: unknown;
39
- /** For "select" / "multiselect": the available options. */
40
- options?: Array<{
41
- value: string;
42
- label: string;
43
- }>;
44
- /** JSON-Schema-style validation hints (e.g. minLength, pattern). */
45
- validation?: Record<string, unknown>;
36
+ properties?: Record<string, UiToolJsonSchemaProperty>;
37
+ required?: string[];
38
+ additionalProperties?: boolean;
46
39
  };
40
+ export type UiToolJsonSchemaProperty = UiToolPrimitiveSchema | UiToolArraySchema | UiToolObjectSchema;
47
41
  /** Describes the full form that the front-end should render. */
48
42
  export type UiToolSchema = {
49
- /** Short title displayed at the top of the form dialog. */
43
+ type: "object";
50
44
  title: string;
51
- /** Optional longer description / instructions. */
52
45
  description?: string;
53
- /** Ordered list of fields. */
54
- fields: UiToolFieldSchema[];
46
+ properties: Record<string, UiToolJsonSchemaProperty>;
47
+ required?: string[];
48
+ additionalProperties?: boolean;
55
49
  };
50
+ /** Optional JSON-safe payload for custom front-end rendering hints. */
51
+ export type UiToolExtra = Record<string, unknown>;
56
52
  /** Emitted as a progress event when a UI tool is invoked. */
57
53
  export type UiToolRequest = {
58
- /** Unique request identifier (UUID). */
59
54
  requestId: string;
60
- /** Session that produced this request. */
61
55
  sessionId: string;
62
- /** The tool name that triggered the UI. */
63
56
  toolName: string;
64
- /** The tool call ID from the LLM. */
65
57
  toolCallId: string;
66
- /** The form schema for the front-end. */
67
58
  schema: UiToolSchema;
68
- /** ISO-8601 creation timestamp. */
59
+ extra?: UiToolExtra;
69
60
  createdAt: string;
70
61
  };
71
62
  /** User-submitted result for a UI tool request. */
72
63
  export type UiToolResult = {
73
- /** Must match the original `UiToolRequest.requestId`. */
74
64
  requestId: string;
75
- /** Must match the original session. */
76
65
  sessionId: string;
77
- /** The tool call ID to which this result corresponds. */
78
66
  toolCallId: string;
79
- /** The tool name. */
80
67
  toolName: string;
81
- /** Submitted field values keyed by field name. */
82
68
  values: Record<string, unknown>;
83
- /** ISO-8601 submission timestamp. */
84
69
  submittedAt: string;
85
70
  };
86
- /** Persisted status for a pending UI tool request. */
87
71
  export type UiToolPendingStatus = "pending" | "resolved";
88
- /** Persisted UI tool pause state written into the session directory. */
89
72
  export type UiToolPausedState = {
90
- /** Schema version for forward-compatibility. */
91
73
  version: 1;
92
- /** Session identifier. */
93
74
  sessionId: string;
94
- /** Original UI tool request metadata. */
95
75
  request: UiToolRequest;
96
- /** Current lifecycle status. */
97
76
  status: UiToolPendingStatus;
98
- /** Present once the user has submitted the form. */
99
77
  result?: UiToolResult;
100
- /** ISO-8601 creation timestamp. */
101
78
  createdAt: string;
102
- /** ISO-8601 last-update timestamp. */
103
79
  updatedAt: string;
104
80
  };
105
- /** A single validation error for a specific field. */
106
81
  export type UiToolValidationError = {
107
82
  field: string;
108
83
  message: string;
109
84
  };
110
- /** Result of validating a UI tool submission. */
111
85
  export type UiToolValidationResult = {
112
86
  valid: true;
113
87
  } | {
114
88
  valid: false;
115
89
  errors: UiToolValidationError[];
116
90
  };
117
- /**
118
- * Validates submitted values against a UiToolSchema using built-in rules.
119
- *
120
- * This performs structural validation: required-field checks, type checks,
121
- * and select-option membership. Callers can layer custom validators on top.
122
- */
123
91
  export declare function validateUiToolResult(schema: UiToolSchema, values: Record<string, unknown>): UiToolValidationResult;
124
92
  //# sourceMappingURL=ui-tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-tool.d.ts","sourceRoot":"","sources":["../src/ui-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-tool.d.ts","sourceRoot":"","sources":["../src/ui-tool.ts"],"names":[],"mappings":"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"}
package/dist/ui-tool.js CHANGED
@@ -1,100 +1,39 @@
1
- /**
2
- * UI Tool protocol types for AIMax.
3
- *
4
- * UI Tools are a special category of agent tools that, when invoked by the LLM,
5
- * immediately pause the agent loop and request structured user input through
6
- * a front-end rendered form. Unlike HITL, UI tools are lightweight and do not
7
- * persist pause state to disk — the interrupt is transient and resolved within
8
- * the same CLI invocation when the user submits data.
9
- *
10
- * Design:
11
- * 1. The agent calls a registered UI tool.
12
- * 2. The tool execution returns a UiToolPauseSignal (thrown as an error).
13
- * 3. The runner catches the signal, emits `ui_tool_request` progress event,
14
- * and ends the current run with a `uiToolPending` marker.
15
- * 4. The front-end renders the form described by `UiToolSchema`.
16
- * 5. On user submit, the CLI is re-invoked with the UI tool result.
17
- * 6. The result is validated against the schema (or custom validator),
18
- * written as a `tool_result` entry in the transcript, and the agent
19
- * loop resumes.
20
- */
21
- /**
22
- * Validates submitted values against a UiToolSchema using built-in rules.
23
- *
24
- * This performs structural validation: required-field checks, type checks,
25
- * and select-option membership. Callers can layer custom validators on top.
26
- */
1
+ import * as Ajv from "ajv";
2
+ const AjvConstructor = Ajv.default;
3
+ const ajv = new AjvConstructor({ allErrors: true, strict: false });
4
+ const schemaCache = new Map();
5
+ function compileSchema(schema, cacheKey) {
6
+ const cached = schemaCache.get(cacheKey);
7
+ if (cached) {
8
+ return cached;
9
+ }
10
+ const compiled = ajv.compile(schema);
11
+ schemaCache.set(cacheKey, compiled);
12
+ return compiled;
13
+ }
14
+ function toFieldName(instancePath) {
15
+ if (!instancePath) {
16
+ return "/";
17
+ }
18
+ const segments = instancePath.split("/").filter(Boolean);
19
+ return segments.length === 0 ? "/" : segments[segments.length - 1] ?? "/";
20
+ }
27
21
  export function validateUiToolResult(schema, values) {
28
- const errors = [];
29
- for (const field of schema.fields) {
30
- const value = values[field.name];
31
- // Required check: empty string is only considered missing for string-like types
32
- if (field.required) {
33
- const isStringLike = field.type === "string" || field.type === "textarea" || field.type === "date" || field.type === "select" || field.type === "file";
34
- const isMissing = value === undefined || value === null || (isStringLike && value === "");
35
- if (isMissing) {
36
- errors.push({ field: field.name, message: `Field "${field.label}" is required.` });
37
- continue;
38
- }
39
- }
40
- // Skip further checks if the value is absent and not required
41
- if (value === undefined || value === null) {
42
- continue;
43
- }
44
- // Type checks
45
- switch (field.type) {
46
- case "string":
47
- case "textarea":
48
- case "date":
49
- if (typeof value !== "string") {
50
- errors.push({ field: field.name, message: `Field "${field.label}" must be a string.` });
51
- }
52
- break;
53
- case "number":
54
- if (typeof value !== "number" || Number.isNaN(value)) {
55
- errors.push({ field: field.name, message: `Field "${field.label}" must be a number.` });
56
- }
57
- break;
58
- case "boolean":
59
- if (typeof value !== "boolean") {
60
- errors.push({ field: field.name, message: `Field "${field.label}" must be a boolean.` });
61
- }
62
- break;
63
- case "select":
64
- if (typeof value !== "string") {
65
- errors.push({ field: field.name, message: `Field "${field.label}" must be a string.` });
66
- }
67
- else if (field.options && !field.options.some((opt) => opt.value === value)) {
68
- errors.push({
69
- field: field.name,
70
- message: `Field "${field.label}" has an invalid option "${value}".`,
71
- });
72
- }
73
- break;
74
- case "multiselect":
75
- if (!Array.isArray(value)) {
76
- errors.push({ field: field.name, message: `Field "${field.label}" must be an array.` });
77
- }
78
- else if (field.options) {
79
- const validValues = new Set(field.options.map((opt) => opt.value));
80
- for (const item of value) {
81
- if (typeof item !== "string" || !validValues.has(item)) {
82
- errors.push({
83
- field: field.name,
84
- message: `Field "${field.label}" contains invalid option "${String(item)}".`,
85
- });
86
- break;
87
- }
88
- }
89
- }
90
- break;
91
- case "file":
92
- if (typeof value !== "string") {
93
- errors.push({ field: field.name, message: `Field "${field.label}" must be a string (file path or data URI).` });
94
- }
95
- break;
96
- }
22
+ const cacheKey = JSON.stringify(schema);
23
+ const validate = compileSchema(schema, cacheKey);
24
+ const valid = validate(values);
25
+ if (valid) {
26
+ return { valid: true };
97
27
  }
98
- return errors.length === 0 ? { valid: true } : { valid: false, errors };
28
+ const errors = (validate.errors ?? []).map((error) => {
29
+ const field = error.keyword === "required"
30
+ ? String(error.params.missingProperty ?? "/")
31
+ : toFieldName(error.instancePath);
32
+ return {
33
+ field,
34
+ message: error.message ?? "invalid",
35
+ };
36
+ });
37
+ return { valid: false, errors };
99
38
  }
100
39
  //# sourceMappingURL=ui-tool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui-tool.js","sourceRoot":"","sources":["../src/ui-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui-tool.js","sourceRoot":"","sources":["../src/ui-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAsH3B,MAAM,cAAc,GAAG,GAAG,CAAC,OAK1B,CAAC;AAEF,MAAM,GAAG,GAAG,IAAI,cAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgC,CAAC;AAE5D,SAAS,aAAa,CAAC,MAAoB,EAAE,QAAgB;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,YAAoB;IACvC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzD,OAAO,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAAoB,EACpB,MAA+B;IAE/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE/B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAkB,EAAE,EAAE;QAChE,MAAM,KAAK,GACT,KAAK,CAAC,OAAO,KAAK,UAAU;YAC1B,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,GAAG,CAAC;YAC7C,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEtC,OAAO;YACL,KAAK;YACL,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,SAAS;SACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gencode/shared",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./config": {
@@ -18,6 +18,9 @@
18
18
  "publishConfig": {
19
19
  "access": "public"
20
20
  },
21
+ "dependencies": {
22
+ "ajv": "^8.17.1"
23
+ },
21
24
  "devDependencies": {
22
25
  "@types/node": "^22.0.0",
23
26
  "@vitest/coverage-v8": "^4.0.18",