@llm-dev-ops/agentics-cli 1.3.1 → 1.3.3

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 (113) hide show
  1. package/dist/adapters/base-adapter.js +10 -10
  2. package/dist/adapters/base-adapter.js.map +1 -1
  3. package/dist/audit/audit-trail.js +1 -1
  4. package/dist/cli/index.js +6 -5
  5. package/dist/cli/index.js.map +1 -1
  6. package/dist/commands/deploy.d.ts +14 -5
  7. package/dist/commands/deploy.d.ts.map +1 -1
  8. package/dist/commands/deploy.js +58 -16
  9. package/dist/commands/deploy.js.map +1 -1
  10. package/dist/commands/diligence.d.ts +12 -4
  11. package/dist/commands/diligence.d.ts.map +1 -1
  12. package/dist/commands/diligence.js +54 -14
  13. package/dist/commands/diligence.js.map +1 -1
  14. package/dist/commands/export.d.ts +10 -3
  15. package/dist/commands/export.d.ts.map +1 -1
  16. package/dist/commands/export.js +56 -16
  17. package/dist/commands/export.js.map +1 -1
  18. package/dist/commands/inspect.d.ts +13 -7
  19. package/dist/commands/inspect.d.ts.map +1 -1
  20. package/dist/commands/inspect.js +57 -19
  21. package/dist/commands/inspect.js.map +1 -1
  22. package/dist/commands/login.js +1 -1
  23. package/dist/commands/plan.d.ts +11 -4
  24. package/dist/commands/plan.d.ts.map +1 -1
  25. package/dist/commands/plan.js +39 -12
  26. package/dist/commands/plan.js.map +1 -1
  27. package/dist/commands/quantify.d.ts +12 -6
  28. package/dist/commands/quantify.d.ts.map +1 -1
  29. package/dist/commands/quantify.js +56 -17
  30. package/dist/commands/quantify.js.map +1 -1
  31. package/dist/commands/simulate.d.ts +10 -3
  32. package/dist/commands/simulate.d.ts.map +1 -1
  33. package/dist/commands/simulate.js +69 -18
  34. package/dist/commands/simulate.js.map +1 -1
  35. package/dist/config/endpoints.d.ts.map +1 -1
  36. package/dist/config/endpoints.js +10 -8
  37. package/dist/config/endpoints.js.map +1 -1
  38. package/dist/contracts/index.d.ts +21 -0
  39. package/dist/contracts/index.d.ts.map +1 -0
  40. package/dist/contracts/index.js +20 -0
  41. package/dist/contracts/index.js.map +1 -0
  42. package/dist/contracts/validator.d.ts +62 -0
  43. package/dist/contracts/validator.d.ts.map +1 -0
  44. package/dist/contracts/validator.js +397 -0
  45. package/dist/contracts/validator.js.map +1 -0
  46. package/dist/server/index.d.ts +26 -0
  47. package/dist/server/index.d.ts.map +1 -0
  48. package/dist/server/index.js +144 -0
  49. package/dist/server/index.js.map +1 -0
  50. package/dist/server/routes/auth.d.ts +12 -0
  51. package/dist/server/routes/auth.d.ts.map +1 -0
  52. package/dist/server/routes/auth.js +111 -0
  53. package/dist/server/routes/auth.js.map +1 -0
  54. package/dist/server/routes/diligence.d.ts +12 -0
  55. package/dist/server/routes/diligence.d.ts.map +1 -0
  56. package/dist/server/routes/diligence.js +48 -0
  57. package/dist/server/routes/diligence.js.map +1 -0
  58. package/dist/server/routes/erpsurface.d.ts +11 -0
  59. package/dist/server/routes/erpsurface.d.ts.map +1 -0
  60. package/dist/server/routes/erpsurface.js +59 -0
  61. package/dist/server/routes/erpsurface.js.map +1 -0
  62. package/dist/server/routes/exporters.d.ts +12 -0
  63. package/dist/server/routes/exporters.d.ts.map +1 -0
  64. package/dist/server/routes/exporters.js +47 -0
  65. package/dist/server/routes/exporters.js.map +1 -0
  66. package/dist/server/routes/health.d.ts +11 -0
  67. package/dist/server/routes/health.d.ts.map +1 -0
  68. package/dist/server/routes/health.js +33 -0
  69. package/dist/server/routes/health.js.map +1 -0
  70. package/dist/server/routes/index.d.ts +17 -0
  71. package/dist/server/routes/index.d.ts.map +1 -0
  72. package/dist/server/routes/index.js +17 -0
  73. package/dist/server/routes/index.js.map +1 -0
  74. package/dist/server/routes/intent.d.ts +12 -0
  75. package/dist/server/routes/intent.d.ts.map +1 -0
  76. package/dist/server/routes/intent.js +50 -0
  77. package/dist/server/routes/intent.js.map +1 -0
  78. package/dist/server/routes/manifests.d.ts +12 -0
  79. package/dist/server/routes/manifests.d.ts.map +1 -0
  80. package/dist/server/routes/manifests.js +46 -0
  81. package/dist/server/routes/manifests.js.map +1 -0
  82. package/dist/server/routes/plans.d.ts +12 -0
  83. package/dist/server/routes/plans.d.ts.map +1 -0
  84. package/dist/server/routes/plans.js +47 -0
  85. package/dist/server/routes/plans.js.map +1 -0
  86. package/dist/server/routes/roi.d.ts +12 -0
  87. package/dist/server/routes/roi.d.ts.map +1 -0
  88. package/dist/server/routes/roi.js +48 -0
  89. package/dist/server/routes/roi.js.map +1 -0
  90. package/dist/server/routes/runner.d.ts +12 -0
  91. package/dist/server/routes/runner.d.ts.map +1 -0
  92. package/dist/server/routes/runner.js +50 -0
  93. package/dist/server/routes/runner.js.map +1 -0
  94. package/dist/server/routes/simulate.d.ts +13 -0
  95. package/dist/server/routes/simulate.d.ts.map +1 -0
  96. package/dist/server/routes/simulate.js +58 -0
  97. package/dist/server/routes/simulate.js.map +1 -0
  98. package/dist/server/utils/id-generator.d.ts +32 -0
  99. package/dist/server/utils/id-generator.d.ts.map +1 -0
  100. package/dist/server/utils/id-generator.js +51 -0
  101. package/dist/server/utils/id-generator.js.map +1 -0
  102. package/dist/server/utils/index.d.ts +8 -0
  103. package/dist/server/utils/index.d.ts.map +1 -0
  104. package/dist/server/utils/index.js +8 -0
  105. package/dist/server/utils/index.js.map +1 -0
  106. package/dist/server/utils/response-builder.d.ts +56 -0
  107. package/dist/server/utils/response-builder.d.ts.map +1 -0
  108. package/dist/server/utils/response-builder.js +388 -0
  109. package/dist/server/utils/response-builder.js.map +1 -0
  110. package/dist/types/index.d.ts +3 -3
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/dist/types/index.js.map +1 -1
  113. package/package.json +10 -3
@@ -0,0 +1,397 @@
1
+ /**
2
+ * Contract Validator
3
+ *
4
+ * PURPOSE: Single validation boundary for all CLI commands.
5
+ * Uses Ajv in STRICT mode - no coercion, no defaults, no bypass.
6
+ *
7
+ * RULES:
8
+ * - Invalid requests FAIL LOCALLY (no network call)
9
+ * - Invalid responses FAIL HARD (missing execution proof = reject)
10
+ * - Responses MUST have execution_metadata AND multi-layer proof
11
+ * - Multi-layer proof: layers_executed array AND/OR execution_graph
12
+ * - No soft-fail behavior
13
+ * - No bypass flags
14
+ *
15
+ * IMPORTS: All schemas from @agentics/contracts (the canonical source)
16
+ */
17
+ import { Ajv } from 'ajv';
18
+ import ajvFormatsModule from 'ajv-formats';
19
+ import { CLIError } from '../errors/index.js';
20
+ // Import canonical schemas from @agentics/contracts
21
+ import {
22
+ // Request schemas
23
+ planRequestSchema, simulateRequestSchema, inspectRequestSchema, quantifyRequestSchema, deployRequestSchema, exportRequestSchema, diligenceRequestSchema, manifestsRequestSchema, plansRequestSchema,
24
+ // Response schemas
25
+ baseResponseSchema, manifestResponseSchema, planResponseSchema, simulationResponseSchema, simulationOutputResponseSchema, roiReportResponseSchema, intentResponseSchema, exportResponseSchema, diligencePackageResponseSchema,
26
+ // Execution proof schemas
27
+ platformLayers,
28
+ // Schema registry constants
29
+ RequestSchemas, ResponseSchemas, } from '@agentics/contracts';
30
+ // Re-export schema registry constants
31
+ export { RequestSchemas, ResponseSchemas };
32
+ // Get the formats plugin (handle ESM/CJS default export)
33
+ const formatsPlugin = ajvFormatsModule;
34
+ // ============================================================================
35
+ // Ajv Instance Configuration (STRICT MODE)
36
+ // ============================================================================
37
+ const ajv = new Ajv({
38
+ strict: true,
39
+ strictSchema: true,
40
+ strictNumbers: true,
41
+ strictTypes: true,
42
+ strictTuples: true,
43
+ strictRequired: false, // Allow anyOf/oneOf with different required sets
44
+ allowUnionTypes: true,
45
+ validateFormats: true,
46
+ allErrors: true, // Report all errors, not just the first
47
+ verbose: true, // Include schema and data in errors
48
+ coerceTypes: false, // NO type coercion
49
+ useDefaults: false, // NO default values
50
+ removeAdditional: false, // Do not silently remove extra properties
51
+ });
52
+ // Add format validators (date-time, uri, email, etc.)
53
+ formatsPlugin(ajv);
54
+ const requestSchemas = {
55
+ plan: planRequestSchema,
56
+ simulate: simulateRequestSchema,
57
+ inspect: inspectRequestSchema,
58
+ quantify: quantifyRequestSchema,
59
+ deploy: deployRequestSchema,
60
+ export: exportRequestSchema,
61
+ diligence: diligenceRequestSchema,
62
+ manifests: manifestsRequestSchema,
63
+ plans: plansRequestSchema,
64
+ };
65
+ const responseSchemas = {
66
+ base: baseResponseSchema,
67
+ manifest: manifestResponseSchema,
68
+ plan: planResponseSchema,
69
+ simulation: simulationResponseSchema,
70
+ simulationOutput: simulationOutputResponseSchema,
71
+ roiReport: roiReportResponseSchema,
72
+ intent: intentResponseSchema,
73
+ export: exportResponseSchema,
74
+ diligencePackage: diligencePackageResponseSchema,
75
+ };
76
+ // ============================================================================
77
+ // Compiled Validators (cached for performance)
78
+ // ============================================================================
79
+ const compiledRequestValidators = new Map();
80
+ const compiledResponseValidators = new Map();
81
+ function getRequestValidator(schemaName) {
82
+ let validator = compiledRequestValidators.get(schemaName);
83
+ if (!validator) {
84
+ validator = ajv.compile(requestSchemas[schemaName]);
85
+ compiledRequestValidators.set(schemaName, validator);
86
+ }
87
+ return validator;
88
+ }
89
+ function getResponseValidator(schemaName) {
90
+ let validator = compiledResponseValidators.get(schemaName);
91
+ if (!validator) {
92
+ validator = ajv.compile(responseSchemas[schemaName]);
93
+ compiledResponseValidators.set(schemaName, validator);
94
+ }
95
+ return validator;
96
+ }
97
+ // ============================================================================
98
+ // Validation Error Class
99
+ // ============================================================================
100
+ export class ContractValidationError extends CLIError {
101
+ validationErrors;
102
+ constructor(options) {
103
+ const errorSummary = options.errors
104
+ .slice(0, 3)
105
+ .map((e) => `${e.instancePath || '/'}: ${e.message}`)
106
+ .join('; ');
107
+ super({
108
+ code: options.type === 'request' ? 'ECLI-CONTRACT-REQ-001' : 'ECLI-CONTRACT-RES-001',
109
+ category: options.type === 'request' ? 'INPUT_ERROR' : 'DOWNSTREAM_ERROR',
110
+ message: options.type === 'request'
111
+ ? `Request validation failed against contract '${options.schemaName}': ${errorSummary}`
112
+ : `Response missing required execution proof or violates contract '${options.schemaName}': ${errorSummary}`,
113
+ details: {
114
+ schema: options.schemaName,
115
+ validation_errors: options.errors,
116
+ data_preview: options.data ? JSON.stringify(options.data).slice(0, 200) : undefined,
117
+ },
118
+ module: 'contracts',
119
+ correlationId: options.correlationId,
120
+ recoverable: false,
121
+ exitCode: options.type === 'request' ? 100 : 140,
122
+ });
123
+ this.name = 'ContractValidationError';
124
+ this.validationErrors = options.errors;
125
+ }
126
+ }
127
+ // ============================================================================
128
+ // Request Validation Functions
129
+ // ============================================================================
130
+ /**
131
+ * Validate a request payload against its contract schema.
132
+ * MUST be called BEFORE any network request.
133
+ *
134
+ * @throws ContractValidationError if validation fails
135
+ */
136
+ export function validateRequest(schemaName, data, correlationId) {
137
+ const validator = getRequestValidator(schemaName);
138
+ const valid = validator(data);
139
+ if (!valid) {
140
+ throw new ContractValidationError({
141
+ type: 'request',
142
+ schemaName,
143
+ errors: validator.errors ?? [],
144
+ data,
145
+ correlationId,
146
+ });
147
+ }
148
+ return data;
149
+ }
150
+ // ============================================================================
151
+ // Response Validation Functions
152
+ // ============================================================================
153
+ /**
154
+ * Validate a response payload against its contract schema.
155
+ * CRITICAL: This enforces:
156
+ * 1. execution_metadata REQUIRED
157
+ * 2. Multi-layer execution proof (layers_executed AND/OR execution_graph)
158
+ *
159
+ * @throws ContractValidationError if validation fails or execution proof missing
160
+ */
161
+ export function validateResponse(schemaName, data, correlationId) {
162
+ // ========================================================================
163
+ // STEP 1: Verify execution_metadata exists (hard requirement)
164
+ // ========================================================================
165
+ if (!hasExecutionMetadata(data)) {
166
+ throw new ContractValidationError({
167
+ type: 'response',
168
+ schemaName,
169
+ errors: [{
170
+ instancePath: '/execution_metadata',
171
+ message: 'Response missing required execution_metadata - cannot prove execution graph participation',
172
+ keyword: 'required',
173
+ params: { missingProperty: 'execution_metadata' },
174
+ }],
175
+ data,
176
+ correlationId,
177
+ });
178
+ }
179
+ // ========================================================================
180
+ // STEP 2: Verify multi-layer execution proof exists
181
+ // Responses MUST have either:
182
+ // - layers_executed array with layer execution records
183
+ // - execution_graph with node participation evidence
184
+ // ========================================================================
185
+ const proofResult = validateMultiLayerExecutionProof(data);
186
+ if (!proofResult.valid) {
187
+ throw new ContractValidationError({
188
+ type: 'response',
189
+ schemaName,
190
+ errors: proofResult.errors,
191
+ data,
192
+ correlationId,
193
+ });
194
+ }
195
+ // ========================================================================
196
+ // STEP 3: Validate full response schema
197
+ // ========================================================================
198
+ const validator = getResponseValidator(schemaName);
199
+ const valid = validator(data);
200
+ if (!valid) {
201
+ throw new ContractValidationError({
202
+ type: 'response',
203
+ schemaName,
204
+ errors: validator.errors ?? [],
205
+ data,
206
+ correlationId,
207
+ });
208
+ }
209
+ return data;
210
+ }
211
+ /**
212
+ * Validate that execution_metadata exists and has required fields.
213
+ * This is a hard requirement - responses without it are REJECTED.
214
+ */
215
+ function hasExecutionMetadata(data) {
216
+ if (!data || typeof data !== 'object') {
217
+ return false;
218
+ }
219
+ const obj = data;
220
+ const meta = obj['execution_metadata'];
221
+ if (!meta || typeof meta !== 'object') {
222
+ return false;
223
+ }
224
+ const metadata = meta;
225
+ // All required fields must be present
226
+ return (typeof metadata['execution_id'] === 'string' &&
227
+ typeof metadata['layer'] === 'string' &&
228
+ typeof metadata['timestamp'] === 'string' &&
229
+ typeof metadata['checksum'] === 'string');
230
+ }
231
+ /**
232
+ * Validate multi-layer execution proof.
233
+ * Responses MUST have at least one of:
234
+ * - layers_executed: array of layer execution records
235
+ * - execution_graph: DAG showing node participation
236
+ *
237
+ * This proves the response traversed the execution graph.
238
+ */
239
+ function validateMultiLayerExecutionProof(data) {
240
+ if (!data || typeof data !== 'object') {
241
+ return {
242
+ valid: false,
243
+ errors: [{
244
+ instancePath: '/',
245
+ message: 'Response must be an object',
246
+ keyword: 'type',
247
+ params: { type: 'object' },
248
+ }],
249
+ };
250
+ }
251
+ const obj = data;
252
+ const hasLayersExecuted = Array.isArray(obj['layers_executed']) && obj['layers_executed'].length > 0;
253
+ const hasExecutionGraph = obj['execution_graph'] && typeof obj['execution_graph'] === 'object';
254
+ // At least one form of multi-layer proof is required
255
+ if (!hasLayersExecuted && !hasExecutionGraph) {
256
+ return {
257
+ valid: false,
258
+ errors: [{
259
+ instancePath: '/',
260
+ message: 'Response missing multi-layer execution proof - must include layers_executed array OR execution_graph',
261
+ keyword: 'anyOf',
262
+ params: { missingProperty: 'layers_executed OR execution_graph' },
263
+ }],
264
+ };
265
+ }
266
+ // If layers_executed is present, validate it has required structure
267
+ if (hasLayersExecuted) {
268
+ const layersExecuted = obj['layers_executed'];
269
+ const layerErrors = [];
270
+ for (let i = 0; i < layersExecuted.length; i++) {
271
+ const record = layersExecuted[i];
272
+ if (!record || typeof record !== 'object') {
273
+ layerErrors.push({
274
+ instancePath: `/layers_executed/${i}`,
275
+ message: 'Layer execution record must be an object',
276
+ keyword: 'type',
277
+ params: { type: 'object' },
278
+ });
279
+ continue;
280
+ }
281
+ // Validate required fields
282
+ if (typeof record['layer'] !== 'string') {
283
+ layerErrors.push({
284
+ instancePath: `/layers_executed/${i}/layer`,
285
+ message: 'Layer execution record missing layer identifier',
286
+ keyword: 'required',
287
+ params: { missingProperty: 'layer' },
288
+ });
289
+ }
290
+ else if (!platformLayers.includes(record['layer'])) {
291
+ layerErrors.push({
292
+ instancePath: `/layers_executed/${i}/layer`,
293
+ message: `Invalid layer '${record['layer']}' - must be one of: ${platformLayers.join(', ')}`,
294
+ keyword: 'enum',
295
+ params: { allowedValues: platformLayers },
296
+ });
297
+ }
298
+ if (typeof record['execution_id'] !== 'string') {
299
+ layerErrors.push({
300
+ instancePath: `/layers_executed/${i}/execution_id`,
301
+ message: 'Layer execution record missing execution_id',
302
+ keyword: 'required',
303
+ params: { missingProperty: 'execution_id' },
304
+ });
305
+ }
306
+ if (typeof record['timestamp'] !== 'string') {
307
+ layerErrors.push({
308
+ instancePath: `/layers_executed/${i}/timestamp`,
309
+ message: 'Layer execution record missing timestamp',
310
+ keyword: 'required',
311
+ params: { missingProperty: 'timestamp' },
312
+ });
313
+ }
314
+ if (typeof record['status'] !== 'string') {
315
+ layerErrors.push({
316
+ instancePath: `/layers_executed/${i}/status`,
317
+ message: 'Layer execution record missing status',
318
+ keyword: 'required',
319
+ params: { missingProperty: 'status' },
320
+ });
321
+ }
322
+ }
323
+ if (layerErrors.length > 0) {
324
+ return { valid: false, errors: layerErrors };
325
+ }
326
+ }
327
+ // If execution_graph is present, validate it has required structure
328
+ if (hasExecutionGraph) {
329
+ const graph = obj['execution_graph'];
330
+ const graphErrors = [];
331
+ if (typeof graph['graph_id'] !== 'string') {
332
+ graphErrors.push({
333
+ instancePath: '/execution_graph/graph_id',
334
+ message: 'Execution graph missing graph_id',
335
+ keyword: 'required',
336
+ params: { missingProperty: 'graph_id' },
337
+ });
338
+ }
339
+ if (typeof graph['root_node'] !== 'string') {
340
+ graphErrors.push({
341
+ instancePath: '/execution_graph/root_node',
342
+ message: 'Execution graph missing root_node',
343
+ keyword: 'required',
344
+ params: { missingProperty: 'root_node' },
345
+ });
346
+ }
347
+ if (!Array.isArray(graph['nodes']) || graph['nodes'].length === 0) {
348
+ graphErrors.push({
349
+ instancePath: '/execution_graph/nodes',
350
+ message: 'Execution graph must have at least one node',
351
+ keyword: 'minItems',
352
+ params: { limit: 1 },
353
+ });
354
+ }
355
+ if (typeof graph['created_at'] !== 'string') {
356
+ graphErrors.push({
357
+ instancePath: '/execution_graph/created_at',
358
+ message: 'Execution graph missing created_at timestamp',
359
+ keyword: 'required',
360
+ params: { missingProperty: 'created_at' },
361
+ });
362
+ }
363
+ if (graphErrors.length > 0) {
364
+ return { valid: false, errors: graphErrors };
365
+ }
366
+ }
367
+ return { valid: true, errors: [] };
368
+ }
369
+ /**
370
+ * Safe validation that returns a result object instead of throwing.
371
+ * Useful for conditional handling in some scenarios.
372
+ */
373
+ export function safeValidateRequest(schemaName, data, correlationId) {
374
+ try {
375
+ const validated = validateRequest(schemaName, data, correlationId);
376
+ return { valid: true, data: validated };
377
+ }
378
+ catch (error) {
379
+ if (error instanceof ContractValidationError) {
380
+ return { valid: false, error };
381
+ }
382
+ throw error;
383
+ }
384
+ }
385
+ export function safeValidateResponse(schemaName, data, correlationId) {
386
+ try {
387
+ const validated = validateResponse(schemaName, data, correlationId);
388
+ return { valid: true, data: validated };
389
+ }
390
+ catch (error) {
391
+ if (error instanceof ContractValidationError) {
392
+ return { valid: false, error };
393
+ }
394
+ throw error;
395
+ }
396
+ }
397
+ //# sourceMappingURL=validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/contracts/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Agentics Platform API Server
3
+ *
4
+ * Hono-based backend API server providing stub implementations
5
+ * for all agentics platform services.
6
+ *
7
+ * Routes:
8
+ * - GET /health - Health check
9
+ * - GET /ready - Readiness check
10
+ * - POST /v1/cli/auth/sessions - OAuth device flow session creation
11
+ * - GET /v1/cli/auth/sessions/:code - Poll auth status
12
+ * - POST /v1/simulate - Simulation engine (inspect command)
13
+ * - POST /v1/manifests - Manifests service (plan command)
14
+ * - POST /v1/plans - Planner service (plan command)
15
+ * - POST /v1/runner - Runner service (simulate command)
16
+ * - POST /v1/roi - ROI engine (quantify command)
17
+ * - POST /v1/intent - Intent service (deploy command)
18
+ * - POST /v1/exporters - Exporters service (export command)
19
+ * - POST /v1/diligence - Diligence service (diligence command)
20
+ * - POST /v1/erpsurface - ERP Surface service (ERP integration)
21
+ */
22
+ import { Hono } from 'hono';
23
+ declare const app: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
24
+ export { app };
25
+ export default app;
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAsB5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAsIvB,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,eAAe,GAAG,CAAC"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Agentics Platform API Server
3
+ *
4
+ * Hono-based backend API server providing stub implementations
5
+ * for all agentics platform services.
6
+ *
7
+ * Routes:
8
+ * - GET /health - Health check
9
+ * - GET /ready - Readiness check
10
+ * - POST /v1/cli/auth/sessions - OAuth device flow session creation
11
+ * - GET /v1/cli/auth/sessions/:code - Poll auth status
12
+ * - POST /v1/simulate - Simulation engine (inspect command)
13
+ * - POST /v1/manifests - Manifests service (plan command)
14
+ * - POST /v1/plans - Planner service (plan command)
15
+ * - POST /v1/runner - Runner service (simulate command)
16
+ * - POST /v1/roi - ROI engine (quantify command)
17
+ * - POST /v1/intent - Intent service (deploy command)
18
+ * - POST /v1/exporters - Exporters service (export command)
19
+ * - POST /v1/diligence - Diligence service (diligence command)
20
+ * - POST /v1/erpsurface - ERP Surface service (ERP integration)
21
+ */
22
+ import { serve } from '@hono/node-server';
23
+ import { Hono } from 'hono';
24
+ import { cors } from 'hono/cors';
25
+ import { logger } from 'hono/logger';
26
+ import { simulate, manifests, plans, runner, roi, intent, exporters, diligence, health, auth, erpsurface, } from './routes/index.js';
27
+ // ============================================================================
28
+ // App Configuration
29
+ // ============================================================================
30
+ const app = new Hono();
31
+ // Middleware
32
+ app.use('*', logger());
33
+ app.use('*', cors({
34
+ origin: '*',
35
+ allowMethods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
36
+ allowHeaders: ['Content-Type', 'Authorization', 'X-Correlation-ID', 'X-Trace-ID'],
37
+ credentials: true,
38
+ }));
39
+ // ============================================================================
40
+ // Route Registration
41
+ // ============================================================================
42
+ // Health check (root level)
43
+ app.route('/health', health);
44
+ // Readiness check
45
+ app.get('/ready', (c) => {
46
+ return c.json({
47
+ ready: true,
48
+ timestamp: new Date().toISOString(),
49
+ });
50
+ });
51
+ // Root endpoint
52
+ app.get('/', (c) => {
53
+ return c.json({
54
+ name: 'Agentics Platform API',
55
+ version: process.env['npm_package_version'] ?? '1.0.0',
56
+ documentation: 'https://platform.agentics.dev/docs',
57
+ });
58
+ });
59
+ // Legacy status endpoint
60
+ app.get('/api/v1/status', (c) => {
61
+ return c.json({
62
+ operational: true,
63
+ timestamp: new Date().toISOString(),
64
+ });
65
+ });
66
+ // Auth routes
67
+ app.route('/v1/cli/auth', auth);
68
+ // API v1 routes
69
+ app.route('/v1/simulate', simulate);
70
+ app.route('/v1/manifests', manifests);
71
+ app.route('/v1/plans', plans);
72
+ app.route('/v1/runner', runner);
73
+ app.route('/v1/roi', roi);
74
+ app.route('/v1/intent', intent);
75
+ app.route('/v1/exporters', exporters);
76
+ app.route('/v1/diligence', diligence);
77
+ app.route('/v1/erpsurface', erpsurface);
78
+ // ============================================================================
79
+ // Error Handling
80
+ // ============================================================================
81
+ app.notFound((c) => {
82
+ return c.json({
83
+ error: {
84
+ code: 'NOT_FOUND',
85
+ message: `Route ${c.req.method} ${c.req.path} not found`,
86
+ available_routes: [
87
+ 'GET /health',
88
+ 'GET /ready',
89
+ 'POST /v1/cli/auth/sessions',
90
+ 'GET /v1/cli/auth/sessions/:device_code',
91
+ 'POST /v1/simulate',
92
+ 'POST /v1/manifests',
93
+ 'POST /v1/plans',
94
+ 'POST /v1/runner',
95
+ 'POST /v1/roi',
96
+ 'POST /v1/intent',
97
+ 'POST /v1/exporters',
98
+ 'POST /v1/diligence',
99
+ 'POST /v1/erpsurface',
100
+ ],
101
+ },
102
+ }, 404);
103
+ });
104
+ app.onError((err, c) => {
105
+ console.error('Unhandled error:', err);
106
+ return c.json({
107
+ error: {
108
+ code: 'INTERNAL_ERROR',
109
+ message: process.env['NODE_ENV'] === 'production'
110
+ ? 'An error occurred'
111
+ : (err.message ?? 'An unexpected error occurred'),
112
+ },
113
+ }, 500);
114
+ });
115
+ // ============================================================================
116
+ // Server Startup
117
+ // ============================================================================
118
+ const PORT = parseInt(process.env['PORT'] ?? '8080', 10);
119
+ console.log(`Starting Agentics Platform API Server...`);
120
+ console.log(`Environment: ${process.env['NODE_ENV'] ?? 'development'}`);
121
+ serve({
122
+ fetch: app.fetch,
123
+ port: PORT,
124
+ }, (info) => {
125
+ console.log(`Server running at http://localhost:${info.port}`);
126
+ console.log(`\nAvailable endpoints:`);
127
+ console.log(` GET http://localhost:${info.port}/health`);
128
+ console.log(` GET http://localhost:${info.port}/ready`);
129
+ console.log(` POST http://localhost:${info.port}/v1/cli/auth/sessions`);
130
+ console.log(` GET http://localhost:${info.port}/v1/cli/auth/sessions/:device_code`);
131
+ console.log(` POST http://localhost:${info.port}/v1/simulate`);
132
+ console.log(` POST http://localhost:${info.port}/v1/manifests`);
133
+ console.log(` POST http://localhost:${info.port}/v1/plans`);
134
+ console.log(` POST http://localhost:${info.port}/v1/runner`);
135
+ console.log(` POST http://localhost:${info.port}/v1/roi`);
136
+ console.log(` POST http://localhost:${info.port}/v1/intent`);
137
+ console.log(` POST http://localhost:${info.port}/v1/exporters`);
138
+ console.log(` POST http://localhost:${info.port}/v1/diligence`);
139
+ console.log(` POST http://localhost:${info.port}/v1/erpsurface`);
140
+ });
141
+ // Export for testing and programmatic use
142
+ export { app };
143
+ export default app;
144
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Auth Route Handler
3
+ *
4
+ * POST /v1/cli/auth/sessions - Create OAuth device flow session
5
+ * GET /v1/cli/auth/sessions/:device_code - Poll for auth completion
6
+ *
7
+ * OAuth device flow authentication endpoints for CLI login.
8
+ */
9
+ import { Hono } from 'hono';
10
+ declare const auth: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
11
+ export { auth };
12
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/server/routes/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,QAAA,MAAM,IAAI,4EAAa,CAAC;AAiIxB,OAAO,EAAE,IAAI,EAAE,CAAC"}