@llm-dev-ops/agentics-cli 1.4.95 → 1.5.1
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/agents/system-prompts.d.ts.map +1 -1
- package/dist/agents/system-prompts.js +25 -3
- package/dist/agents/system-prompts.js.map +1 -1
- package/dist/commands/export.d.ts.map +1 -1
- package/dist/commands/export.js +20 -1
- package/dist/commands/export.js.map +1 -1
- package/dist/infrastructure/db-adapter.d.ts +67 -0
- package/dist/infrastructure/db-adapter.d.ts.map +1 -0
- package/dist/infrastructure/db-adapter.js +151 -0
- package/dist/infrastructure/db-adapter.js.map +1 -0
- package/dist/infrastructure/sap-adapter.d.ts +95 -0
- package/dist/infrastructure/sap-adapter.d.ts.map +1 -0
- package/dist/infrastructure/sap-adapter.js +651 -0
- package/dist/infrastructure/sap-adapter.js.map +1 -0
- package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.d.ts.map +1 -1
- package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js +56 -9
- package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js.map +1 -1
- package/dist/routing/capability-classifier.d.ts.map +1 -1
- package/dist/routing/capability-classifier.js +16 -1
- package/dist/routing/capability-classifier.js.map +1 -1
- package/dist/server/routes/erpsurface.d.ts +3 -1
- package/dist/server/routes/erpsurface.d.ts.map +1 -1
- package/dist/server/routes/erpsurface.js +548 -7
- package/dist/server/routes/erpsurface.js.map +1 -1
- package/dist/synthesis/simulation-artifact-generator.d.ts.map +1 -1
- package/dist/synthesis/simulation-artifact-generator.js +23 -5
- package/dist/synthesis/simulation-artifact-generator.js.map +1 -1
- package/docs/ecosystem.graph.json +5 -5
- package/package.json +1 -1
- package/dist/__tests__/api_gateway.test.d.ts +0 -1
- package/dist/__tests__/api_gateway.test.js +0 -50
- package/dist/__tests__/domain_enterprise_solution.test.d.ts +0 -1
- package/dist/__tests__/domain_enterprise_solution.test.js +0 -50
- package/dist/__tests__/health.test.d.ts +0 -1
- package/dist/__tests__/health.test.js +0 -19
- package/dist/__tests__/monitoring_alerts.test.d.ts +0 -1
- package/dist/__tests__/monitoring_alerts.test.js +0 -50
- package/dist/__tests__/ongoing_regular_stakeholder.test.d.ts +0 -1
- package/dist/__tests__/ongoing_regular_stakeholder.test.js +0 -50
- package/dist/__tests__/re_evaluate_risk.test.d.ts +0 -1
- package/dist/__tests__/re_evaluate_risk.test.js +0 -50
- package/dist/__tests__/recommendation.test.d.ts +0 -1
- package/dist/__tests__/recommendation.test.js +0 -50
- package/dist/__tests__/risk_mitigation_plan.test.d.ts +0 -1
- package/dist/__tests__/risk_mitigation_plan.test.js +0 -50
- package/dist/__tests__/scoped_pilot_reduce.test.d.ts +0 -1
- package/dist/__tests__/scoped_pilot_reduce.test.js +0 -50
- package/dist/__tests__/target_enterprise_system.test.d.ts +0 -1
- package/dist/__tests__/target_enterprise_system.test.js +0 -50
- package/dist/__tests__/underwriting.test.d.ts +0 -1
- package/dist/__tests__/underwriting.test.js +0 -50
- package/dist/api-gateway/infra/api-gateway-adapter.d.ts +0 -27
- package/dist/api-gateway/infra/api-gateway-adapter.js +0 -54
- package/dist/api-gateway/ports/api-gateway.d.ts +0 -26
- package/dist/api-gateway/ports/api-gateway.js +0 -2
- package/dist/contracts/contract-validation.d.ts +0 -11
- package/dist/contracts/contract-validation.js +0 -21
- package/dist/domain-enterprise-solution/infra/api-gateway-seam-adapter.d.ts +0 -21
- package/dist/domain-enterprise-solution/infra/api-gateway-seam-adapter.js +0 -42
- package/dist/domain-enterprise-solution/infra/domain-enterprise-solution-adapter.d.ts +0 -25
- package/dist/domain-enterprise-solution/infra/domain-enterprise-solution-adapter.js +0 -47
- package/dist/domain-enterprise-solution/ports/api-gateway-seam.d.ts +0 -20
- package/dist/domain-enterprise-solution/ports/api-gateway-seam.js +0 -2
- package/dist/domain-enterprise-solution/ports/domain-enterprise-solution.d.ts +0 -24
- package/dist/domain-enterprise-solution/ports/domain-enterprise-solution.js +0 -2
- package/dist/enterprise/index.d.ts +0 -15
- package/dist/enterprise/index.js +0 -16
- package/dist/erp-client/client.d.ts +0 -42
- package/dist/erp-client/client.js +0 -235
- package/dist/erp-client/mapper.d.ts +0 -9
- package/dist/erp-client/mapper.js +0 -116
- package/dist/erp-client/retry.d.ts +0 -17
- package/dist/erp-client/retry.js +0 -74
- package/dist/erp-client/types.d.ts +0 -155
- package/dist/erp-client/types.js +0 -2
- package/dist/infra/clients.d.ts +0 -27
- package/dist/infra/clients.js +0 -16
- package/dist/infra/connection-pool.d.ts +0 -16
- package/dist/infra/connection-pool.js +0 -13
- package/dist/infra/iam-helper.d.ts +0 -1
- package/dist/infra/iam-helper.js +0 -138
- package/dist/infra/telemetry.d.ts +0 -26
- package/dist/infra/telemetry.js +0 -39
- package/dist/monitoring-alerts/infra/monitoring-alerts-adapter.d.ts +0 -25
- package/dist/monitoring-alerts/infra/monitoring-alerts-adapter.js +0 -47
- package/dist/monitoring-alerts/ports/monitoring-alerts.d.ts +0 -24
- package/dist/monitoring-alerts/ports/monitoring-alerts.js +0 -2
- package/dist/ongoing-regular-stakeholder/infra/ongoing-regular-stakeholder-adapter.d.ts +0 -25
- package/dist/ongoing-regular-stakeholder/infra/ongoing-regular-stakeholder-adapter.js +0 -47
- package/dist/ongoing-regular-stakeholder/ports/ongoing-regular-stakeholder.d.ts +0 -24
- package/dist/ongoing-regular-stakeholder/ports/ongoing-regular-stakeholder.js +0 -2
- package/dist/re-evaluate-risk/infra/re-evaluate-risk-adapter.d.ts +0 -25
- package/dist/re-evaluate-risk/infra/re-evaluate-risk-adapter.js +0 -47
- package/dist/re-evaluate-risk/ports/re-evaluate-risk.d.ts +0 -24
- package/dist/re-evaluate-risk/ports/re-evaluate-risk.js +0 -2
- package/dist/recommendation/infra/recommendation-adapter.d.ts +0 -25
- package/dist/recommendation/infra/recommendation-adapter.js +0 -47
- package/dist/recommendation/ports/recommendation.d.ts +0 -24
- package/dist/recommendation/ports/recommendation.js +0 -2
- package/dist/risk-mitigation-plan/infra/risk-mitigation-plan-adapter.d.ts +0 -25
- package/dist/risk-mitigation-plan/infra/risk-mitigation-plan-adapter.js +0 -47
- package/dist/risk-mitigation-plan/ports/risk-mitigation-plan.d.ts +0 -24
- package/dist/risk-mitigation-plan/ports/risk-mitigation-plan.js +0 -2
- package/dist/scoped-pilot-reduce/infra/scoped-pilot-reduce-adapter.d.ts +0 -25
- package/dist/scoped-pilot-reduce/infra/scoped-pilot-reduce-adapter.js +0 -47
- package/dist/scoped-pilot-reduce/ports/scoped-pilot-reduce.d.ts +0 -24
- package/dist/scoped-pilot-reduce/ports/scoped-pilot-reduce.js +0 -2
- package/dist/server/dependencies.d.ts +0 -178
- package/dist/server/dependencies.js +0 -321
- package/dist/server/health.d.ts +0 -2
- package/dist/server/health.js +0 -9
- package/dist/server/main.d.ts +0 -1
- package/dist/server/main.js +0 -21
- package/dist/server/middleware.d.ts +0 -4
- package/dist/server/middleware.js +0 -106
- package/dist/server/routes.d.ts +0 -5
- package/dist/server/routes.js +0 -1100
- package/dist/server/schemas.d.ts +0 -217
- package/dist/server/schemas.js +0 -185
- package/dist/target-enterprise-system/infra/target-enterprise-system-adapter.d.ts +0 -25
- package/dist/target-enterprise-system/infra/target-enterprise-system-adapter.js +0 -47
- package/dist/target-enterprise-system/ports/target-enterprise-system.d.ts +0 -24
- package/dist/target-enterprise-system/ports/target-enterprise-system.js +0 -2
- package/dist/underwriting/infra/underwriting-adapter.d.ts +0 -25
- package/dist/underwriting/infra/underwriting-adapter.js +0 -47
- package/dist/underwriting/ports/underwriting.d.ts +0 -24
- package/dist/underwriting/ports/underwriting.js +0 -2
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
import { describe, it, expect } from 'vitest';
|
|
3
|
-
// Mock adapter for scoped pilot reduce
|
|
4
|
-
class MockScopedPilotReduceAdapter {
|
|
5
|
-
store = new Map();
|
|
6
|
-
async execute(command, payload) {
|
|
7
|
-
const id = crypto.randomUUID();
|
|
8
|
-
const now = new Date().toISOString();
|
|
9
|
-
const record = { id, status: 'active', created_at: now, updated_at: now, data: payload };
|
|
10
|
-
this.store.set(id, record);
|
|
11
|
-
return record;
|
|
12
|
-
}
|
|
13
|
-
async query(_filters, limit, offset) {
|
|
14
|
-
const all = [...this.store.values()];
|
|
15
|
-
return { rows: all.slice(offset, offset + limit), total: all.length };
|
|
16
|
-
}
|
|
17
|
-
async getById(id) {
|
|
18
|
-
return this.store.get(id) ?? null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
describe('scoped pilot reduce Port', () => {
|
|
22
|
-
const adapter = new MockScopedPilotReduceAdapter();
|
|
23
|
-
it('execute() creates a record with active status', async () => {
|
|
24
|
-
const result = await adapter.execute('create', { name: 'test-entity' });
|
|
25
|
-
expect(result.id).toBeDefined();
|
|
26
|
-
expect(result.status).toBe('active');
|
|
27
|
-
expect(result.data.name).toBe('test-entity');
|
|
28
|
-
expect(result.created_at).toBeDefined();
|
|
29
|
-
});
|
|
30
|
-
it('getById() retrieves a created record', async () => {
|
|
31
|
-
const created = await adapter.execute('create', { value: 42 });
|
|
32
|
-
const found = await adapter.getById(created.id);
|
|
33
|
-
expect(found).not.toBeNull();
|
|
34
|
-
expect(found.id).toBe(created.id);
|
|
35
|
-
expect(found.data.value).toBe(42);
|
|
36
|
-
});
|
|
37
|
-
it('getById() returns null for non-existent id', async () => {
|
|
38
|
-
const found = await adapter.getById('non-existent-id');
|
|
39
|
-
expect(found).toBeNull();
|
|
40
|
-
});
|
|
41
|
-
it('query() returns paginated results', async () => {
|
|
42
|
-
const mockAdapter = new MockScopedPilotReduceAdapter();
|
|
43
|
-
await mockAdapter.execute('create', { idx: 1 });
|
|
44
|
-
await mockAdapter.execute('create', { idx: 2 });
|
|
45
|
-
await mockAdapter.execute('create', { idx: 3 });
|
|
46
|
-
const result = await mockAdapter.query({}, 2, 0);
|
|
47
|
-
expect(result.total).toBe(3);
|
|
48
|
-
expect(result.rows).toHaveLength(2);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
import { describe, it, expect } from 'vitest';
|
|
3
|
-
// Mock adapter for target enterprise system
|
|
4
|
-
class MockTargetEnterpriseSystemAdapter {
|
|
5
|
-
store = new Map();
|
|
6
|
-
async execute(command, payload) {
|
|
7
|
-
const id = crypto.randomUUID();
|
|
8
|
-
const now = new Date().toISOString();
|
|
9
|
-
const record = { id, status: 'active', created_at: now, updated_at: now, data: payload };
|
|
10
|
-
this.store.set(id, record);
|
|
11
|
-
return record;
|
|
12
|
-
}
|
|
13
|
-
async query(_filters, limit, offset) {
|
|
14
|
-
const all = [...this.store.values()];
|
|
15
|
-
return { rows: all.slice(offset, offset + limit), total: all.length };
|
|
16
|
-
}
|
|
17
|
-
async getById(id) {
|
|
18
|
-
return this.store.get(id) ?? null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
describe('target enterprise system Port', () => {
|
|
22
|
-
const adapter = new MockTargetEnterpriseSystemAdapter();
|
|
23
|
-
it('execute() creates a record with active status', async () => {
|
|
24
|
-
const result = await adapter.execute('create', { name: 'test-entity' });
|
|
25
|
-
expect(result.id).toBeDefined();
|
|
26
|
-
expect(result.status).toBe('active');
|
|
27
|
-
expect(result.data.name).toBe('test-entity');
|
|
28
|
-
expect(result.created_at).toBeDefined();
|
|
29
|
-
});
|
|
30
|
-
it('getById() retrieves a created record', async () => {
|
|
31
|
-
const created = await adapter.execute('create', { value: 42 });
|
|
32
|
-
const found = await adapter.getById(created.id);
|
|
33
|
-
expect(found).not.toBeNull();
|
|
34
|
-
expect(found.id).toBe(created.id);
|
|
35
|
-
expect(found.data.value).toBe(42);
|
|
36
|
-
});
|
|
37
|
-
it('getById() returns null for non-existent id', async () => {
|
|
38
|
-
const found = await adapter.getById('non-existent-id');
|
|
39
|
-
expect(found).toBeNull();
|
|
40
|
-
});
|
|
41
|
-
it('query() returns paginated results', async () => {
|
|
42
|
-
const mockAdapter = new MockTargetEnterpriseSystemAdapter();
|
|
43
|
-
await mockAdapter.execute('create', { idx: 1 });
|
|
44
|
-
await mockAdapter.execute('create', { idx: 2 });
|
|
45
|
-
await mockAdapter.execute('create', { idx: 3 });
|
|
46
|
-
const result = await mockAdapter.query({}, 2, 0);
|
|
47
|
-
expect(result.total).toBe(3);
|
|
48
|
-
expect(result.rows).toHaveLength(2);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
import { describe, it, expect } from 'vitest';
|
|
3
|
-
// Mock adapter for underwriting
|
|
4
|
-
class MockUnderwritingAdapter {
|
|
5
|
-
store = new Map();
|
|
6
|
-
async execute(command, payload) {
|
|
7
|
-
const id = crypto.randomUUID();
|
|
8
|
-
const now = new Date().toISOString();
|
|
9
|
-
const record = { id, status: 'active', created_at: now, updated_at: now, data: payload };
|
|
10
|
-
this.store.set(id, record);
|
|
11
|
-
return record;
|
|
12
|
-
}
|
|
13
|
-
async query(_filters, limit, offset) {
|
|
14
|
-
const all = [...this.store.values()];
|
|
15
|
-
return { rows: all.slice(offset, offset + limit), total: all.length };
|
|
16
|
-
}
|
|
17
|
-
async getById(id) {
|
|
18
|
-
return this.store.get(id) ?? null;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
describe('underwriting Port', () => {
|
|
22
|
-
const adapter = new MockUnderwritingAdapter();
|
|
23
|
-
it('execute() creates a record with active status', async () => {
|
|
24
|
-
const result = await adapter.execute('create', { name: 'test-entity' });
|
|
25
|
-
expect(result.id).toBeDefined();
|
|
26
|
-
expect(result.status).toBe('active');
|
|
27
|
-
expect(result.data.name).toBe('test-entity');
|
|
28
|
-
expect(result.created_at).toBeDefined();
|
|
29
|
-
});
|
|
30
|
-
it('getById() retrieves a created record', async () => {
|
|
31
|
-
const created = await adapter.execute('create', { value: 42 });
|
|
32
|
-
const found = await adapter.getById(created.id);
|
|
33
|
-
expect(found).not.toBeNull();
|
|
34
|
-
expect(found.id).toBe(created.id);
|
|
35
|
-
expect(found.data.value).toBe(42);
|
|
36
|
-
});
|
|
37
|
-
it('getById() returns null for non-existent id', async () => {
|
|
38
|
-
const found = await adapter.getById('non-existent-id');
|
|
39
|
-
expect(found).toBeNull();
|
|
40
|
-
});
|
|
41
|
-
it('query() returns paginated results', async () => {
|
|
42
|
-
const mockAdapter = new MockUnderwritingAdapter();
|
|
43
|
-
await mockAdapter.execute('create', { idx: 1 });
|
|
44
|
-
await mockAdapter.execute('create', { idx: 2 });
|
|
45
|
-
await mockAdapter.execute('create', { idx: 3 });
|
|
46
|
-
const result = await mockAdapter.query({}, 2, 0);
|
|
47
|
-
expect(result.total).toBe(3);
|
|
48
|
-
expect(result.rows).toHaveLength(2);
|
|
49
|
-
});
|
|
50
|
-
});
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { ApiGatewayPort, ApiGatewayInput, ApiGateway } from '../ports/api-gateway.js';
|
|
2
|
-
import type { Telemetry } from '../../infra/telemetry.js';
|
|
3
|
-
import type { DbClient, ErpClient } from '../../infra/clients.js';
|
|
4
|
-
/**
|
|
5
|
-
* Infrastructure adapter: ApiGatewayAdapter
|
|
6
|
-
* Bounded context: api-gateway
|
|
7
|
-
* ERP system: infor
|
|
8
|
-
*
|
|
9
|
-
* Bridges the ApiGatewayPort port to the infor ERP system
|
|
10
|
-
* and the underlying database client.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ApiGatewayAdapter implements ApiGatewayPort {
|
|
13
|
-
private readonly db;
|
|
14
|
-
private readonly erp;
|
|
15
|
-
private readonly telemetry;
|
|
16
|
-
constructor(db: DbClient, erp: ErpClient, telemetry: Telemetry);
|
|
17
|
-
/** Creates or updates api-gateway record */
|
|
18
|
-
routeRequests(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
19
|
-
/** Creates or updates api-gateway record */
|
|
20
|
-
authenticate(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
21
|
-
/** Creates or updates api-gateway record */
|
|
22
|
-
rateLimit(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
23
|
-
/** Returns api-gateway data */
|
|
24
|
-
listApiGateway(input: Record<string, unknown>): Promise<ApiGateway[]>;
|
|
25
|
-
/** Returns api-gateway data */
|
|
26
|
-
id(input: Record<string, unknown>): Promise<ApiGateway[]>;
|
|
27
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
/**
|
|
3
|
-
* Infrastructure adapter: ApiGatewayAdapter
|
|
4
|
-
* Bounded context: api-gateway
|
|
5
|
-
* ERP system: infor
|
|
6
|
-
*
|
|
7
|
-
* Bridges the ApiGatewayPort port to the infor ERP system
|
|
8
|
-
* and the underlying database client.
|
|
9
|
-
*/
|
|
10
|
-
export class ApiGatewayAdapter {
|
|
11
|
-
db;
|
|
12
|
-
erp;
|
|
13
|
-
telemetry;
|
|
14
|
-
constructor(db, erp, telemetry) {
|
|
15
|
-
this.db = db;
|
|
16
|
-
this.erp = erp;
|
|
17
|
-
this.telemetry = telemetry;
|
|
18
|
-
}
|
|
19
|
-
/** Creates or updates api-gateway record */
|
|
20
|
-
async routeRequests(input) {
|
|
21
|
-
return this.telemetry.withSpan('api_gateway', 'routeRequests', {}, async () => {
|
|
22
|
-
const result = await this.erp.invoke('routeRequests', input);
|
|
23
|
-
return result;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
/** Creates or updates api-gateway record */
|
|
27
|
-
async authenticate(input) {
|
|
28
|
-
return this.telemetry.withSpan('api_gateway', 'authenticate', {}, async () => {
|
|
29
|
-
const result = await this.erp.invoke('authenticate', input);
|
|
30
|
-
return result;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
/** Creates or updates api-gateway record */
|
|
34
|
-
async rateLimit(input) {
|
|
35
|
-
return this.telemetry.withSpan('api_gateway', 'rateLimit', {}, async () => {
|
|
36
|
-
const result = await this.erp.invoke('rateLimit', input);
|
|
37
|
-
return result;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/** Returns api-gateway data */
|
|
41
|
-
async listApiGateway(input) {
|
|
42
|
-
return this.telemetry.withSpan('api_gateway', 'listApiGateway', {}, async () => {
|
|
43
|
-
const rows = await this.db.query('SELECT * FROM api_gateway WHERE 1=1', []);
|
|
44
|
-
return rows;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
/** Returns api-gateway data */
|
|
48
|
-
async id(input) {
|
|
49
|
-
return this.telemetry.withSpan('api_gateway', 'id', {}, async () => {
|
|
50
|
-
const result = await this.erp.invoke('id', input);
|
|
51
|
-
return result;
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Port interface for bounded context: api-gateway
|
|
3
|
-
*/
|
|
4
|
-
export interface ApiGatewayInput {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly api_gateway_id: string;
|
|
7
|
-
}
|
|
8
|
-
export interface ApiGateway {
|
|
9
|
-
readonly id: string;
|
|
10
|
-
readonly created_at: string;
|
|
11
|
-
readonly updated_at: string;
|
|
12
|
-
readonly status: 'active' | 'inactive' | 'pending' | 'completed' | 'error';
|
|
13
|
-
readonly api_gateway_id: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ApiGatewayPort {
|
|
16
|
-
/** Creates or updates api-gateway record */
|
|
17
|
-
routeRequests(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
18
|
-
/** Creates or updates api-gateway record */
|
|
19
|
-
authenticate(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
20
|
-
/** Creates or updates api-gateway record */
|
|
21
|
-
rateLimit(input: ApiGatewayInput): Promise<ApiGateway>;
|
|
22
|
-
/** Returns api-gateway data */
|
|
23
|
-
listApiGateway(input: Record<string, unknown>): Promise<ApiGateway[]>;
|
|
24
|
-
/** Returns api-gateway data */
|
|
25
|
-
id(input: Record<string, unknown>): Promise<ApiGateway[]>;
|
|
26
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Contract validation for ERP deployment artifacts.
|
|
3
|
-
* Schema source: runtime
|
|
4
|
-
*/
|
|
5
|
-
type JsonSchema = Record<string, any>;
|
|
6
|
-
export interface ValidationResult {
|
|
7
|
-
readonly valid: boolean;
|
|
8
|
-
readonly errors: string[];
|
|
9
|
-
}
|
|
10
|
-
export declare function validateDeploymentArtifact(payload: unknown, schema?: JsonSchema): ValidationResult;
|
|
11
|
-
export {};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 6 pipeline — do not edit manually
|
|
2
|
-
const EMBEDDED_SCHEMA = null;
|
|
3
|
-
export function validateDeploymentArtifact(payload, schema) {
|
|
4
|
-
const activeSchema = schema ?? EMBEDDED_SCHEMA;
|
|
5
|
-
const errors = [];
|
|
6
|
-
if (activeSchema === null) {
|
|
7
|
-
return { valid: true, errors: ['Schema not available — validation skipped'] };
|
|
8
|
-
}
|
|
9
|
-
if (typeof payload !== 'object' || payload === null) {
|
|
10
|
-
return { valid: false, errors: ['Payload must be a non-null object'] };
|
|
11
|
-
}
|
|
12
|
-
const obj = payload;
|
|
13
|
-
const requiredFields = activeSchema['required'];
|
|
14
|
-
if (Array.isArray(requiredFields)) {
|
|
15
|
-
for (const field of requiredFields) {
|
|
16
|
-
if (!(field in obj))
|
|
17
|
-
errors.push(`Missing required field: ${field}`);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
return { valid: errors.length === 0, errors };
|
|
21
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import type { ApiGatewaySeamPort, DomainEnterpriseSolution, DomainEnterpriseSolutionInput } from '../ports/api-gateway-seam.js';
|
|
2
|
-
import type { Telemetry } from '../../infra/telemetry.js';
|
|
3
|
-
import type { DbClient, ErpClient } from '../../infra/clients.js';
|
|
4
|
-
/**
|
|
5
|
-
* Infrastructure adapter: ApiGatewaySeamAdapter
|
|
6
|
-
* Bounded context: domain-enterprise-solution
|
|
7
|
-
* ERP system: infor
|
|
8
|
-
*
|
|
9
|
-
* Bridges the ApiGatewaySeamPort port to the infor ERP system
|
|
10
|
-
* and the underlying database client.
|
|
11
|
-
*/
|
|
12
|
-
export declare class ApiGatewaySeamAdapter implements ApiGatewaySeamPort {
|
|
13
|
-
private readonly db;
|
|
14
|
-
private readonly erp;
|
|
15
|
-
private readonly telemetry;
|
|
16
|
-
constructor(db: DbClient, erp: ErpClient, telemetry: Telemetry);
|
|
17
|
-
findById(id: string): Promise<DomainEnterpriseSolution | null>;
|
|
18
|
-
findAll(filters?: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
19
|
-
save(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
20
|
-
deleteById(id: string): Promise<void>;
|
|
21
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
/**
|
|
3
|
-
* Infrastructure adapter: ApiGatewaySeamAdapter
|
|
4
|
-
* Bounded context: domain-enterprise-solution
|
|
5
|
-
* ERP system: infor
|
|
6
|
-
*
|
|
7
|
-
* Bridges the ApiGatewaySeamPort port to the infor ERP system
|
|
8
|
-
* and the underlying database client.
|
|
9
|
-
*/
|
|
10
|
-
export class ApiGatewaySeamAdapter {
|
|
11
|
-
db;
|
|
12
|
-
erp;
|
|
13
|
-
telemetry;
|
|
14
|
-
constructor(db, erp, telemetry) {
|
|
15
|
-
this.db = db;
|
|
16
|
-
this.erp = erp;
|
|
17
|
-
this.telemetry = telemetry;
|
|
18
|
-
}
|
|
19
|
-
async findById(id) {
|
|
20
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'findById', { id }, async () => {
|
|
21
|
-
const rows = await this.db.query('SELECT * FROM api_gateway_seam WHERE id = :1', [id]);
|
|
22
|
-
return rows[0] ?? null;
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async findAll(filters) {
|
|
26
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'findAll', {}, async () => {
|
|
27
|
-
const rows = await this.db.query('SELECT * FROM api_gateway_seam', []);
|
|
28
|
-
return rows;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
async save(input) {
|
|
32
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'save', {}, async () => {
|
|
33
|
-
const result = await this.erp.invoke('save', input);
|
|
34
|
-
return result;
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
async deleteById(id) {
|
|
38
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'deleteById', { id }, async () => {
|
|
39
|
-
await this.db.execute('DELETE FROM api_gateway_seam WHERE id = :1', [id]);
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { DomainEnterpriseSolutionPort, DomainEnterpriseSolutionInput, DomainEnterpriseSolution } from '../ports/domain-enterprise-solution.js';
|
|
2
|
-
import type { Telemetry } from '../../infra/telemetry.js';
|
|
3
|
-
import type { DbClient, ErpClient } from '../../infra/clients.js';
|
|
4
|
-
/**
|
|
5
|
-
* Infrastructure adapter: DomainEnterpriseSolutionAdapter
|
|
6
|
-
* Bounded context: domain-enterprise-solution
|
|
7
|
-
* ERP system: infor
|
|
8
|
-
*
|
|
9
|
-
* Bridges the DomainEnterpriseSolutionPort port to the infor ERP system
|
|
10
|
-
* and the underlying database client.
|
|
11
|
-
*/
|
|
12
|
-
export declare class DomainEnterpriseSolutionAdapter implements DomainEnterpriseSolutionPort {
|
|
13
|
-
private readonly db;
|
|
14
|
-
private readonly erp;
|
|
15
|
-
private readonly telemetry;
|
|
16
|
-
constructor(db: DbClient, erp: ErpClient, telemetry: Telemetry);
|
|
17
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
18
|
-
manageDomainEnterprise(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
19
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
20
|
-
queryDomainEnterprise(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
21
|
-
/** Returns domain-enterprise-solution data */
|
|
22
|
-
listDomainEnterpriseSolution(input: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
23
|
-
/** Returns domain-enterprise-solution data */
|
|
24
|
-
id(input: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
25
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
// Generated by Phase 4 pipeline — do not edit manually
|
|
2
|
-
/**
|
|
3
|
-
* Infrastructure adapter: DomainEnterpriseSolutionAdapter
|
|
4
|
-
* Bounded context: domain-enterprise-solution
|
|
5
|
-
* ERP system: infor
|
|
6
|
-
*
|
|
7
|
-
* Bridges the DomainEnterpriseSolutionPort port to the infor ERP system
|
|
8
|
-
* and the underlying database client.
|
|
9
|
-
*/
|
|
10
|
-
export class DomainEnterpriseSolutionAdapter {
|
|
11
|
-
db;
|
|
12
|
-
erp;
|
|
13
|
-
telemetry;
|
|
14
|
-
constructor(db, erp, telemetry) {
|
|
15
|
-
this.db = db;
|
|
16
|
-
this.erp = erp;
|
|
17
|
-
this.telemetry = telemetry;
|
|
18
|
-
}
|
|
19
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
20
|
-
async manageDomainEnterprise(input) {
|
|
21
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'manageDomainEnterprise', {}, async () => {
|
|
22
|
-
const result = await this.erp.invoke('manageDomainEnterprise', input);
|
|
23
|
-
return result;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
27
|
-
async queryDomainEnterprise(input) {
|
|
28
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'queryDomainEnterprise', {}, async () => {
|
|
29
|
-
const rows = await this.db.query('SELECT * FROM domain_enterprise_solution WHERE 1=1', []);
|
|
30
|
-
return rows;
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
/** Returns domain-enterprise-solution data */
|
|
34
|
-
async listDomainEnterpriseSolution(input) {
|
|
35
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'listDomainEnterpriseSolution', {}, async () => {
|
|
36
|
-
const rows = await this.db.query('SELECT * FROM domain_enterprise_solution WHERE 1=1', []);
|
|
37
|
-
return rows;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/** Returns domain-enterprise-solution data */
|
|
41
|
-
async id(input) {
|
|
42
|
-
return this.telemetry.withSpan('domain_enterprise_solution', 'id', {}, async () => {
|
|
43
|
-
const result = await this.erp.invoke('id', input);
|
|
44
|
-
return result;
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Port interface for bounded context: domain-enterprise-solution
|
|
3
|
-
*/
|
|
4
|
-
export interface DomainEnterpriseSolution {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly created_at: string;
|
|
7
|
-
readonly updated_at: string;
|
|
8
|
-
readonly status: 'active' | 'inactive' | 'pending' | 'completed' | 'error';
|
|
9
|
-
readonly domain_enterprise_solution_id: string;
|
|
10
|
-
}
|
|
11
|
-
export interface DomainEnterpriseSolutionInput {
|
|
12
|
-
readonly id: string;
|
|
13
|
-
readonly domain_enterprise_solution_id: string;
|
|
14
|
-
}
|
|
15
|
-
export interface ApiGatewaySeamPort {
|
|
16
|
-
findById(id: string): Promise<DomainEnterpriseSolution | null>;
|
|
17
|
-
findAll(filters?: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
18
|
-
save(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
19
|
-
deleteById(id: string): Promise<void>;
|
|
20
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Port interface for bounded context: domain-enterprise-solution
|
|
3
|
-
*/
|
|
4
|
-
export interface DomainEnterpriseSolutionInput {
|
|
5
|
-
readonly id: string;
|
|
6
|
-
readonly domain_enterprise_solution_id: string;
|
|
7
|
-
}
|
|
8
|
-
export interface DomainEnterpriseSolution {
|
|
9
|
-
readonly id: string;
|
|
10
|
-
readonly created_at: string;
|
|
11
|
-
readonly updated_at: string;
|
|
12
|
-
readonly status: 'active' | 'inactive' | 'pending' | 'completed' | 'error';
|
|
13
|
-
readonly domain_enterprise_solution_id: string;
|
|
14
|
-
}
|
|
15
|
-
export interface DomainEnterpriseSolutionPort {
|
|
16
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
17
|
-
manageDomainEnterprise(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
18
|
-
/** Creates or updates domain-enterprise-solution record */
|
|
19
|
-
queryDomainEnterprise(input: DomainEnterpriseSolutionInput): Promise<DomainEnterpriseSolution>;
|
|
20
|
-
/** Returns domain-enterprise-solution data */
|
|
21
|
-
listDomainEnterpriseSolution(input: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
22
|
-
/** Returns domain-enterprise-solution data */
|
|
23
|
-
id(input: Record<string, unknown>): Promise<DomainEnterpriseSolution[]>;
|
|
24
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enterprise Integration & Memory Architecture Exports (ADR-004)
|
|
3
|
-
*
|
|
4
|
-
* This module implements the enterprise integration domain model
|
|
5
|
-
* described in ADR-004. All exports serve the five bounded contexts:
|
|
6
|
-
*
|
|
7
|
-
* 1. Enterprise Simulation Domain - simulation memory records
|
|
8
|
-
* 2. Memory & Lineage Domain - lineage tracking, traceability
|
|
9
|
-
* 3. Integration Domain - integration registry, proposals
|
|
10
|
-
* 4. ERP Surface Domain - ERP mappings
|
|
11
|
-
* 5. CLI as Orchestrator - validation helpers
|
|
12
|
-
*/
|
|
13
|
-
export { createLineageRecord, createSimulationMemoryRecord, completeSimulationMemoryRecord, failSimulationMemoryRecord, createIntegrationProposal, createErpSurfaceMapping, validateTraceability, validateLineageChain, } from './lineage.js';
|
|
14
|
-
export { INTEGRATION_REGISTRY, lookupIntegration, getIntegrationsByCategory, getIntegrationNames, isKnownIntegration, getAffectedEntities, } from './integration-registry.js';
|
|
15
|
-
export type { IntegrationDefinition, IntegrationCategory, } from './integration-registry.js';
|
package/dist/enterprise/index.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enterprise Integration & Memory Architecture Exports (ADR-004)
|
|
3
|
-
*
|
|
4
|
-
* This module implements the enterprise integration domain model
|
|
5
|
-
* described in ADR-004. All exports serve the five bounded contexts:
|
|
6
|
-
*
|
|
7
|
-
* 1. Enterprise Simulation Domain - simulation memory records
|
|
8
|
-
* 2. Memory & Lineage Domain - lineage tracking, traceability
|
|
9
|
-
* 3. Integration Domain - integration registry, proposals
|
|
10
|
-
* 4. ERP Surface Domain - ERP mappings
|
|
11
|
-
* 5. CLI as Orchestrator - validation helpers
|
|
12
|
-
*/
|
|
13
|
-
// Lineage tracking (ADR-004, Domain 2)
|
|
14
|
-
export { createLineageRecord, createSimulationMemoryRecord, completeSimulationMemoryRecord, failSimulationMemoryRecord, createIntegrationProposal, createErpSurfaceMapping, validateTraceability, validateLineageChain, } from './lineage.js';
|
|
15
|
-
// Integration registry (ADR-004, Domain 3)
|
|
16
|
-
export { INTEGRATION_REGISTRY, lookupIntegration, getIntegrationsByCategory, getIntegrationNames, isKnownIntegration, getAffectedEntities, } from './integration-registry.js';
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { ErpSurfaceResponse, DomainTransferOrder, DomainPurchaseOrder, DomainItemReceipt, DomainInventoryBalance, GovernanceConfig, SyncQueueEntry, SyncStatus } from './types.js';
|
|
2
|
-
export interface AuditLogger {
|
|
3
|
-
log(entityType: string, entityId: string, action: string, actor: string, payload: unknown): Promise<void>;
|
|
4
|
-
}
|
|
5
|
-
export declare class InforClient {
|
|
6
|
-
private readonly baseUrl;
|
|
7
|
-
private readonly serviceAccountEmail;
|
|
8
|
-
private readonly mapper;
|
|
9
|
-
private readonly breaker;
|
|
10
|
-
private readonly governance;
|
|
11
|
-
private readonly audit;
|
|
12
|
-
private readonly syncQueue;
|
|
13
|
-
private readonly recentErrors;
|
|
14
|
-
private lastSuccessfulSync;
|
|
15
|
-
constructor(config: {
|
|
16
|
-
baseUrl: string;
|
|
17
|
-
serviceAccountEmail: string;
|
|
18
|
-
governance: GovernanceConfig;
|
|
19
|
-
audit?: AuditLogger;
|
|
20
|
-
circuitBreakerThreshold?: number;
|
|
21
|
-
circuitBreakerResetMs?: number;
|
|
22
|
-
});
|
|
23
|
-
private assertWriteAllowed;
|
|
24
|
-
createTransferOrder(domain: DomainTransferOrder, correlationId: string): Promise<ErpSurfaceResponse>;
|
|
25
|
-
createPurchaseOrder(domain: DomainPurchaseOrder, correlationId: string): Promise<ErpSurfaceResponse>;
|
|
26
|
-
getInventoryBalance(subsidiary: string, location: string, item: string, correlationId: string): Promise<DomainInventoryBalance | null>;
|
|
27
|
-
updateItemReceipt(domain: DomainItemReceipt, transferNsId: string, correlationId: string): Promise<ErpSurfaceResponse>;
|
|
28
|
-
getSyncStatus(): SyncStatus;
|
|
29
|
-
getPendingQueue(): ReadonlyArray<SyncQueueEntry>;
|
|
30
|
-
drainSyncQueue(): Promise<{
|
|
31
|
-
processed: number;
|
|
32
|
-
failed: number;
|
|
33
|
-
}>;
|
|
34
|
-
private post;
|
|
35
|
-
private get;
|
|
36
|
-
private getIdentityToken;
|
|
37
|
-
private executeWithFallback;
|
|
38
|
-
private recordError;
|
|
39
|
-
private operationToPath;
|
|
40
|
-
private auditBefore;
|
|
41
|
-
private auditAfter;
|
|
42
|
-
}
|