pai-agent-ui 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 (63) hide show
  1. package/README.md +57 -0
  2. package/dist/components/AgentChatPanel.d.ts +8 -0
  3. package/dist/components/AgentChatPanel.d.ts.map +1 -0
  4. package/dist/components/AgentChatPanel.js +88 -0
  5. package/dist/components/AgentChatPanel.js.map +1 -0
  6. package/dist/components/AgentWidgetRenderer.d.ts +3 -0
  7. package/dist/components/AgentWidgetRenderer.d.ts.map +1 -0
  8. package/dist/components/AgentWidgetRenderer.js +40 -0
  9. package/dist/components/AgentWidgetRenderer.js.map +1 -0
  10. package/dist/components/ChatComposer.d.ts +9 -0
  11. package/dist/components/ChatComposer.d.ts.map +1 -0
  12. package/dist/components/ChatComposer.js +138 -0
  13. package/dist/components/ChatComposer.js.map +1 -0
  14. package/dist/components/EntityTreeEditor.d.ts +22 -0
  15. package/dist/components/EntityTreeEditor.d.ts.map +1 -0
  16. package/dist/components/EntityTreeEditor.js +178 -0
  17. package/dist/components/EntityTreeEditor.js.map +1 -0
  18. package/dist/components/JobStatusLine.d.ts +13 -0
  19. package/dist/components/JobStatusLine.d.ts.map +1 -0
  20. package/dist/components/JobStatusLine.js +32 -0
  21. package/dist/components/JobStatusLine.js.map +1 -0
  22. package/dist/components/widgets/AgentPlanWidget.d.ts +6 -0
  23. package/dist/components/widgets/AgentPlanWidget.d.ts.map +1 -0
  24. package/dist/components/widgets/AgentPlanWidget.js +42 -0
  25. package/dist/components/widgets/AgentPlanWidget.js.map +1 -0
  26. package/dist/components/widgets/ClarificationRequestWidget.d.ts +6 -0
  27. package/dist/components/widgets/ClarificationRequestWidget.d.ts.map +1 -0
  28. package/dist/components/widgets/ClarificationRequestWidget.js +49 -0
  29. package/dist/components/widgets/ClarificationRequestWidget.js.map +1 -0
  30. package/dist/components/widgets/ExecutionActionWidget.d.ts +6 -0
  31. package/dist/components/widgets/ExecutionActionWidget.d.ts.map +1 -0
  32. package/dist/components/widgets/ExecutionActionWidget.js +320 -0
  33. package/dist/components/widgets/ExecutionActionWidget.js.map +1 -0
  34. package/dist/components/widgets/PaceFileViewWidget.d.ts +6 -0
  35. package/dist/components/widgets/PaceFileViewWidget.d.ts.map +1 -0
  36. package/dist/components/widgets/PaceFileViewWidget.js +78 -0
  37. package/dist/components/widgets/PaceFileViewWidget.js.map +1 -0
  38. package/dist/components/widgets/PacePatchFormWidget.d.ts +6 -0
  39. package/dist/components/widgets/PacePatchFormWidget.d.ts.map +1 -0
  40. package/dist/components/widgets/PacePatchFormWidget.js +112 -0
  41. package/dist/components/widgets/PacePatchFormWidget.js.map +1 -0
  42. package/dist/components/widgets/ProjectMemoryReviewWidget.d.ts +6 -0
  43. package/dist/components/widgets/ProjectMemoryReviewWidget.d.ts.map +1 -0
  44. package/dist/components/widgets/ProjectMemoryReviewWidget.js +50 -0
  45. package/dist/components/widgets/ProjectMemoryReviewWidget.js.map +1 -0
  46. package/dist/index.d.ts +7 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +7 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/styles.css +643 -0
  51. package/dist/types.d.ts +317 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js +2 -0
  54. package/dist/types.js.map +1 -0
  55. package/dist/utils/jsonPointer.d.ts +20 -0
  56. package/dist/utils/jsonPointer.d.ts.map +1 -0
  57. package/dist/utils/jsonPointer.js +220 -0
  58. package/dist/utils/jsonPointer.js.map +1 -0
  59. package/dist/utils/workerTask.d.ts +30 -0
  60. package/dist/utils/workerTask.d.ts.map +1 -0
  61. package/dist/utils/workerTask.js +90 -0
  62. package/dist/utils/workerTask.js.map +1 -0
  63. package/package.json +40 -0
@@ -0,0 +1,90 @@
1
+ export const WORKER_SYSTEM_FIELDS = new Set(["job_id", "project_id"]);
2
+ export const WORKER_DEPRECATED_FIELDS = new Set(["project_root"]);
3
+ export function toJsonText(value) {
4
+ if (value == null) {
5
+ return "";
6
+ }
7
+ return JSON.stringify(value, null, 2);
8
+ }
9
+ export function asString(value) {
10
+ return typeof value === "string" ? value : "";
11
+ }
12
+ export function draftAction(data) {
13
+ return data.draft_action ?? data.draftAction ?? { action: "", params: {} };
14
+ }
15
+ export function initialFormState(params) {
16
+ const payload = params.payload && typeof params.payload === "object" && !Array.isArray(params.payload) ? params.payload : {};
17
+ return {
18
+ projectValue: getProjectValue(params),
19
+ workerName: asString(params.worker_name ?? params.workerName),
20
+ taskType: asString(params.task_type ?? params.taskType),
21
+ workerPayload: structuredClone(payload),
22
+ workerJsonDrafts: {},
23
+ workerFieldErrors: {},
24
+ };
25
+ }
26
+ export function buildWorkerTaskParams(initialParams, state, currentTaskSchema) {
27
+ const projectKey = getProjectKey(initialParams);
28
+ const params = {};
29
+ if (state.projectValue.trim()) {
30
+ params[projectKey] = state.projectValue.trim();
31
+ }
32
+ params.worker_name = state.workerName.trim();
33
+ params.task_type = state.taskType.trim();
34
+ params.payload = schemaPayloadOnly(state, currentTaskSchema);
35
+ return params;
36
+ }
37
+ function getProjectValue(params) {
38
+ const project = params.project;
39
+ if (typeof project === "string") {
40
+ return project;
41
+ }
42
+ const projectId = params.project_id ?? params.projectId;
43
+ return typeof projectId === "string" ? projectId : "";
44
+ }
45
+ function getProjectKey(params) {
46
+ if ("project" in params) {
47
+ return "project";
48
+ }
49
+ if ("project_id" in params) {
50
+ return "project_id";
51
+ }
52
+ return "project_id";
53
+ }
54
+ function schemaPayloadOnly(state, currentTaskSchema) {
55
+ if (!currentTaskSchema) {
56
+ return {};
57
+ }
58
+ const inputProperties = currentTaskSchema.input_properties ?? {};
59
+ const required = new Set(currentTaskSchema.input_required ?? []);
60
+ const payload = {};
61
+ for (const [fieldName, schema] of Object.entries(inputProperties)) {
62
+ if (WORKER_SYSTEM_FIELDS.has(fieldName) || WORKER_DEPRECATED_FIELDS.has(fieldName)) {
63
+ continue;
64
+ }
65
+ const value = state.workerPayload[fieldName];
66
+ if (isEmptyWorkerValue(value)) {
67
+ if (required.has(fieldName)) {
68
+ throw new Error(`${fieldName} is required`);
69
+ }
70
+ continue;
71
+ }
72
+ const fieldType = typeof schema.type === "string" ? schema.type : "string";
73
+ if (fieldType === "array" && !Array.isArray(value)) {
74
+ throw new Error(`${fieldName} must be a JSON array`);
75
+ }
76
+ if (fieldType === "object" && (!value || typeof value !== "object" || Array.isArray(value) || value instanceof File)) {
77
+ throw new Error(`${fieldName} must be a JSON object`);
78
+ }
79
+ payload[fieldName] = value;
80
+ }
81
+ const invalidField = Object.entries(state.workerFieldErrors).find(([, message]) => Boolean(message));
82
+ if (invalidField) {
83
+ throw new Error(invalidField[1]);
84
+ }
85
+ return payload;
86
+ }
87
+ function isEmptyWorkerValue(value) {
88
+ return value == null || (typeof value === "string" && !value.trim());
89
+ }
90
+ //# sourceMappingURL=workerTask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workerTask.js","sourceRoot":"","sources":["../../src/utils/workerTask.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,40 @@
1
+ {
2
+ "name": "pai-agent-ui",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Reusable React components for PAI Agent chat and widgets.",
6
+ "license": "UNLICENSED",
7
+ "sideEffects": [
8
+ "./dist/styles.css"
9
+ ],
10
+ "files": [
11
+ "dist",
12
+ "README.md"
13
+ ],
14
+ "scripts": {
15
+ "build": "tsc -p tsconfig.build.json && cp src/styles.css dist/styles.css",
16
+ "prepack": "npm run build"
17
+ },
18
+ "exports": {
19
+ ".": {
20
+ "types": "./dist/index.d.ts",
21
+ "import": "./dist/index.js"
22
+ },
23
+ "./styles.css": "./dist/styles.css"
24
+ },
25
+ "main": "./dist/index.js",
26
+ "module": "./dist/index.js",
27
+ "types": "./dist/index.d.ts",
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "peerDependencies": {
32
+ "react": ">=19",
33
+ "react-dom": ">=19"
34
+ },
35
+ "devDependencies": {
36
+ "@types/react": "^19",
37
+ "@types/react-dom": "^19",
38
+ "typescript": "^5"
39
+ }
40
+ }