@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.
Files changed (120) hide show
  1. package/dist/adapters/base-adapter.d.ts +117 -0
  2. package/dist/adapters/base-adapter.d.ts.map +1 -1
  3. package/dist/adapters/base-adapter.js +143 -0
  4. package/dist/adapters/base-adapter.js.map +1 -1
  5. package/dist/auth/identity-resolver.d.ts +21 -0
  6. package/dist/auth/identity-resolver.d.ts.map +1 -0
  7. package/dist/auth/identity-resolver.js +68 -0
  8. package/dist/auth/identity-resolver.js.map +1 -0
  9. package/dist/auth/index.d.ts +2 -0
  10. package/dist/auth/index.d.ts.map +1 -1
  11. package/dist/auth/index.js +2 -0
  12. package/dist/auth/index.js.map +1 -1
  13. package/dist/auth/role-permissions.d.ts +12 -0
  14. package/dist/auth/role-permissions.d.ts.map +1 -0
  15. package/dist/auth/role-permissions.js +43 -0
  16. package/dist/auth/role-permissions.js.map +1 -0
  17. package/dist/cli/index.js +30 -134
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/commands/erp.d.ts.map +1 -1
  20. package/dist/commands/erp.js +62 -0
  21. package/dist/commands/erp.js.map +1 -1
  22. package/dist/commands/login.d.ts.map +1 -1
  23. package/dist/commands/login.js +25 -0
  24. package/dist/commands/login.js.map +1 -1
  25. package/dist/commands/logout.d.ts.map +1 -1
  26. package/dist/commands/logout.js +4 -1
  27. package/dist/commands/logout.js.map +1 -1
  28. package/dist/commands/plan.d.ts.map +1 -1
  29. package/dist/commands/plan.js +6 -5
  30. package/dist/commands/plan.js.map +1 -1
  31. package/dist/commands/simulate.d.ts.map +1 -1
  32. package/dist/commands/simulate.js +57 -1
  33. package/dist/commands/simulate.js.map +1 -1
  34. package/dist/commands/whoami.d.ts +4 -0
  35. package/dist/commands/whoami.d.ts.map +1 -1
  36. package/dist/commands/whoami.js +22 -5
  37. package/dist/commands/whoami.js.map +1 -1
  38. package/dist/contracts/adr-002-operational-enforcement.d.ts +684 -0
  39. package/dist/contracts/adr-002-operational-enforcement.d.ts.map +1 -0
  40. package/dist/contracts/adr-002-operational-enforcement.js +671 -0
  41. package/dist/contracts/adr-002-operational-enforcement.js.map +1 -0
  42. package/dist/contracts/adr-003-governance-architecture.d.ts +766 -0
  43. package/dist/contracts/adr-003-governance-architecture.d.ts.map +1 -0
  44. package/dist/contracts/adr-003-governance-architecture.js +773 -0
  45. package/dist/contracts/adr-003-governance-architecture.js.map +1 -0
  46. package/dist/contracts/adr-004-enterprise-integration-memory.d.ts +1150 -0
  47. package/dist/contracts/adr-004-enterprise-integration-memory.d.ts.map +1 -0
  48. package/dist/contracts/adr-004-enterprise-integration-memory.js +1158 -0
  49. package/dist/contracts/adr-004-enterprise-integration-memory.js.map +1 -0
  50. package/dist/contracts/adr-005-system-coherence-drift-self-governance.d.ts +1393 -0
  51. package/dist/contracts/adr-005-system-coherence-drift-self-governance.d.ts.map +1 -0
  52. package/dist/contracts/adr-005-system-coherence-drift-self-governance.js +1371 -0
  53. package/dist/contracts/adr-005-system-coherence-drift-self-governance.js.map +1 -0
  54. package/dist/contracts/adr-command-semantics.d.ts +150 -0
  55. package/dist/contracts/adr-command-semantics.d.ts.map +1 -0
  56. package/dist/contracts/adr-command-semantics.js +984 -0
  57. package/dist/contracts/adr-command-semantics.js.map +1 -0
  58. package/dist/contracts/index.d.ts +5 -0
  59. package/dist/contracts/index.d.ts.map +1 -1
  60. package/dist/contracts/index.js +16 -0
  61. package/dist/contracts/index.js.map +1 -1
  62. package/dist/enterprise/index.d.ts +16 -0
  63. package/dist/enterprise/index.d.ts.map +1 -0
  64. package/dist/enterprise/index.js +17 -0
  65. package/dist/enterprise/index.js.map +1 -0
  66. package/dist/enterprise/integration-registry.d.ts +73 -0
  67. package/dist/enterprise/integration-registry.d.ts.map +1 -0
  68. package/dist/enterprise/integration-registry.js +252 -0
  69. package/dist/enterprise/integration-registry.js.map +1 -0
  70. package/dist/enterprise/lineage.d.ts +73 -0
  71. package/dist/enterprise/lineage.d.ts.map +1 -0
  72. package/dist/enterprise/lineage.js +218 -0
  73. package/dist/enterprise/lineage.js.map +1 -0
  74. package/dist/gates/argument-guard.d.ts +39 -0
  75. package/dist/gates/argument-guard.d.ts.map +1 -0
  76. package/dist/gates/argument-guard.js +180 -0
  77. package/dist/gates/argument-guard.js.map +1 -0
  78. package/dist/gates/index.d.ts +5 -0
  79. package/dist/gates/index.d.ts.map +1 -1
  80. package/dist/gates/index.js +7 -0
  81. package/dist/gates/index.js.map +1 -1
  82. package/dist/gates/lineage-gate.d.ts +55 -0
  83. package/dist/gates/lineage-gate.d.ts.map +1 -0
  84. package/dist/gates/lineage-gate.js +127 -0
  85. package/dist/gates/lineage-gate.js.map +1 -0
  86. package/dist/modules/help-renderer.d.ts +25 -0
  87. package/dist/modules/help-renderer.d.ts.map +1 -0
  88. package/dist/modules/help-renderer.js +163 -0
  89. package/dist/modules/help-renderer.js.map +1 -0
  90. package/dist/modules/index.d.ts +1 -0
  91. package/dist/modules/index.d.ts.map +1 -1
  92. package/dist/modules/index.js +1 -0
  93. package/dist/modules/index.js.map +1 -1
  94. package/dist/server/index.d.ts +2 -0
  95. package/dist/server/index.d.ts.map +1 -1
  96. package/dist/server/index.js +16 -1
  97. package/dist/server/index.js.map +1 -1
  98. package/dist/server/routes/identity.d.ts +9 -0
  99. package/dist/server/routes/identity.d.ts.map +1 -0
  100. package/dist/server/routes/identity.js +100 -0
  101. package/dist/server/routes/identity.js.map +1 -0
  102. package/dist/server/routes/index.d.ts +2 -0
  103. package/dist/server/routes/index.d.ts.map +1 -1
  104. package/dist/server/routes/index.js +2 -0
  105. package/dist/server/routes/index.js.map +1 -1
  106. package/dist/server/routes/lineage.d.ts +15 -0
  107. package/dist/server/routes/lineage.d.ts.map +1 -0
  108. package/dist/server/routes/lineage.js +128 -0
  109. package/dist/server/routes/lineage.js.map +1 -0
  110. package/dist/types/index.d.ts +132 -0
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/dist/utils/identity-store.d.ts +31 -0
  113. package/dist/utils/identity-store.d.ts.map +1 -0
  114. package/dist/utils/identity-store.js +97 -0
  115. package/dist/utils/identity-store.js.map +1 -0
  116. package/dist/utils/index.d.ts +2 -0
  117. package/dist/utils/index.d.ts.map +1 -1
  118. package/dist/utils/index.js +1 -0
  119. package/dist/utils/index.js.map +1 -1
  120. 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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"}
@@ -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"}
@@ -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"}
@@ -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;;;;;;;;;;;;;;;;;;;;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"}
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"}
@@ -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 };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
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":"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"}
@@ -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