@llm-dev-ops/agentics-cli 1.3.2 → 1.3.4
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/adapters/base-adapter.js +10 -10
- package/dist/adapters/base-adapter.js.map +1 -1
- package/dist/audit/audit-trail.js +1 -1
- package/dist/cli/index.js +6 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/deploy.d.ts +14 -5
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +58 -16
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/diligence.d.ts +12 -4
- package/dist/commands/diligence.d.ts.map +1 -1
- package/dist/commands/diligence.js +54 -14
- package/dist/commands/diligence.js.map +1 -1
- package/dist/commands/export.d.ts +10 -3
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +56 -16
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/inspect.d.ts +13 -7
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +57 -19
- package/dist/commands/inspect.js.map +1 -1
- package/dist/commands/plan.d.ts +11 -4
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +39 -12
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/quantify.d.ts +12 -6
- package/dist/commands/quantify.d.ts.map +1 -1
- package/dist/commands/quantify.js +56 -17
- package/dist/commands/quantify.js.map +1 -1
- package/dist/commands/simulate.d.ts +10 -3
- package/dist/commands/simulate.d.ts.map +1 -1
- package/dist/commands/simulate.js +69 -18
- package/dist/commands/simulate.js.map +1 -1
- package/dist/config/endpoints.d.ts.map +1 -1
- package/dist/config/endpoints.js +9 -8
- package/dist/config/endpoints.js.map +1 -1
- package/dist/contracts/index.d.ts +21 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +20 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/schemas/index.d.ts +427 -0
- package/dist/contracts/schemas/index.d.ts.map +1 -0
- package/dist/contracts/schemas/index.js +228 -0
- package/dist/contracts/schemas/index.js.map +1 -0
- package/dist/contracts/validator.d.ts +60 -0
- package/dist/contracts/validator.d.ts.map +1 -0
- package/dist/contracts/validator.js +395 -0
- package/dist/contracts/validator.js.map +1 -0
- package/dist/server/index.d.ts +26 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +144 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/auth.d.ts +12 -0
- package/dist/server/routes/auth.d.ts.map +1 -0
- package/dist/server/routes/auth.js +111 -0
- package/dist/server/routes/auth.js.map +1 -0
- package/dist/server/routes/diligence.d.ts +12 -0
- package/dist/server/routes/diligence.d.ts.map +1 -0
- package/dist/server/routes/diligence.js +48 -0
- package/dist/server/routes/diligence.js.map +1 -0
- package/dist/server/routes/erpsurface.d.ts +11 -0
- package/dist/server/routes/erpsurface.d.ts.map +1 -0
- package/dist/server/routes/erpsurface.js +59 -0
- package/dist/server/routes/erpsurface.js.map +1 -0
- package/dist/server/routes/exporters.d.ts +12 -0
- package/dist/server/routes/exporters.d.ts.map +1 -0
- package/dist/server/routes/exporters.js +47 -0
- package/dist/server/routes/exporters.js.map +1 -0
- package/dist/server/routes/health.d.ts +11 -0
- package/dist/server/routes/health.d.ts.map +1 -0
- package/dist/server/routes/health.js +33 -0
- package/dist/server/routes/health.js.map +1 -0
- package/dist/server/routes/index.d.ts +17 -0
- package/dist/server/routes/index.d.ts.map +1 -0
- package/dist/server/routes/index.js +17 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/intent.d.ts +12 -0
- package/dist/server/routes/intent.d.ts.map +1 -0
- package/dist/server/routes/intent.js +50 -0
- package/dist/server/routes/intent.js.map +1 -0
- package/dist/server/routes/manifests.d.ts +12 -0
- package/dist/server/routes/manifests.d.ts.map +1 -0
- package/dist/server/routes/manifests.js +46 -0
- package/dist/server/routes/manifests.js.map +1 -0
- package/dist/server/routes/plans.d.ts +12 -0
- package/dist/server/routes/plans.d.ts.map +1 -0
- package/dist/server/routes/plans.js +47 -0
- package/dist/server/routes/plans.js.map +1 -0
- package/dist/server/routes/roi.d.ts +12 -0
- package/dist/server/routes/roi.d.ts.map +1 -0
- package/dist/server/routes/roi.js +48 -0
- package/dist/server/routes/roi.js.map +1 -0
- package/dist/server/routes/runner.d.ts +12 -0
- package/dist/server/routes/runner.d.ts.map +1 -0
- package/dist/server/routes/runner.js +50 -0
- package/dist/server/routes/runner.js.map +1 -0
- package/dist/server/routes/simulate.d.ts +13 -0
- package/dist/server/routes/simulate.d.ts.map +1 -0
- package/dist/server/routes/simulate.js +58 -0
- package/dist/server/routes/simulate.js.map +1 -0
- package/dist/server/utils/id-generator.d.ts +32 -0
- package/dist/server/utils/id-generator.d.ts.map +1 -0
- package/dist/server/utils/id-generator.js +51 -0
- package/dist/server/utils/id-generator.js.map +1 -0
- package/dist/server/utils/index.d.ts +8 -0
- package/dist/server/utils/index.d.ts.map +1 -0
- package/dist/server/utils/index.js +8 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/response-builder.d.ts +56 -0
- package/dist/server/utils/response-builder.d.ts.map +1 -0
- package/dist/server/utils/response-builder.js +388 -0
- package/dist/server/utils/response-builder.js.map +1 -0
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plans Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/plans
|
|
5
|
+
*
|
|
6
|
+
* Handles simulation plan creation from the planner service.
|
|
7
|
+
* Used by the CLI's `plan` command.
|
|
8
|
+
*/
|
|
9
|
+
import { Hono } from 'hono';
|
|
10
|
+
import { ids } from '../utils/id-generator.js';
|
|
11
|
+
import { buildPlanReference } from '../utils/response-builder.js';
|
|
12
|
+
const plans = new Hono();
|
|
13
|
+
/**
|
|
14
|
+
* POST /v1/plans
|
|
15
|
+
*
|
|
16
|
+
* Create a simulation plan based on a manifest reference.
|
|
17
|
+
*/
|
|
18
|
+
plans.post('/', async (c) => {
|
|
19
|
+
try {
|
|
20
|
+
const body = await c.req.json();
|
|
21
|
+
// Validate required fields
|
|
22
|
+
if (!body.manifest_ref) {
|
|
23
|
+
return c.json({
|
|
24
|
+
error: {
|
|
25
|
+
code: 'VALIDATION_ERROR',
|
|
26
|
+
message: 'manifest_ref is required',
|
|
27
|
+
},
|
|
28
|
+
}, 400);
|
|
29
|
+
}
|
|
30
|
+
const id = ids.plan();
|
|
31
|
+
const params = body.params ?? {};
|
|
32
|
+
// Build response matching PlanReference type
|
|
33
|
+
const response = buildPlanReference(id, body.manifest_ref, params);
|
|
34
|
+
return c.json(response, 200);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error('Plans route error:', error);
|
|
38
|
+
return c.json({
|
|
39
|
+
error: {
|
|
40
|
+
code: 'INTERNAL_ERROR',
|
|
41
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
42
|
+
},
|
|
43
|
+
}, 500);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
export { plans };
|
|
47
|
+
//# sourceMappingURL=plans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plans.js","sourceRoot":"","sources":["../../../src/server/routes/plans.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AAOzB;;;;GAIG;AACH,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAgB,CAAC;QAE9C,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,0BAA0B;iBACpC;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEjC,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,kBAAkB,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAEnE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ROI Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/roi
|
|
5
|
+
*
|
|
6
|
+
* Handles ROI report generation from the enterprise ROI engine.
|
|
7
|
+
* Used by the CLI's `quantify` command.
|
|
8
|
+
*/
|
|
9
|
+
import { Hono } from 'hono';
|
|
10
|
+
declare const roi: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
11
|
+
export { roi };
|
|
12
|
+
//# sourceMappingURL=roi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roi.d.ts","sourceRoot":"","sources":["../../../src/server/routes/roi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAoDvB,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ROI Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/roi
|
|
5
|
+
*
|
|
6
|
+
* Handles ROI report generation from the enterprise ROI engine.
|
|
7
|
+
* Used by the CLI's `quantify` command.
|
|
8
|
+
*/
|
|
9
|
+
import { Hono } from 'hono';
|
|
10
|
+
import { ids } from '../utils/id-generator.js';
|
|
11
|
+
import { buildRoiReportReference } from '../utils/response-builder.js';
|
|
12
|
+
const roi = new Hono();
|
|
13
|
+
/**
|
|
14
|
+
* POST /v1/roi
|
|
15
|
+
*
|
|
16
|
+
* Generate an ROI report based on a simulation reference.
|
|
17
|
+
*/
|
|
18
|
+
roi.post('/', async (c) => {
|
|
19
|
+
try {
|
|
20
|
+
const body = await c.req.json();
|
|
21
|
+
// Validate required fields
|
|
22
|
+
if (!body.sim_ref) {
|
|
23
|
+
return c.json({
|
|
24
|
+
error: {
|
|
25
|
+
code: 'VALIDATION_ERROR',
|
|
26
|
+
message: 'sim_ref is required',
|
|
27
|
+
},
|
|
28
|
+
}, 400);
|
|
29
|
+
}
|
|
30
|
+
const id = ids.roi();
|
|
31
|
+
const reportType = body.report_type ?? 'cfo-grade';
|
|
32
|
+
const params = body.params ?? {};
|
|
33
|
+
// Build response matching RoiReportReference type
|
|
34
|
+
const response = buildRoiReportReference(id, body.sim_ref, reportType, params);
|
|
35
|
+
return c.json(response, 200);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error('ROI route error:', error);
|
|
39
|
+
return c.json({
|
|
40
|
+
error: {
|
|
41
|
+
code: 'INTERNAL_ERROR',
|
|
42
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
43
|
+
},
|
|
44
|
+
}, 500);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
export { roi };
|
|
48
|
+
//# sourceMappingURL=roi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roi.js","sourceRoot":"","sources":["../../../src/server/routes/roi.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AAQvB;;;;GAIG;AACH,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAc,CAAC;QAE5C,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,qBAAqB;iBAC/B;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEjC,kDAAkD;QAClD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE/E,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACzC,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/runner
|
|
5
|
+
*
|
|
6
|
+
* Handles simulation execution from the runner service.
|
|
7
|
+
* Used by the CLI's `simulate` command.
|
|
8
|
+
*/
|
|
9
|
+
import { Hono } from 'hono';
|
|
10
|
+
declare const runner: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
11
|
+
export { runner };
|
|
12
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/server/routes/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,QAAA,MAAM,MAAM,4EAAa,CAAC;AAsD1B,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runner Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/runner
|
|
5
|
+
*
|
|
6
|
+
* Handles simulation execution from the runner service.
|
|
7
|
+
* Used by the CLI's `simulate` command.
|
|
8
|
+
*/
|
|
9
|
+
import { Hono } from 'hono';
|
|
10
|
+
import { ids } from '../utils/id-generator.js';
|
|
11
|
+
import { buildSimulationRunReference } from '../utils/response-builder.js';
|
|
12
|
+
const runner = new Hono();
|
|
13
|
+
/**
|
|
14
|
+
* POST /v1/runner
|
|
15
|
+
*
|
|
16
|
+
* Execute a simulation based on a plan reference.
|
|
17
|
+
*/
|
|
18
|
+
runner.post('/', async (c) => {
|
|
19
|
+
try {
|
|
20
|
+
const body = await c.req.json();
|
|
21
|
+
// Validate required fields
|
|
22
|
+
if (!body.plan_ref) {
|
|
23
|
+
return c.json({
|
|
24
|
+
error: {
|
|
25
|
+
code: 'VALIDATION_ERROR',
|
|
26
|
+
message: 'plan_ref is required',
|
|
27
|
+
},
|
|
28
|
+
}, 400);
|
|
29
|
+
}
|
|
30
|
+
const id = ids.run();
|
|
31
|
+
const config = {
|
|
32
|
+
...body.config,
|
|
33
|
+
iterations: body.iterations ?? 1,
|
|
34
|
+
};
|
|
35
|
+
// Build response matching SimulationReference type
|
|
36
|
+
const response = buildSimulationRunReference(id, body.plan_ref, config);
|
|
37
|
+
return c.json(response, 200);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error('Runner route error:', error);
|
|
41
|
+
return c.json({
|
|
42
|
+
error: {
|
|
43
|
+
code: 'INTERNAL_ERROR',
|
|
44
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
45
|
+
},
|
|
46
|
+
}, 500);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
export { runner };
|
|
50
|
+
//# sourceMappingURL=runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../src/server/routes/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3E,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAQ1B;;;;GAIG;AACH,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC3B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAiB,CAAC;QAE/C,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,kBAAkB;oBACxB,OAAO,EAAE,sBAAsB;iBAChC;aACF,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG;YACb,GAAG,IAAI,CAAC,MAAM;YACd,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;SACjC,CAAC;QAEF,mDAAmD;QACnD,MAAM,QAAQ,GAAG,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simulate Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/simulate
|
|
5
|
+
*
|
|
6
|
+
* Handles both:
|
|
7
|
+
* 1. Simulation execution from plan_ref (CLI's `simulate` command)
|
|
8
|
+
* 2. Simulation output retrieval from sim_ref (CLI's `inspect` command)
|
|
9
|
+
*/
|
|
10
|
+
import { Hono } from 'hono';
|
|
11
|
+
declare const simulate: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
12
|
+
export { simulate };
|
|
13
|
+
//# sourceMappingURL=simulate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate.d.ts","sourceRoot":"","sources":["../../../src/server/routes/simulate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,QAAA,MAAM,QAAQ,4EAAa,CAAC;AAgE5B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simulate Route Handler
|
|
3
|
+
*
|
|
4
|
+
* POST /v1/simulate
|
|
5
|
+
*
|
|
6
|
+
* Handles both:
|
|
7
|
+
* 1. Simulation execution from plan_ref (CLI's `simulate` command)
|
|
8
|
+
* 2. Simulation output retrieval from sim_ref (CLI's `inspect` command)
|
|
9
|
+
*/
|
|
10
|
+
import { Hono } from 'hono';
|
|
11
|
+
import { ids } from '../utils/id-generator.js';
|
|
12
|
+
import { buildSimulationOutputReference, buildSimulationRunReference } from '../utils/response-builder.js';
|
|
13
|
+
const simulate = new Hono();
|
|
14
|
+
/**
|
|
15
|
+
* POST /v1/simulate
|
|
16
|
+
*
|
|
17
|
+
* Handles both simulation execution and output retrieval.
|
|
18
|
+
*/
|
|
19
|
+
simulate.post('/', async (c) => {
|
|
20
|
+
try {
|
|
21
|
+
const body = await c.req.json();
|
|
22
|
+
// Case 1: Running a simulation (plan_ref provided)
|
|
23
|
+
if (body.plan_ref) {
|
|
24
|
+
const id = ids.run();
|
|
25
|
+
const config = {
|
|
26
|
+
...body.config,
|
|
27
|
+
iterations: body.iterations ?? 1,
|
|
28
|
+
};
|
|
29
|
+
const response = buildSimulationRunReference(id, body.plan_ref, config);
|
|
30
|
+
return c.json(response, 200);
|
|
31
|
+
}
|
|
32
|
+
// Case 2: Inspecting simulation outputs (sim_ref provided)
|
|
33
|
+
if (body.sim_ref) {
|
|
34
|
+
const outputType = body.output_type ?? 'summary';
|
|
35
|
+
const id = ids.simulation();
|
|
36
|
+
const response = buildSimulationOutputReference(id, body.sim_ref, outputType);
|
|
37
|
+
return c.json(response, 200);
|
|
38
|
+
}
|
|
39
|
+
// Neither provided - error
|
|
40
|
+
return c.json({
|
|
41
|
+
error: {
|
|
42
|
+
code: 'VALIDATION_ERROR',
|
|
43
|
+
message: 'Either plan_ref (to run simulation) or sim_ref (to inspect outputs) is required',
|
|
44
|
+
},
|
|
45
|
+
}, 400);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error('Simulate route error:', error);
|
|
49
|
+
return c.json({
|
|
50
|
+
error: {
|
|
51
|
+
code: 'INTERNAL_ERROR',
|
|
52
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
53
|
+
},
|
|
54
|
+
}, 500);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
export { simulate };
|
|
58
|
+
//# sourceMappingURL=simulate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulate.js","sourceRoot":"","sources":["../../../src/server/routes/simulate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAE3G,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;AAY5B;;;;GAIG;AACH,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAmB,CAAC;QAEjD,mDAAmD;QACnD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG;gBACb,GAAG,IAAI,CAAC,MAAM;gBACd,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC;aACjC,CAAC;YACF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,2DAA2D;QAC3D,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YACjD,MAAM,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,8BAA8B,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,iFAAiF;aAC3F;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,CAAC,IAAI,CACX;YACE,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID Generator Utilities
|
|
3
|
+
*
|
|
4
|
+
* Generates consistent, prefixed IDs for various resource types.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate a timestamped ID with prefix
|
|
8
|
+
*/
|
|
9
|
+
export declare function generateId(prefix: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Generate IDs for specific resource types
|
|
12
|
+
*/
|
|
13
|
+
export declare const ids: {
|
|
14
|
+
readonly simulation: () => string;
|
|
15
|
+
readonly manifest: () => string;
|
|
16
|
+
readonly plan: () => string;
|
|
17
|
+
readonly run: () => string;
|
|
18
|
+
readonly roi: () => string;
|
|
19
|
+
readonly intent: () => string;
|
|
20
|
+
readonly export: () => string;
|
|
21
|
+
readonly diligence: () => string;
|
|
22
|
+
readonly erp: () => string;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Generate a checksum-like string for responses
|
|
26
|
+
*/
|
|
27
|
+
export declare function generateChecksum(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Generate an artifact location URL
|
|
30
|
+
*/
|
|
31
|
+
export declare function generateArtifactLocation(type: string, id: string): string;
|
|
32
|
+
//# sourceMappingURL=id-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.d.ts","sourceRoot":"","sources":["../../../src/server/utils/id-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIjD;AAED;;GAEG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;CAUN,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEzE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID Generator Utilities
|
|
3
|
+
*
|
|
4
|
+
* Generates consistent, prefixed IDs for various resource types.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Generate a random hex string of specified length
|
|
8
|
+
*/
|
|
9
|
+
function randomHex(length) {
|
|
10
|
+
const bytes = new Uint8Array(Math.ceil(length / 2));
|
|
11
|
+
crypto.getRandomValues(bytes);
|
|
12
|
+
return Array.from(bytes)
|
|
13
|
+
.map(b => b.toString(16).padStart(2, '0'))
|
|
14
|
+
.join('')
|
|
15
|
+
.slice(0, length);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generate a timestamped ID with prefix
|
|
19
|
+
*/
|
|
20
|
+
export function generateId(prefix) {
|
|
21
|
+
const timestamp = Date.now().toString(36);
|
|
22
|
+
const random = randomHex(8);
|
|
23
|
+
return `${prefix}-${timestamp}-${random}`;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Generate IDs for specific resource types
|
|
27
|
+
*/
|
|
28
|
+
export const ids = {
|
|
29
|
+
simulation: () => generateId('sim'),
|
|
30
|
+
manifest: () => generateId('manifest'),
|
|
31
|
+
plan: () => generateId('plan'),
|
|
32
|
+
run: () => generateId('run'),
|
|
33
|
+
roi: () => generateId('roi'),
|
|
34
|
+
intent: () => generateId('intent'),
|
|
35
|
+
export: () => generateId('export'),
|
|
36
|
+
diligence: () => generateId('diligence'),
|
|
37
|
+
erp: () => generateId('erp'),
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Generate a checksum-like string for responses
|
|
41
|
+
*/
|
|
42
|
+
export function generateChecksum() {
|
|
43
|
+
return `sha256:${randomHex(64)}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generate an artifact location URL
|
|
47
|
+
*/
|
|
48
|
+
export function generateArtifactLocation(type, id) {
|
|
49
|
+
return `https://artifacts.agentics.dev/${type}/${id}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=id-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-generator.js","sourceRoot":"","sources":["../../../src/server/utils/id-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,SAAS,SAAS,CAAC,MAAc;IAC/B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SACzC,IAAI,CAAC,EAAE,CAAC;SACR,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,OAAO,GAAG,MAAM,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IACnC,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;IACtC,IAAI,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAC9B,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IAC5B,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;IAClC,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;IAClC,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;IACxC,GAAG,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,EAAU;IAC/D,OAAO,kCAAkC,IAAI,IAAI,EAAE,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response Builder Utilities
|
|
3
|
+
*
|
|
4
|
+
* Builds consistent API responses matching CLI expectations.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Base reference structure matching CLI types
|
|
8
|
+
*/
|
|
9
|
+
export interface BaseReferenceResponse {
|
|
10
|
+
id: string;
|
|
11
|
+
type: string;
|
|
12
|
+
repository: string;
|
|
13
|
+
created_at: string;
|
|
14
|
+
checksum: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a base reference response
|
|
18
|
+
*/
|
|
19
|
+
export declare function buildBaseReference(id: string, type: string, repository: string): BaseReferenceResponse;
|
|
20
|
+
/**
|
|
21
|
+
* Build simulation output reference
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildSimulationOutputReference(id: string, simRef: unknown, outputType: string): Record<string, unknown>;
|
|
24
|
+
/**
|
|
25
|
+
* Build manifest reference
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildManifestReference(id: string, query: string): Record<string, unknown>;
|
|
28
|
+
/**
|
|
29
|
+
* Build plan reference
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildPlanReference(id: string, manifestRef: unknown, params: Record<string, unknown>): Record<string, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* Build simulation run reference
|
|
34
|
+
*/
|
|
35
|
+
export declare function buildSimulationRunReference(id: string, planRef: unknown, config: Record<string, unknown>): Record<string, unknown>;
|
|
36
|
+
/**
|
|
37
|
+
* Build ROI report reference
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildRoiReportReference(id: string, simRef: unknown, reportType: string, params: Record<string, unknown>): Record<string, unknown>;
|
|
40
|
+
/**
|
|
41
|
+
* Build intent reference
|
|
42
|
+
*/
|
|
43
|
+
export declare function buildIntentReference(id: string, simRef: unknown, spec: Record<string, unknown>): Record<string, unknown>;
|
|
44
|
+
/**
|
|
45
|
+
* Build export reference
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildExportReference(id: string, intentRef: unknown, formatSpec: Record<string, unknown>): Record<string, unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* Build ERP Surface reference
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildErpSurfaceReference(id: string, sourceRef: unknown, erpType: string, operation: string, entityType: string, query: Record<string, unknown>, syncConfig: Record<string, unknown>): Record<string, unknown>;
|
|
52
|
+
/**
|
|
53
|
+
* Build diligence package reference
|
|
54
|
+
*/
|
|
55
|
+
export declare function buildDiligencePackageReference(id: string, refs: unknown, frameworks: string[], requirements: Record<string, unknown>): Record<string, unknown>;
|
|
56
|
+
//# sourceMappingURL=response-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-builder.d.ts","sourceRoot":"","sources":["../../../src/server/utils/response-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,qBAAqB,CAQvB;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA2BzB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwBzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,OAAO,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoDzB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoBzB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAwCzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA8BzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,OAAO,EAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAgBzB;AA6CD;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,MAAM,EACV,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAoCzB;AAmBD;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAiCzB"}
|