@llm-dev-ops/agentics-cli 1.4.6 → 1.4.8

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 (160) 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 +139 -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-006-claude-code-synthesis-runner.d.ts +196 -0
  55. package/dist/contracts/adr-006-claude-code-synthesis-runner.d.ts.map +1 -0
  56. package/dist/contracts/adr-006-claude-code-synthesis-runner.js +177 -0
  57. package/dist/contracts/adr-006-claude-code-synthesis-runner.js.map +1 -0
  58. package/dist/contracts/adr-007-subcommand-synthesis-router.d.ts +273 -0
  59. package/dist/contracts/adr-007-subcommand-synthesis-router.d.ts.map +1 -0
  60. package/dist/contracts/adr-007-subcommand-synthesis-router.js +226 -0
  61. package/dist/contracts/adr-007-subcommand-synthesis-router.js.map +1 -0
  62. package/dist/contracts/adr-008-synthesis-artifact-persistence.d.ts +323 -0
  63. package/dist/contracts/adr-008-synthesis-artifact-persistence.d.ts.map +1 -0
  64. package/dist/contracts/adr-008-synthesis-artifact-persistence.js +184 -0
  65. package/dist/contracts/adr-008-synthesis-artifact-persistence.js.map +1 -0
  66. package/dist/contracts/adr-command-semantics.d.ts +150 -0
  67. package/dist/contracts/adr-command-semantics.d.ts.map +1 -0
  68. package/dist/contracts/adr-command-semantics.js +984 -0
  69. package/dist/contracts/adr-command-semantics.js.map +1 -0
  70. package/dist/contracts/index.d.ts +5 -0
  71. package/dist/contracts/index.d.ts.map +1 -1
  72. package/dist/contracts/index.js +16 -0
  73. package/dist/contracts/index.js.map +1 -1
  74. package/dist/enterprise/index.d.ts +16 -0
  75. package/dist/enterprise/index.d.ts.map +1 -0
  76. package/dist/enterprise/index.js +17 -0
  77. package/dist/enterprise/index.js.map +1 -0
  78. package/dist/enterprise/integration-registry.d.ts +73 -0
  79. package/dist/enterprise/integration-registry.d.ts.map +1 -0
  80. package/dist/enterprise/integration-registry.js +252 -0
  81. package/dist/enterprise/integration-registry.js.map +1 -0
  82. package/dist/enterprise/lineage.d.ts +73 -0
  83. package/dist/enterprise/lineage.d.ts.map +1 -0
  84. package/dist/enterprise/lineage.js +218 -0
  85. package/dist/enterprise/lineage.js.map +1 -0
  86. package/dist/gates/argument-guard.d.ts +39 -0
  87. package/dist/gates/argument-guard.d.ts.map +1 -0
  88. package/dist/gates/argument-guard.js +180 -0
  89. package/dist/gates/argument-guard.js.map +1 -0
  90. package/dist/gates/index.d.ts +5 -0
  91. package/dist/gates/index.d.ts.map +1 -1
  92. package/dist/gates/index.js +7 -0
  93. package/dist/gates/index.js.map +1 -1
  94. package/dist/gates/lineage-gate.d.ts +55 -0
  95. package/dist/gates/lineage-gate.d.ts.map +1 -0
  96. package/dist/gates/lineage-gate.js +127 -0
  97. package/dist/gates/lineage-gate.js.map +1 -0
  98. package/dist/mcp/mcp-server.d.ts +35 -0
  99. package/dist/mcp/mcp-server.d.ts.map +1 -0
  100. package/dist/mcp/mcp-server.js +692 -0
  101. package/dist/mcp/mcp-server.js.map +1 -0
  102. package/dist/modules/help-renderer.d.ts +25 -0
  103. package/dist/modules/help-renderer.d.ts.map +1 -0
  104. package/dist/modules/help-renderer.js +163 -0
  105. package/dist/modules/help-renderer.js.map +1 -0
  106. package/dist/modules/index.d.ts +1 -0
  107. package/dist/modules/index.d.ts.map +1 -1
  108. package/dist/modules/index.js +1 -0
  109. package/dist/modules/index.js.map +1 -1
  110. package/dist/runtime/claude-code-runner.d.ts +93 -0
  111. package/dist/runtime/claude-code-runner.d.ts.map +1 -0
  112. package/dist/runtime/claude-code-runner.js +588 -0
  113. package/dist/runtime/claude-code-runner.js.map +1 -0
  114. package/dist/runtime/index.d.ts +5 -0
  115. package/dist/runtime/index.d.ts.map +1 -0
  116. package/dist/runtime/index.js +5 -0
  117. package/dist/runtime/index.js.map +1 -0
  118. package/dist/server/index.d.ts +2 -0
  119. package/dist/server/index.d.ts.map +1 -1
  120. package/dist/server/index.js +16 -1
  121. package/dist/server/index.js.map +1 -1
  122. package/dist/server/routes/identity.d.ts +9 -0
  123. package/dist/server/routes/identity.d.ts.map +1 -0
  124. package/dist/server/routes/identity.js +100 -0
  125. package/dist/server/routes/identity.js.map +1 -0
  126. package/dist/server/routes/index.d.ts +2 -0
  127. package/dist/server/routes/index.d.ts.map +1 -1
  128. package/dist/server/routes/index.js +2 -0
  129. package/dist/server/routes/index.js.map +1 -1
  130. package/dist/server/routes/lineage.d.ts +15 -0
  131. package/dist/server/routes/lineage.d.ts.map +1 -0
  132. package/dist/server/routes/lineage.js +128 -0
  133. package/dist/server/routes/lineage.js.map +1 -0
  134. package/dist/synthesis/artifact-writer.d.ts +62 -0
  135. package/dist/synthesis/artifact-writer.d.ts.map +1 -0
  136. package/dist/synthesis/artifact-writer.js +603 -0
  137. package/dist/synthesis/artifact-writer.js.map +1 -0
  138. package/dist/synthesis/index.d.ts +7 -0
  139. package/dist/synthesis/index.d.ts.map +1 -0
  140. package/dist/synthesis/index.js +7 -0
  141. package/dist/synthesis/index.js.map +1 -0
  142. package/dist/synthesis/prompts/index.d.ts +50 -0
  143. package/dist/synthesis/prompts/index.d.ts.map +1 -0
  144. package/dist/synthesis/prompts/index.js +502 -0
  145. package/dist/synthesis/prompts/index.js.map +1 -0
  146. package/dist/synthesis/router.d.ts +70 -0
  147. package/dist/synthesis/router.d.ts.map +1 -0
  148. package/dist/synthesis/router.js +346 -0
  149. package/dist/synthesis/router.js.map +1 -0
  150. package/dist/types/index.d.ts +132 -0
  151. package/dist/types/index.d.ts.map +1 -1
  152. package/dist/utils/identity-store.d.ts +31 -0
  153. package/dist/utils/identity-store.d.ts.map +1 -0
  154. package/dist/utils/identity-store.js +97 -0
  155. package/dist/utils/identity-store.js.map +1 -0
  156. package/dist/utils/index.d.ts +2 -0
  157. package/dist/utils/index.d.ts.map +1 -1
  158. package/dist/utils/index.js +1 -0
  159. package/dist/utils/index.js.map +1 -1
  160. package/package.json +1 -1
@@ -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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.d.ts","sourceRoot":"","sources":["../../../src/server/routes/lineage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,QAAA,MAAM,OAAO,4EAAa,CAAC;AAkJ3B,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,128 @@
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
+ import { generateId, generateChecksum } from '../utils/id-generator.js';
14
+ const lineage = new Hono();
15
+ const lineageStore = new Map();
16
+ // ============================================================================
17
+ // POST /v1/lineage — Store a lineage record
18
+ // ============================================================================
19
+ lineage.post('/', async (c) => {
20
+ try {
21
+ const body = await c.req.json();
22
+ // Validate required fields (ADR-004, Invariant 3)
23
+ if (!body.artifact_id || !body.simulation_id) {
24
+ return c.json({
25
+ error: {
26
+ code: 'LINEAGE_VALIDATION_ERROR',
27
+ message: 'artifact_id and simulation_id are required (ADR-004, Invariant 3)',
28
+ },
29
+ }, 400);
30
+ }
31
+ const id = body.id ?? generateId('lin');
32
+ const entry = {
33
+ ...body,
34
+ id,
35
+ created_at: body.created_at ?? new Date().toISOString(),
36
+ };
37
+ lineageStore.set(id, entry);
38
+ // Also index by artifact_id and simulation_id for queries
39
+ return c.json({
40
+ id,
41
+ type: 'LineageRecord',
42
+ artifact_id: entry.artifact_id,
43
+ simulation_id: entry.simulation_id,
44
+ created_at: entry.created_at,
45
+ checksum: generateChecksum(),
46
+ }, 201);
47
+ }
48
+ catch (error) {
49
+ console.error('Lineage store error:', error);
50
+ return c.json({
51
+ error: {
52
+ code: 'INTERNAL_ERROR',
53
+ message: error instanceof Error ? error.message : 'Unknown error',
54
+ },
55
+ }, 500);
56
+ }
57
+ });
58
+ // ============================================================================
59
+ // GET /v1/lineage/artifact/:id — Trace backward: artifact → simulation
60
+ // ============================================================================
61
+ lineage.get('/artifact/:id', async (c) => {
62
+ const artifactId = c.req.param('id');
63
+ // Find lineage records for this artifact
64
+ const records = [];
65
+ for (const entry of lineageStore.values()) {
66
+ if (entry.artifact_id === artifactId) {
67
+ records.push(entry);
68
+ }
69
+ }
70
+ if (records.length === 0) {
71
+ // Return stub response for demo purposes
72
+ return c.json({
73
+ artifact_id: artifactId,
74
+ lineage: [],
75
+ trace_complete: false,
76
+ message: 'No lineage records found for this artifact',
77
+ });
78
+ }
79
+ return c.json({
80
+ artifact_id: artifactId,
81
+ lineage: records.map(r => ({
82
+ lineage_id: r.id,
83
+ simulation_id: r.simulation_id,
84
+ plan_id: r.plan_id,
85
+ artifact_category: r.artifact_category,
86
+ decision_context: r.decision_context,
87
+ attribution: r.attribution,
88
+ governance: r.governance,
89
+ created_at: r.created_at,
90
+ })),
91
+ trace_complete: true,
92
+ });
93
+ });
94
+ // ============================================================================
95
+ // GET /v1/lineage/simulation/:id/artifacts — Trace forward
96
+ // ============================================================================
97
+ lineage.get('/simulation/:id/artifacts', async (c) => {
98
+ const simulationId = c.req.param('id');
99
+ // Find all artifacts produced by this simulation
100
+ const records = [];
101
+ for (const entry of lineageStore.values()) {
102
+ if (entry.simulation_id === simulationId) {
103
+ records.push(entry);
104
+ }
105
+ }
106
+ if (records.length === 0) {
107
+ // Return stub response
108
+ return c.json({
109
+ simulation_id: simulationId,
110
+ artifacts: [],
111
+ count: 0,
112
+ message: 'No artifacts found for this simulation',
113
+ });
114
+ }
115
+ return c.json({
116
+ simulation_id: simulationId,
117
+ artifacts: records.map(r => ({
118
+ lineage_id: r.id,
119
+ artifact_id: r.artifact_id,
120
+ artifact_category: r.artifact_category,
121
+ plan_id: r.plan_id,
122
+ created_at: r.created_at,
123
+ })),
124
+ count: records.length,
125
+ });
126
+ });
127
+ export { lineage };
128
+ //# sourceMappingURL=lineage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineage.js","sourceRoot":"","sources":["../../../src/server/routes/lineage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Artifact Writer — ADR-008 Implementation
3
+ *
4
+ * Enterprise-grade synthesis artifact persistence to ~/.agentics/runs/<run-id>/.
5
+ * Provides a local audit trail for offline inspection via `agentics inspect run`.
6
+ *
7
+ * INVARIANTS:
8
+ * - Every write produces exactly four artifact files in the run directory
9
+ * - All file content is serialized BEFORE any I/O begins (fail-fast)
10
+ * - File writes use atomic temp-then-rename to prevent partial artifacts
11
+ * - Files are written with mode 0o600 (owner read/write only)
12
+ * - Directories are created with mode 0o700 (owner read/write/execute only)
13
+ * - All run-id values are validated for path traversal and format safety
14
+ * - SHA-256 checksums are computed for every artifact file
15
+ * - All I/O errors are wrapped with CLIError for structured diagnostics
16
+ *
17
+ * FORBIDDEN:
18
+ * - Validating artifact content semantics (already validated by runner/router)
19
+ * - Calling external APIs
20
+ * - Modifying artifact data (write-through only)
21
+ * - Following symlinks outside the base directory
22
+ */
23
+ import type { RunManifest, PlatformReceipt, ArtifactWriterInput, IArtifactWriter, ArtifactWriteResult, RunSummary, ListRunsOptions } from '../contracts/adr-008-synthesis-artifact-persistence.js';
24
+ /**
25
+ * Enterprise-grade artifact writer implementing the IArtifactWriter contract.
26
+ *
27
+ * Persists synthesis run artifacts to the local filesystem with:
28
+ * - Atomic writes (temp-then-rename per file)
29
+ * - SHA-256 integrity checksums
30
+ * - Owner-only file permissions (0o600 files, 0o700 directories)
31
+ * - Path traversal prevention
32
+ * - Structured error handling with correlation IDs
33
+ * - Size guards for claude_output and prompt
34
+ * - Read-back methods for offline inspection
35
+ * - Listing and filtering for run discovery
36
+ */
37
+ export declare class ArtifactWriter implements IArtifactWriter {
38
+ private readonly baseDir;
39
+ constructor(baseDir?: string);
40
+ getRunsDir(): string;
41
+ getRunDir(runId: string): string;
42
+ runExists(runId: string): boolean;
43
+ write(input: ArtifactWriterInput): ArtifactWriteResult;
44
+ readManifest(runId: string): RunManifest | null;
45
+ readReceipt(runId: string): PlatformReceipt | null;
46
+ readClaudeOutput(runId: string): unknown;
47
+ readPrompt(runId: string): string | null;
48
+ listRuns(options?: ListRunsOptions): RunSummary[];
49
+ deleteRun(runId: string): boolean;
50
+ }
51
+ /**
52
+ * Create an IArtifactWriter instance.
53
+ *
54
+ * Base directory resolution order:
55
+ * 1. Explicit `baseDir` parameter
56
+ * 2. AGENTICS_RUNS_DIR environment variable
57
+ * 3. ~/.agentics/runs/ (default)
58
+ *
59
+ * @param baseDir Optional base directory override for artifact storage
60
+ */
61
+ export declare function createArtifactWriter(baseDir?: string): IArtifactWriter;
62
+ //# sourceMappingURL=artifact-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-writer.d.ts","sourceRoot":"","sources":["../../src/synthesis/artifact-writer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,eAAe,EAChB,MAAM,wDAAwD,CAAC;AA4VhE;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,OAAO,CAAC,EAAE,MAAM;IAU5B,UAAU,IAAI,MAAM;IAIpB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQhC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAejC,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB;IAoItD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAK/C,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAKlD,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKxC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASxC,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,GAAG,UAAU,EAAE;IAuDjD,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAclC;AAMD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,eAAe,CAEtE"}