@llm-dev-ops/agentics-cli 1.4.6 → 1.4.7
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.d.ts +117 -0
- package/dist/adapters/base-adapter.d.ts.map +1 -1
- package/dist/adapters/base-adapter.js +143 -0
- package/dist/adapters/base-adapter.js.map +1 -1
- package/dist/auth/identity-resolver.d.ts +21 -0
- package/dist/auth/identity-resolver.d.ts.map +1 -0
- package/dist/auth/identity-resolver.js +68 -0
- package/dist/auth/identity-resolver.js.map +1 -0
- package/dist/auth/index.d.ts +2 -0
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +2 -0
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/role-permissions.d.ts +12 -0
- package/dist/auth/role-permissions.d.ts.map +1 -0
- package/dist/auth/role-permissions.js +43 -0
- package/dist/auth/role-permissions.js.map +1 -0
- package/dist/cli/index.js +30 -134
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/erp.d.ts.map +1 -1
- package/dist/commands/erp.js +62 -0
- package/dist/commands/erp.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +25 -0
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +4 -1
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +6 -5
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/simulate.d.ts.map +1 -1
- package/dist/commands/simulate.js +57 -1
- package/dist/commands/simulate.js.map +1 -1
- package/dist/commands/whoami.d.ts +4 -0
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +22 -5
- package/dist/commands/whoami.js.map +1 -1
- package/dist/contracts/adr-002-operational-enforcement.d.ts +684 -0
- package/dist/contracts/adr-002-operational-enforcement.d.ts.map +1 -0
- package/dist/contracts/adr-002-operational-enforcement.js +671 -0
- package/dist/contracts/adr-002-operational-enforcement.js.map +1 -0
- package/dist/contracts/adr-003-governance-architecture.d.ts +766 -0
- package/dist/contracts/adr-003-governance-architecture.d.ts.map +1 -0
- package/dist/contracts/adr-003-governance-architecture.js +773 -0
- package/dist/contracts/adr-003-governance-architecture.js.map +1 -0
- package/dist/contracts/adr-004-enterprise-integration-memory.d.ts +1150 -0
- package/dist/contracts/adr-004-enterprise-integration-memory.d.ts.map +1 -0
- package/dist/contracts/adr-004-enterprise-integration-memory.js +1158 -0
- package/dist/contracts/adr-004-enterprise-integration-memory.js.map +1 -0
- package/dist/contracts/adr-005-system-coherence-drift-self-governance.d.ts +1393 -0
- package/dist/contracts/adr-005-system-coherence-drift-self-governance.d.ts.map +1 -0
- package/dist/contracts/adr-005-system-coherence-drift-self-governance.js +1371 -0
- package/dist/contracts/adr-005-system-coherence-drift-self-governance.js.map +1 -0
- package/dist/contracts/adr-command-semantics.d.ts +150 -0
- package/dist/contracts/adr-command-semantics.d.ts.map +1 -0
- package/dist/contracts/adr-command-semantics.js +984 -0
- package/dist/contracts/adr-command-semantics.js.map +1 -0
- package/dist/contracts/index.d.ts +5 -0
- package/dist/contracts/index.d.ts.map +1 -1
- package/dist/contracts/index.js +16 -0
- package/dist/contracts/index.js.map +1 -1
- package/dist/enterprise/index.d.ts +16 -0
- package/dist/enterprise/index.d.ts.map +1 -0
- package/dist/enterprise/index.js +17 -0
- package/dist/enterprise/index.js.map +1 -0
- package/dist/enterprise/integration-registry.d.ts +73 -0
- package/dist/enterprise/integration-registry.d.ts.map +1 -0
- package/dist/enterprise/integration-registry.js +252 -0
- package/dist/enterprise/integration-registry.js.map +1 -0
- package/dist/enterprise/lineage.d.ts +73 -0
- package/dist/enterprise/lineage.d.ts.map +1 -0
- package/dist/enterprise/lineage.js +218 -0
- package/dist/enterprise/lineage.js.map +1 -0
- package/dist/gates/argument-guard.d.ts +39 -0
- package/dist/gates/argument-guard.d.ts.map +1 -0
- package/dist/gates/argument-guard.js +180 -0
- package/dist/gates/argument-guard.js.map +1 -0
- package/dist/gates/index.d.ts +5 -0
- package/dist/gates/index.d.ts.map +1 -1
- package/dist/gates/index.js +7 -0
- package/dist/gates/index.js.map +1 -1
- package/dist/gates/lineage-gate.d.ts +55 -0
- package/dist/gates/lineage-gate.d.ts.map +1 -0
- package/dist/gates/lineage-gate.js +127 -0
- package/dist/gates/lineage-gate.js.map +1 -0
- package/dist/modules/help-renderer.d.ts +25 -0
- package/dist/modules/help-renderer.d.ts.map +1 -0
- package/dist/modules/help-renderer.js +163 -0
- package/dist/modules/help-renderer.js.map +1 -0
- package/dist/modules/index.d.ts +1 -0
- package/dist/modules/index.d.ts.map +1 -1
- package/dist/modules/index.js +1 -0
- package/dist/modules/index.js.map +1 -1
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +16 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/identity.d.ts +9 -0
- package/dist/server/routes/identity.d.ts.map +1 -0
- package/dist/server/routes/identity.js +100 -0
- package/dist/server/routes/identity.js.map +1 -0
- package/dist/server/routes/index.d.ts +2 -0
- package/dist/server/routes/index.d.ts.map +1 -1
- package/dist/server/routes/index.js +2 -0
- package/dist/server/routes/index.js.map +1 -1
- package/dist/server/routes/lineage.d.ts +15 -0
- package/dist/server/routes/lineage.d.ts.map +1 -0
- package/dist/server/routes/lineage.js +128 -0
- package/dist/server/routes/lineage.js.map +1 -0
- package/dist/types/index.d.ts +132 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/identity-store.d.ts +31 -0
- package/dist/utils/identity-store.d.ts.map +1 -0
- package/dist/utils/identity-store.js +97 -0
- package/dist/utils/identity-store.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lineage Gate — Gate 6 (ADR-004 Enforcement)
|
|
3
|
+
*
|
|
4
|
+
* PURPOSE: Enforce that artifact-producing commands reference a valid
|
|
5
|
+
* simulation parent. No integration proposal or ERP mapping may
|
|
6
|
+
* exist without traceability to a governed simulation.
|
|
7
|
+
*
|
|
8
|
+
* INVARIANTS ENFORCED:
|
|
9
|
+
* - ADR-004 Invariant 2: Every integration/ERP mapping derives from a simulation
|
|
10
|
+
* - ADR-004 Invariant 3: No integration proposal without traceability
|
|
11
|
+
* - ADR-004 Invariant 7: CLI is only path for artifact creation
|
|
12
|
+
*
|
|
13
|
+
* EXIT CODE: 110 (LINEAGE_VIOLATION)
|
|
14
|
+
*
|
|
15
|
+
* BEHAVIOR:
|
|
16
|
+
* - Commands that produce enterprise artifacts (erp surface, erp map,
|
|
17
|
+
* erp export) must pass a simulation_id in their positional args
|
|
18
|
+
* or flags when the lineage gate is enabled.
|
|
19
|
+
* - Commands that do not produce artifacts (list, inspect, help)
|
|
20
|
+
* are exempt from lineage validation.
|
|
21
|
+
* - The gate validates that simulation_id is present and non-empty.
|
|
22
|
+
* Whether the simulation exists in Ruvector is validated at the
|
|
23
|
+
* command level, not at the gate level (gate is synchronous).
|
|
24
|
+
*/
|
|
25
|
+
import { validateTraceability } from '../enterprise/lineage.js';
|
|
26
|
+
// ============================================================================
|
|
27
|
+
// Constants
|
|
28
|
+
// ============================================================================
|
|
29
|
+
export const LINEAGE_VIOLATION_EXIT_CODE = 110;
|
|
30
|
+
/**
|
|
31
|
+
* Commands that produce enterprise artifacts requiring lineage.
|
|
32
|
+
* These commands must reference a simulation_id.
|
|
33
|
+
*/
|
|
34
|
+
const LINEAGE_REQUIRED_COMMANDS = new Map([
|
|
35
|
+
['erp', new Set(['surface', 'map', 'export'])],
|
|
36
|
+
]);
|
|
37
|
+
/**
|
|
38
|
+
* Commands exempt from lineage validation.
|
|
39
|
+
* These commands are read-only or do not produce artifacts.
|
|
40
|
+
*/
|
|
41
|
+
const LINEAGE_EXEMPT_COMMANDS = new Set([
|
|
42
|
+
'help',
|
|
43
|
+
'version',
|
|
44
|
+
'login',
|
|
45
|
+
'logout',
|
|
46
|
+
'whoami',
|
|
47
|
+
'usage',
|
|
48
|
+
]);
|
|
49
|
+
// ============================================================================
|
|
50
|
+
// Gate Implementation
|
|
51
|
+
// ============================================================================
|
|
52
|
+
/**
|
|
53
|
+
* Check whether a command passes lineage validation.
|
|
54
|
+
* Returns a result indicating whether the command is allowed.
|
|
55
|
+
*
|
|
56
|
+
* Lineage is required when:
|
|
57
|
+
* 1. The command is in LINEAGE_REQUIRED_COMMANDS
|
|
58
|
+
* 2. The command is not in LINEAGE_EXEMPT_COMMANDS
|
|
59
|
+
* 3. The command produces enterprise artifacts
|
|
60
|
+
*/
|
|
61
|
+
export function checkLineageGate(cmd) {
|
|
62
|
+
const primary = cmd.command;
|
|
63
|
+
const sub = cmd.subcommand;
|
|
64
|
+
// Exempt commands skip lineage validation
|
|
65
|
+
if (LINEAGE_EXEMPT_COMMANDS.has(primary)) {
|
|
66
|
+
return { allowed: true, message: '', exitCode: 0, lineageRequired: false };
|
|
67
|
+
}
|
|
68
|
+
// Check if this command+subcommand requires lineage
|
|
69
|
+
const requiredSubs = LINEAGE_REQUIRED_COMMANDS.get(primary);
|
|
70
|
+
if (!requiredSubs || !sub || !requiredSubs.has(sub)) {
|
|
71
|
+
return { allowed: true, message: '', exitCode: 0, lineageRequired: false };
|
|
72
|
+
}
|
|
73
|
+
// This command requires lineage — check for simulation_id
|
|
74
|
+
// simulation_id can be provided as:
|
|
75
|
+
// 1. A flag: --simulation-id <id>
|
|
76
|
+
// 2. An option: simulation_id in options
|
|
77
|
+
// 3. The first positional arg (for commands that take simulation_id as primary arg)
|
|
78
|
+
const simulationId = cmd.options['simulation-id'] ??
|
|
79
|
+
cmd.options['simulation_id'] ??
|
|
80
|
+
cmd.flags['simulation-id'] ??
|
|
81
|
+
undefined;
|
|
82
|
+
const validation = validateTraceability(simulationId, `${primary} ${sub}`);
|
|
83
|
+
if (!validation.valid) {
|
|
84
|
+
return {
|
|
85
|
+
allowed: false,
|
|
86
|
+
message: `Lineage violation: ${validation.message}\n` +
|
|
87
|
+
`Usage: agentics ${primary} ${sub} --simulation-id <simulation_id>\n` +
|
|
88
|
+
`\n` +
|
|
89
|
+
`Enterprise artifacts must trace to a governed simulation (ADR-004).`,
|
|
90
|
+
exitCode: LINEAGE_VIOLATION_EXIT_CODE,
|
|
91
|
+
lineageRequired: true,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return { allowed: true, message: '', exitCode: 0, lineageRequired: true };
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Enforce lineage gate — exits the process if validation fails.
|
|
98
|
+
*/
|
|
99
|
+
export function enforceLineageGate(cmd) {
|
|
100
|
+
const result = checkLineageGate(cmd);
|
|
101
|
+
if (!result.allowed) {
|
|
102
|
+
console.error(JSON.stringify({
|
|
103
|
+
error: {
|
|
104
|
+
code: 'LINEAGE_VIOLATION',
|
|
105
|
+
message: result.message,
|
|
106
|
+
command: `${cmd.command} ${cmd.subcommand ?? ''}`.trim(),
|
|
107
|
+
exit_code: result.exitCode,
|
|
108
|
+
adr: 'ADR-004',
|
|
109
|
+
},
|
|
110
|
+
}));
|
|
111
|
+
process.exit(result.exitCode);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Check if a command requires lineage validation.
|
|
116
|
+
*/
|
|
117
|
+
export function requiresLineageValidation(primary, sub) {
|
|
118
|
+
if (LINEAGE_EXEMPT_COMMANDS.has(primary))
|
|
119
|
+
return false;
|
|
120
|
+
const requiredSubs = LINEAGE_REQUIRED_COMMANDS.get(primary);
|
|
121
|
+
if (!requiredSubs)
|
|
122
|
+
return false;
|
|
123
|
+
if (!sub)
|
|
124
|
+
return false;
|
|
125
|
+
return requiredSubs.has(sub);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=lineage-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lineage-gate.js","sourceRoot":"","sources":["../../src/gates/lineage-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help Renderer — Auto-Generated from ADR-001
|
|
3
|
+
*
|
|
4
|
+
* This module renders CLI help output directly from the command registry
|
|
5
|
+
* defined in adr-command-semantics.ts. No hand-maintained help strings.
|
|
6
|
+
*
|
|
7
|
+
* The ADR is the single source of truth for:
|
|
8
|
+
* - Command descriptions
|
|
9
|
+
* - Argument names and types
|
|
10
|
+
* - Synthesis classification
|
|
11
|
+
* - Examples
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Render the top-level help screen.
|
|
15
|
+
*/
|
|
16
|
+
export declare function renderHelp(): string;
|
|
17
|
+
/**
|
|
18
|
+
* Render help for a specific command (including all its subcommands).
|
|
19
|
+
*/
|
|
20
|
+
export declare function renderCommandHelp(primary: string): string;
|
|
21
|
+
/**
|
|
22
|
+
* Render help for a specific command + subcommand.
|
|
23
|
+
*/
|
|
24
|
+
export declare function renderSubcommandHelp(primary: string, subcommand: string): string;
|
|
25
|
+
//# sourceMappingURL=help-renderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-renderer.d.ts","sourceRoot":"","sources":["../../src/modules/help-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAcH;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAwCnC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAmCzD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAYhF"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help Renderer — Auto-Generated from ADR-001
|
|
3
|
+
*
|
|
4
|
+
* This module renders CLI help output directly from the command registry
|
|
5
|
+
* defined in adr-command-semantics.ts. No hand-maintained help strings.
|
|
6
|
+
*
|
|
7
|
+
* The ADR is the single source of truth for:
|
|
8
|
+
* - Command descriptions
|
|
9
|
+
* - Argument names and types
|
|
10
|
+
* - Synthesis classification
|
|
11
|
+
* - Examples
|
|
12
|
+
*/
|
|
13
|
+
import { COMMAND_REGISTRY, getSubcommands, lookupCommand, } from '../contracts/adr-command-semantics.js';
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// Help Rendering
|
|
16
|
+
// ============================================================================
|
|
17
|
+
/**
|
|
18
|
+
* Render the top-level help screen.
|
|
19
|
+
*/
|
|
20
|
+
export function renderHelp() {
|
|
21
|
+
const lines = [];
|
|
22
|
+
lines.push('Agentics CLI — Enterprise Orchestration Platform');
|
|
23
|
+
lines.push('');
|
|
24
|
+
lines.push('USAGE:');
|
|
25
|
+
lines.push(' agentics <command> [subcommand] [args] [options]');
|
|
26
|
+
lines.push('');
|
|
27
|
+
lines.push('COMMANDS:');
|
|
28
|
+
// Group commands by primary
|
|
29
|
+
const groups = groupByPrimary();
|
|
30
|
+
for (const [primary, specs] of groups) {
|
|
31
|
+
const mainSpec = specs.find(s => !s.subcommand) ?? specs[0];
|
|
32
|
+
const label = primary.padEnd(14);
|
|
33
|
+
const desc = mainSpec.description;
|
|
34
|
+
const tag = formatSynthesisTag(mainSpec.synthesis);
|
|
35
|
+
lines.push(` ${label} ${desc} ${tag}`);
|
|
36
|
+
}
|
|
37
|
+
lines.push('');
|
|
38
|
+
lines.push('ARGUMENT TYPES:');
|
|
39
|
+
lines.push(' <id> Stable identifier (lowercase, hyphenated, or UUID)');
|
|
40
|
+
lines.push(' "<description>" Quoted natural language (seeds synthesis)');
|
|
41
|
+
lines.push(' latest Read-only selector keyword');
|
|
42
|
+
lines.push('');
|
|
43
|
+
lines.push('SYNTHESIS TAGS:');
|
|
44
|
+
lines.push(' [synth] Command invokes LLM synthesis');
|
|
45
|
+
lines.push(' [commit] Irreversible command (requires ID + confirmation)');
|
|
46
|
+
lines.push(' (unmarked) Read-only or identity command, no synthesis');
|
|
47
|
+
lines.push('');
|
|
48
|
+
lines.push('GLOBAL OPTIONS:');
|
|
49
|
+
lines.push(' --verbose Enable verbose output');
|
|
50
|
+
lines.push(' --format <fmt> Output format: json | yaml | text');
|
|
51
|
+
lines.push(' --help Show help for a specific command');
|
|
52
|
+
lines.push('');
|
|
53
|
+
lines.push('Run `agentics <command> --help` for command-specific help.');
|
|
54
|
+
return lines.join('\n');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Render help for a specific command (including all its subcommands).
|
|
58
|
+
*/
|
|
59
|
+
export function renderCommandHelp(primary) {
|
|
60
|
+
const specs = getSubcommands(primary);
|
|
61
|
+
if (specs.length === 0) {
|
|
62
|
+
return `Unknown command: ${primary}\n\nRun \`agentics help\` to see available commands.`;
|
|
63
|
+
}
|
|
64
|
+
const lines = [];
|
|
65
|
+
lines.push(`agentics ${primary} — ${specs[0].description}`);
|
|
66
|
+
lines.push('');
|
|
67
|
+
if (specs.length === 1 && !specs[0].subcommand) {
|
|
68
|
+
// Single command, no subcommands
|
|
69
|
+
lines.push(...renderSpecDetail(specs[0]));
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
lines.push('SUBCOMMANDS:');
|
|
73
|
+
lines.push('');
|
|
74
|
+
for (const spec of specs) {
|
|
75
|
+
if (spec.subcommand) {
|
|
76
|
+
lines.push(...renderSpecDetail(spec));
|
|
77
|
+
lines.push('');
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Also show main command if it has args
|
|
81
|
+
const mainSpec = specs.find(s => !s.subcommand);
|
|
82
|
+
if (mainSpec !== undefined && mainSpec.args.length > 0) {
|
|
83
|
+
lines.push('DEFAULT (no subcommand):');
|
|
84
|
+
lines.push(...renderSpecDetail(mainSpec));
|
|
85
|
+
lines.push('');
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return lines.join('\n');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Render help for a specific command + subcommand.
|
|
92
|
+
*/
|
|
93
|
+
export function renderSubcommandHelp(primary, subcommand) {
|
|
94
|
+
const spec = lookupCommand(primary, subcommand);
|
|
95
|
+
if (!spec) {
|
|
96
|
+
return `Unknown subcommand: ${primary} ${subcommand}\n\n` +
|
|
97
|
+
`Run \`agentics ${primary} --help\` to see available subcommands.`;
|
|
98
|
+
}
|
|
99
|
+
const lines = [];
|
|
100
|
+
lines.push(`agentics ${spec.command}`);
|
|
101
|
+
lines.push('');
|
|
102
|
+
lines.push(...renderSpecDetail(spec));
|
|
103
|
+
return lines.join('\n');
|
|
104
|
+
}
|
|
105
|
+
// ============================================================================
|
|
106
|
+
// Internal Rendering Helpers
|
|
107
|
+
// ============================================================================
|
|
108
|
+
function renderSpecDetail(spec) {
|
|
109
|
+
const lines = [];
|
|
110
|
+
const tag = formatSynthesisTag(spec.synthesis);
|
|
111
|
+
const subcmd = spec.subcommand ?? '';
|
|
112
|
+
lines.push(` ${subcmd.padEnd(12)} ${spec.description} ${tag}`);
|
|
113
|
+
if (spec.args.length > 0) {
|
|
114
|
+
const usage = spec.args
|
|
115
|
+
.map(a => a.required ? `<${a.name}>` : `[${a.name}]`)
|
|
116
|
+
.join(' ');
|
|
117
|
+
lines.push(` Usage: agentics ${spec.command} ${usage}`);
|
|
118
|
+
for (const arg of spec.args) {
|
|
119
|
+
const typeLabel = formatArgumentTypeLabel(arg.type);
|
|
120
|
+
lines.push(` ${`<${arg.name}>`.padEnd(20)} ${typeLabel} ${arg.description}`);
|
|
121
|
+
lines.push(` ${''.padEnd(20)} Example: ${arg.example}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (spec.irreversible) {
|
|
125
|
+
lines.push(` WARNING: This command is irreversible.`);
|
|
126
|
+
}
|
|
127
|
+
if (spec.requiresConfirmation) {
|
|
128
|
+
lines.push(` Requires explicit confirmation (--force or interactive).`);
|
|
129
|
+
}
|
|
130
|
+
return lines;
|
|
131
|
+
}
|
|
132
|
+
function formatSynthesisTag(synthesis) {
|
|
133
|
+
switch (synthesis) {
|
|
134
|
+
case 'SYNTHESIS_REQUIRED':
|
|
135
|
+
return '[synth]';
|
|
136
|
+
case 'COMMITMENT_GRADE':
|
|
137
|
+
return '[commit]';
|
|
138
|
+
case 'SYNTHESIS_FORBIDDEN':
|
|
139
|
+
return '';
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
function formatArgumentTypeLabel(type) {
|
|
143
|
+
switch (type) {
|
|
144
|
+
case 'ID':
|
|
145
|
+
return '(ID)';
|
|
146
|
+
case 'NATURAL_LANGUAGE':
|
|
147
|
+
return '(text)';
|
|
148
|
+
case 'SELECTOR':
|
|
149
|
+
return '(selector)';
|
|
150
|
+
default:
|
|
151
|
+
return '';
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function groupByPrimary() {
|
|
155
|
+
const groups = new Map();
|
|
156
|
+
for (const spec of COMMAND_REGISTRY) {
|
|
157
|
+
const existing = groups.get(spec.primary) ?? [];
|
|
158
|
+
existing.push(spec);
|
|
159
|
+
groups.set(spec.primary, existing);
|
|
160
|
+
}
|
|
161
|
+
return groups;
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=help-renderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"help-renderer.js","sourceRoot":"","sources":["../../src/modules/help-renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/index.d.ts
CHANGED
|
@@ -11,4 +11,5 @@ export { ArtifactHandoff, createArtifactHandoff, isPlanReference, isSimulationRe
|
|
|
11
11
|
export type { IArtifactHandoff } from './artifact-handoff.js';
|
|
12
12
|
export { OutputRenderer, createOutputRenderer } from './output-renderer.js';
|
|
13
13
|
export type { IOutputRenderer } from './output-renderer.js';
|
|
14
|
+
export { renderHelp, renderCommandHelp, renderSubcommandHelp } from './help-renderer.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1L,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7F,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAC3F,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAExG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAC1L,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/modules/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export { CommandParser, createCommandParser, SUPPORTED_COMMANDS } from './comman
|
|
|
7
7
|
export { OrchestrationEngine, createOrchestrationEngine } from './orchestration-engine.js';
|
|
8
8
|
export { ArtifactHandoff, createArtifactHandoff, isPlanReference, isSimulationReference, isIntentReference, isExportReference, isDiligencePackageReference } from './artifact-handoff.js';
|
|
9
9
|
export { OutputRenderer, createOutputRenderer } from './output-renderer.js';
|
|
10
|
+
export { renderHelp, renderCommandHelp, renderSubcommandHelp } from './help-renderer.js';
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3F,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAG1L,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/modules/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG7F,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAG3F,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAG1L,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* - GET /ready - Readiness check
|
|
10
10
|
* - POST /v1/cli/auth/sessions - OAuth device flow session creation
|
|
11
11
|
* - GET /v1/cli/auth/sessions/:code - Poll auth status
|
|
12
|
+
* - GET /v1/identity/whoami - Identity resolution (user + org + role)
|
|
13
|
+
* - POST /v1/identity/check-permission - Server-side permission check
|
|
12
14
|
* - POST /v1/simulate - Simulation engine (inspect command)
|
|
13
15
|
* - POST /v1/manifests - Manifests service (plan command)
|
|
14
16
|
* - POST /v1/plans - Planner service (plan command)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAwB5B,QAAA,MAAM,GAAG,4EAAa,CAAC;AAoJvB,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,eAAe,GAAG,CAAC"}
|
package/dist/server/index.js
CHANGED
|
@@ -9,6 +9,8 @@
|
|
|
9
9
|
* - GET /ready - Readiness check
|
|
10
10
|
* - POST /v1/cli/auth/sessions - OAuth device flow session creation
|
|
11
11
|
* - GET /v1/cli/auth/sessions/:code - Poll auth status
|
|
12
|
+
* - GET /v1/identity/whoami - Identity resolution (user + org + role)
|
|
13
|
+
* - POST /v1/identity/check-permission - Server-side permission check
|
|
12
14
|
* - POST /v1/simulate - Simulation engine (inspect command)
|
|
13
15
|
* - POST /v1/manifests - Manifests service (plan command)
|
|
14
16
|
* - POST /v1/plans - Planner service (plan command)
|
|
@@ -23,7 +25,7 @@ import { serve } from '@hono/node-server';
|
|
|
23
25
|
import { Hono } from 'hono';
|
|
24
26
|
import { cors } from 'hono/cors';
|
|
25
27
|
import { logger } from 'hono/logger';
|
|
26
|
-
import { simulate, manifests, plans, runner, roi, intent, exporters, diligence, health, auth, erpsurface, } from './routes/index.js';
|
|
28
|
+
import { simulate, manifests, plans, runner, roi, intent, exporters, diligence, health, auth, erpsurface, identity, lineage, } from './routes/index.js';
|
|
27
29
|
// ============================================================================
|
|
28
30
|
// App Configuration
|
|
29
31
|
// ============================================================================
|
|
@@ -65,6 +67,8 @@ app.get('/api/v1/status', (c) => {
|
|
|
65
67
|
});
|
|
66
68
|
// Auth routes
|
|
67
69
|
app.route('/v1/cli/auth', auth);
|
|
70
|
+
// Identity routes
|
|
71
|
+
app.route('/v1/identity', identity);
|
|
68
72
|
// API v1 routes
|
|
69
73
|
app.route('/v1/simulate', simulate);
|
|
70
74
|
app.route('/v1/manifests', manifests);
|
|
@@ -75,6 +79,7 @@ app.route('/v1/intent', intent);
|
|
|
75
79
|
app.route('/v1/exporters', exporters);
|
|
76
80
|
app.route('/v1/diligence', diligence);
|
|
77
81
|
app.route('/v1/erpsurface', erpsurface);
|
|
82
|
+
app.route('/v1/lineage', lineage);
|
|
78
83
|
// ============================================================================
|
|
79
84
|
// Error Handling
|
|
80
85
|
// ============================================================================
|
|
@@ -88,6 +93,8 @@ app.notFound((c) => {
|
|
|
88
93
|
'GET /ready',
|
|
89
94
|
'POST /v1/cli/auth/sessions',
|
|
90
95
|
'GET /v1/cli/auth/sessions/:device_code',
|
|
96
|
+
'GET /v1/identity/whoami',
|
|
97
|
+
'POST /v1/identity/check-permission',
|
|
91
98
|
'POST /v1/simulate',
|
|
92
99
|
'POST /v1/manifests',
|
|
93
100
|
'POST /v1/plans',
|
|
@@ -97,6 +104,9 @@ app.notFound((c) => {
|
|
|
97
104
|
'POST /v1/exporters',
|
|
98
105
|
'POST /v1/diligence',
|
|
99
106
|
'POST /v1/erpsurface',
|
|
107
|
+
'POST /v1/lineage',
|
|
108
|
+
'GET /v1/lineage/artifact/:id',
|
|
109
|
+
'GET /v1/lineage/simulation/:id/artifacts',
|
|
100
110
|
],
|
|
101
111
|
},
|
|
102
112
|
}, 404);
|
|
@@ -128,6 +138,8 @@ serve({
|
|
|
128
138
|
console.log(` GET http://localhost:${info.port}/ready`);
|
|
129
139
|
console.log(` POST http://localhost:${info.port}/v1/cli/auth/sessions`);
|
|
130
140
|
console.log(` GET http://localhost:${info.port}/v1/cli/auth/sessions/:device_code`);
|
|
141
|
+
console.log(` GET http://localhost:${info.port}/v1/identity/whoami`);
|
|
142
|
+
console.log(` POST http://localhost:${info.port}/v1/identity/check-permission`);
|
|
131
143
|
console.log(` POST http://localhost:${info.port}/v1/simulate`);
|
|
132
144
|
console.log(` POST http://localhost:${info.port}/v1/manifests`);
|
|
133
145
|
console.log(` POST http://localhost:${info.port}/v1/plans`);
|
|
@@ -137,6 +149,9 @@ serve({
|
|
|
137
149
|
console.log(` POST http://localhost:${info.port}/v1/exporters`);
|
|
138
150
|
console.log(` POST http://localhost:${info.port}/v1/diligence`);
|
|
139
151
|
console.log(` POST http://localhost:${info.port}/v1/erpsurface`);
|
|
152
|
+
console.log(` POST http://localhost:${info.port}/v1/lineage`);
|
|
153
|
+
console.log(` GET http://localhost:${info.port}/v1/lineage/artifact/:id`);
|
|
154
|
+
console.log(` GET http://localhost:${info.port}/v1/lineage/simulation/:id/artifacts`);
|
|
140
155
|
});
|
|
141
156
|
// Export for testing and programmatic use
|
|
142
157
|
export { app };
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Route
|
|
3
|
+
*
|
|
4
|
+
* GET /v1/identity/whoami - Resolve API key into user + org + role context.
|
|
5
|
+
*/
|
|
6
|
+
import { Hono } from 'hono';
|
|
7
|
+
declare const identity: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
8
|
+
export { identity };
|
|
9
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/server/routes/identity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAK5B,QAAA,MAAM,QAAQ,4EAAa,CAAC;AAkG5B,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity Route
|
|
3
|
+
*
|
|
4
|
+
* GET /v1/identity/whoami - Resolve API key into user + org + role context.
|
|
5
|
+
*/
|
|
6
|
+
import { Hono } from 'hono';
|
|
7
|
+
import { deriveUserId, deriveOrgId } from '../../auth/identity-resolver.js';
|
|
8
|
+
import { hasPermission } from '../../auth/role-permissions.js';
|
|
9
|
+
const identity = new Hono();
|
|
10
|
+
/**
|
|
11
|
+
* GET /whoami
|
|
12
|
+
*
|
|
13
|
+
* Resolves API key from Authorization header into full identity context.
|
|
14
|
+
* Creates user + org lazily (deterministic from key).
|
|
15
|
+
* Default role for key holder: owner.
|
|
16
|
+
*/
|
|
17
|
+
identity.get('/whoami', async (c) => {
|
|
18
|
+
try {
|
|
19
|
+
const authHeader = c.req.header('Authorization');
|
|
20
|
+
if (!authHeader || !authHeader.startsWith('Bearer ')) {
|
|
21
|
+
return c.json({
|
|
22
|
+
error: { code: 'AUTH_REQUIRED', message: 'Missing or invalid Authorization header' },
|
|
23
|
+
}, 401);
|
|
24
|
+
}
|
|
25
|
+
const apiKey = authHeader.slice('Bearer '.length);
|
|
26
|
+
if (!apiKey.startsWith('agentics_sk_')) {
|
|
27
|
+
return c.json({
|
|
28
|
+
error: { code: 'INVALID_KEY', message: 'Invalid API key format' },
|
|
29
|
+
}, 401);
|
|
30
|
+
}
|
|
31
|
+
const user_id = deriveUserId(apiKey);
|
|
32
|
+
const org_id = deriveOrgId(user_id);
|
|
33
|
+
const role = 'owner';
|
|
34
|
+
const now = new Date().toISOString();
|
|
35
|
+
return c.json({
|
|
36
|
+
authenticated: true,
|
|
37
|
+
user: {
|
|
38
|
+
user_id,
|
|
39
|
+
display_name: 'key_user',
|
|
40
|
+
created_at: now,
|
|
41
|
+
},
|
|
42
|
+
org: {
|
|
43
|
+
org_id,
|
|
44
|
+
org_name: 'default',
|
|
45
|
+
role,
|
|
46
|
+
created_at: now,
|
|
47
|
+
},
|
|
48
|
+
entitlement: 'paid',
|
|
49
|
+
execution_enabled: true,
|
|
50
|
+
resolved_at: now,
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
console.error('Identity whoami error:', error);
|
|
55
|
+
return c.json({
|
|
56
|
+
error: {
|
|
57
|
+
code: 'INTERNAL_ERROR',
|
|
58
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
59
|
+
},
|
|
60
|
+
}, 500);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* POST /check-permission
|
|
65
|
+
*
|
|
66
|
+
* Server-side permission enforcement.
|
|
67
|
+
* Body: { role: OrgRole, permission: Permission }
|
|
68
|
+
*/
|
|
69
|
+
identity.post('/check-permission', async (c) => {
|
|
70
|
+
try {
|
|
71
|
+
const body = await c.req.json();
|
|
72
|
+
if (!body.role || !body.permission) {
|
|
73
|
+
return c.json({
|
|
74
|
+
error: { code: 'INVALID_REQUEST', message: 'Missing role or permission' },
|
|
75
|
+
}, 400);
|
|
76
|
+
}
|
|
77
|
+
const allowed = hasPermission(body.role, body.permission);
|
|
78
|
+
if (!allowed) {
|
|
79
|
+
return c.json({
|
|
80
|
+
error: {
|
|
81
|
+
code: 'INSUFFICIENT_PERMISSIONS',
|
|
82
|
+
message: `Role '${body.role}' lacks permission '${body.permission}'`,
|
|
83
|
+
},
|
|
84
|
+
allowed: false,
|
|
85
|
+
}, 403);
|
|
86
|
+
}
|
|
87
|
+
return c.json({ allowed: true });
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
console.error('Permission check error:', error);
|
|
91
|
+
return c.json({
|
|
92
|
+
error: {
|
|
93
|
+
code: 'INTERNAL_ERROR',
|
|
94
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
95
|
+
},
|
|
96
|
+
}, 500);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
export { identity };
|
|
100
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../../src/server/routes/identity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAmB,MAAM,gCAAgC,CAAC;AAGhF,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;AAE5B;;;;;;GAMG;AACH,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAClC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACrD,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,yCAAyC,EAAE;aACrF,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACvC,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,wBAAwB,EAAE;aAClE,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,IAAI,GAAY,OAAO,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,aAAa,EAAE,IAAI;YACnB,IAAI,EAAE;gBACJ,OAAO;gBACP,YAAY,EAAE,UAAU;gBACxB,UAAU,EAAE,GAAG;aAChB;YACD,GAAG,EAAE;gBACH,MAAM;gBACN,QAAQ,EAAE,SAAS;gBACnB,IAAI;gBACJ,UAAU,EAAE,GAAG;aAChB;YACD,WAAW,EAAE,MAAM;YACnB,iBAAiB,EAAE,IAAI;YACvB,WAAW,EAAE,GAAG;SACjB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;AACH,CAAC,CAAC,CAAC;AAEH;;;;;GAKG;AACH,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAiD,CAAC;QAE/E,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,4BAA4B,EAAE;aAC1E,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,IAAI,CAAC;gBACZ,KAAK,EAAE;oBACL,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,SAAS,IAAI,CAAC,IAAI,uBAAuB,IAAI,CAAC,UAAU,GAAG;iBACrE;gBACD,OAAO,EAAE,KAAK;aACf,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE;gBACL,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAClE;SACF,EAAE,GAAG,CAAC,CAAC;IACV,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -14,4 +14,6 @@ export { diligence } from './diligence.js';
|
|
|
14
14
|
export { health } from './health.js';
|
|
15
15
|
export { auth } from './auth.js';
|
|
16
16
|
export { erpsurface } from './erpsurface.js';
|
|
17
|
+
export { identity } from './identity.js';
|
|
18
|
+
export { lineage } from './lineage.js';
|
|
17
19
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -14,4 +14,6 @@ export { diligence } from './diligence.js';
|
|
|
14
14
|
export { health } from './health.js';
|
|
15
15
|
export { auth } from './auth.js';
|
|
16
16
|
export { erpsurface } from './erpsurface.js';
|
|
17
|
+
export { identity } from './identity.js';
|
|
18
|
+
export { lineage } from './lineage.js';
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/routes/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lineage Route Handler (ADR-004)
|
|
3
|
+
*
|
|
4
|
+
* Provides lineage query endpoints for tracing artifacts to simulations
|
|
5
|
+
* and simulations to artifacts.
|
|
6
|
+
*
|
|
7
|
+
* Routes:
|
|
8
|
+
* - POST /v1/lineage - Store a lineage record
|
|
9
|
+
* - GET /v1/lineage/artifact/:id - Trace backward: artifact → simulation
|
|
10
|
+
* - GET /v1/lineage/simulation/:id/artifacts - Trace forward: simulation → artifacts
|
|
11
|
+
*/
|
|
12
|
+
import { Hono } from 'hono';
|
|
13
|
+
declare const lineage: Hono<import("hono/types").BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
14
|
+
export { lineage };
|
|
15
|
+
//# sourceMappingURL=lineage.d.ts.map
|