@enterprise-skills/orchestrator 3.2.0 → 3.4.0

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 (50) hide show
  1. package/compliance/fedramp.yaml +30 -0
  2. package/compliance/gdpr.yaml +33 -0
  3. package/compliance/hipaa.yaml +29 -0
  4. package/compliance/iso27001.yaml +29 -0
  5. package/compliance/pcidss.yaml +24 -0
  6. package/compliance/soc2.yaml +33 -0
  7. package/dist/__tests__/compliance.test.d.ts +2 -0
  8. package/dist/__tests__/compliance.test.d.ts.map +1 -0
  9. package/dist/__tests__/compliance.test.js +148 -0
  10. package/dist/__tests__/compliance.test.js.map +1 -0
  11. package/dist/__tests__/preflight-resolver.test.d.ts +2 -0
  12. package/dist/__tests__/preflight-resolver.test.d.ts.map +1 -0
  13. package/dist/__tests__/preflight-resolver.test.js +182 -0
  14. package/dist/__tests__/preflight-resolver.test.js.map +1 -0
  15. package/dist/__tests__/workflow-library.test.d.ts +2 -0
  16. package/dist/__tests__/workflow-library.test.d.ts.map +1 -0
  17. package/dist/__tests__/workflow-library.test.js +185 -0
  18. package/dist/__tests__/workflow-library.test.js.map +1 -0
  19. package/dist/compliance.d.ts +51 -0
  20. package/dist/compliance.d.ts.map +1 -0
  21. package/dist/compliance.js +160 -0
  22. package/dist/compliance.js.map +1 -0
  23. package/dist/index.d.ts +62 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +152 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/preflight-resolver.d.ts +58 -0
  28. package/dist/preflight-resolver.d.ts.map +1 -0
  29. package/dist/preflight-resolver.js +345 -0
  30. package/dist/preflight-resolver.js.map +1 -0
  31. package/dist/types.d.ts +1 -1
  32. package/dist/types.d.ts.map +1 -1
  33. package/dist/workflow-library.d.ts +14 -0
  34. package/dist/workflow-library.d.ts.map +1 -0
  35. package/dist/workflow-library.js +94 -0
  36. package/dist/workflow-library.js.map +1 -0
  37. package/package.json +4 -2
  38. package/workflows/beginner-launchpad.yaml +33 -0
  39. package/workflows/enterprise-control-plane.yaml +38 -0
  40. package/workflows/growth-engine.yaml +33 -0
  41. package/workflows/health-check.yaml +28 -0
  42. package/workflows/incident-triage.yaml +34 -0
  43. package/workflows/onboard-audit.yaml +28 -0
  44. package/workflows/post-refactor.yaml +27 -0
  45. package/workflows/product-launch.yaml +54 -0
  46. package/workflows/release-confidence.yaml +87 -0
  47. package/workflows/release-readiness.yaml +62 -0
  48. package/workflows/security-assessment.yaml +60 -0
  49. package/workflows/sprint-close.yaml +30 -0
  50. package/workflows/ux-quality-review.yaml +33 -0
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ const vitest_1 = require("vitest");
37
+ const fs = __importStar(require("fs"));
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const index_1 = require("../index");
41
+ const workflow_library_1 = require("../workflow-library");
42
+ const GATED_WORKFLOW = {
43
+ name: 'test-gated',
44
+ description: 'sequential -> gate -> sequential',
45
+ version: '1.0',
46
+ steps: [
47
+ { id: 'scan', type: 'sequential', skill: 'skill-a' },
48
+ {
49
+ id: 'gate-scan',
50
+ type: 'gate',
51
+ check: { source: 'skill-a', field: 'status', operator: 'equals', value: 'completed' },
52
+ pass_action: 'ship',
53
+ fail_action: 'STOP',
54
+ depends_on: ['scan'],
55
+ },
56
+ { id: 'ship', type: 'sequential', skill: 'skill-b', depends_on: ['gate-scan'] },
57
+ ],
58
+ };
59
+ function output(skillId, status) {
60
+ return {
61
+ skill_id: skillId,
62
+ executed_at: new Date().toISOString(),
63
+ status,
64
+ duration_seconds: 1,
65
+ summary: `${skillId} ${status}`,
66
+ findings: [],
67
+ metrics: {},
68
+ downstream_signals: [],
69
+ };
70
+ }
71
+ (0, vitest_1.describe)('WorkflowLibrary', () => {
72
+ let tmpDir;
73
+ (0, vitest_1.beforeEach)(() => {
74
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'wf-lib-'));
75
+ });
76
+ (0, vitest_1.afterEach)(() => {
77
+ fs.rmSync(tmpDir, { recursive: true, force: true });
78
+ });
79
+ (0, vitest_1.it)('lists the packaged builtin workflows', () => {
80
+ const lib = new workflow_library_1.WorkflowLibrary(tmpDir);
81
+ const names = lib.list().map(w => w.name);
82
+ (0, vitest_1.expect)(names).toContain('release-readiness');
83
+ (0, vitest_1.expect)(names).toContain('security-assessment');
84
+ (0, vitest_1.expect)(names.length).toBeGreaterThanOrEqual(11);
85
+ (0, vitest_1.expect)(lib.list().every(w => w.source === 'builtin')).toBe(true);
86
+ });
87
+ (0, vitest_1.it)('loads a builtin by name and it validates against the DAG', () => {
88
+ const lib = new workflow_library_1.WorkflowLibrary(tmpDir);
89
+ const def = lib.load('release-readiness');
90
+ (0, vitest_1.expect)(def.name).toBe('release-readiness');
91
+ (0, vitest_1.expect)(def.steps.length).toBe(9);
92
+ });
93
+ (0, vitest_1.it)('every packaged builtin passes DAG validation', () => {
94
+ const orch = new index_1.Orchestrator({ projectRoot: tmpDir });
95
+ for (const wf of orch.listWorkflows()) {
96
+ const def = orch.loadWorkflow(wf.name);
97
+ const validation = orch.dag.validateWorkflow(def);
98
+ (0, vitest_1.expect)(validation.errors, `${wf.name}: ${validation.errors.join('; ')}`).toHaveLength(0);
99
+ }
100
+ });
101
+ (0, vitest_1.it)('project-local definitions override builtins of the same name', () => {
102
+ const projectDir = path.join(tmpDir, '.project-ai', 'workflows');
103
+ fs.mkdirSync(projectDir, { recursive: true });
104
+ fs.writeFileSync(path.join(projectDir, 'release-readiness.yaml'), 'name: release-readiness\ndescription: custom\nversion: "2.0"\nsteps:\n - id: only\n type: sequential\n skill: code-review\n', 'utf-8');
105
+ const lib = new workflow_library_1.WorkflowLibrary(tmpDir);
106
+ (0, vitest_1.expect)(lib.list().find(w => w.name === 'release-readiness')?.source).toBe('project');
107
+ (0, vitest_1.expect)(lib.load('release-readiness').version).toBe('2.0');
108
+ });
109
+ (0, vitest_1.it)('throws with the available names for an unknown workflow', () => {
110
+ const lib = new workflow_library_1.WorkflowLibrary(tmpDir);
111
+ (0, vitest_1.expect)(() => lib.load('nope')).toThrow(/Unknown workflow "nope"/);
112
+ });
113
+ });
114
+ (0, vitest_1.describe)('Orchestrator workflow lifecycle', () => {
115
+ let tmpDir;
116
+ let orch;
117
+ (0, vitest_1.beforeEach)(() => {
118
+ tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'wf-run-'));
119
+ orch = new index_1.Orchestrator({ projectRoot: tmpDir, sessionId: 'test-session-wf' });
120
+ orch.startSession('proj', 'main');
121
+ });
122
+ (0, vitest_1.afterEach)(() => {
123
+ fs.rmSync(tmpDir, { recursive: true, force: true });
124
+ });
125
+ (0, vitest_1.it)('advance auto-passes a gate when the source output satisfies the check', () => {
126
+ orch.startWorkflow(GATED_WORKFLOW);
127
+ let advanced = orch.advanceWorkflow(GATED_WORKFLOW);
128
+ (0, vitest_1.expect)(advanced.actionable.map(s => s.id)).toEqual(['scan']);
129
+ orch.state.writeSkillOutput(output('skill-a', 'completed'));
130
+ orch.completeWorkflowStep('scan', 'completed', 5, ['skill-a']);
131
+ advanced = orch.advanceWorkflow(GATED_WORKFLOW);
132
+ (0, vitest_1.expect)(advanced.resolved).toEqual([
133
+ vitest_1.expect.objectContaining({ id: 'gate-scan', type: 'gate' }),
134
+ ]);
135
+ (0, vitest_1.expect)(advanced.resolved[0].outcome).toMatch(/^pass/);
136
+ (0, vitest_1.expect)(advanced.actionable.map(s => s.id)).toEqual(['ship']);
137
+ (0, vitest_1.expect)(advanced.state?.gate_decisions).toHaveLength(1);
138
+ });
139
+ (0, vitest_1.it)('advance stops at the gate when the check fails and fail_action is STOP', () => {
140
+ orch.startWorkflow(GATED_WORKFLOW);
141
+ orch.state.writeSkillOutput(output('skill-a', 'failed'));
142
+ orch.completeWorkflowStep('scan', 'completed', 5, ['skill-a']);
143
+ const advanced = orch.advanceWorkflow(GATED_WORKFLOW);
144
+ (0, vitest_1.expect)(advanced.state?.status).toBe('stopped_at_gate');
145
+ (0, vitest_1.expect)(advanced.actionable).toHaveLength(0);
146
+ // Stop condition is audited (AGENTIC_GOVERNANCE §6/§8).
147
+ const audit = fs.readFileSync(path.join(tmpDir, '.project-ai', 'orchestration-audit.jsonl'), 'utf-8');
148
+ (0, vitest_1.expect)(audit).toContain('stopped_at_gate');
149
+ });
150
+ (0, vitest_1.it)('completing all steps marks the workflow completed', () => {
151
+ orch.startWorkflow(GATED_WORKFLOW);
152
+ orch.state.writeSkillOutput(output('skill-a', 'completed'));
153
+ orch.completeWorkflowStep('scan', 'completed', 1, ['skill-a']);
154
+ orch.advanceWorkflow(GATED_WORKFLOW);
155
+ orch.state.writeSkillOutput(output('skill-b', 'completed'));
156
+ const state = orch.completeWorkflowStep('ship', 'completed', 1, ['skill-b']);
157
+ (0, vitest_1.expect)(state.status).toBe('completed');
158
+ });
159
+ (0, vitest_1.it)('composeBrief surfaces the workflow ready steps when the definition is resolvable', () => {
160
+ // Persist the definition project-locally so composeBrief can reload it by name.
161
+ const projectDir = path.join(tmpDir, '.project-ai', 'workflows');
162
+ fs.mkdirSync(projectDir, { recursive: true });
163
+ fs.writeFileSync(path.join(projectDir, 'test-gated.yaml'), JSON.stringify(GATED_WORKFLOW), // YAML is a JSON superset
164
+ 'utf-8');
165
+ orch.startWorkflow(GATED_WORKFLOW);
166
+ const brief = orch.composeBrief();
167
+ (0, vitest_1.expect)(brief.workflow?.name).toBe('test-gated');
168
+ (0, vitest_1.expect)(brief.workflow?.status).toBe('running');
169
+ (0, vitest_1.expect)(brief.workflow?.ready.map(s => s.id)).toEqual(['scan']);
170
+ });
171
+ (0, vitest_1.it)('composeBrief reports a workflow without ready-step resolution when the definition is gone', () => {
172
+ orch.startWorkflow(GATED_WORKFLOW); // never persisted by name
173
+ const brief = orch.composeBrief();
174
+ (0, vitest_1.expect)(brief.workflow?.name).toBe('test-gated');
175
+ (0, vitest_1.expect)(brief.workflow?.ready).toEqual([]);
176
+ });
177
+ (0, vitest_1.it)('abortWorkflow marks a running workflow aborted and audits the reason', () => {
178
+ orch.startWorkflow(GATED_WORKFLOW);
179
+ const state = orch.abortWorkflow('test teardown');
180
+ (0, vitest_1.expect)(state.status).toBe('aborted');
181
+ const audit = fs.readFileSync(path.join(tmpDir, '.project-ai', 'orchestration-audit.jsonl'), 'utf-8');
182
+ (0, vitest_1.expect)(audit).toContain('test teardown');
183
+ });
184
+ });
185
+ //# sourceMappingURL=workflow-library.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-library.test.js","sourceRoot":"","sources":["../../src/__tests__/workflow-library.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ export type ControlType = 'preventive' | 'detective' | 'corrective';
2
+ export type ControlStatus = 'implemented' | 'partial' | 'missing';
3
+ export type RequirementCoverage = 'full' | 'partial' | 'gap' | 'n/a';
4
+ export interface DetectedControl {
5
+ id: string;
6
+ description: string;
7
+ type: ControlType;
8
+ status: ControlStatus;
9
+ evidence: string;
10
+ }
11
+ export interface FrameworkRequirement {
12
+ id: string;
13
+ title: string;
14
+ controls?: string[];
15
+ partial?: boolean;
16
+ na?: boolean;
17
+ }
18
+ export interface FrameworkCatalog {
19
+ framework: string;
20
+ name: string;
21
+ requirements: FrameworkRequirement[];
22
+ }
23
+ export interface RequirementResult {
24
+ id: string;
25
+ title: string;
26
+ coverage: RequirementCoverage;
27
+ mapped: string[];
28
+ evidence: string[];
29
+ }
30
+ export interface FrameworkResult {
31
+ framework: string;
32
+ name: string;
33
+ coverage_percent: number;
34
+ requirements: RequirementResult[];
35
+ gaps: RequirementResult[];
36
+ }
37
+ export interface ComplianceReport {
38
+ generated_at: string;
39
+ project_root: string;
40
+ controls: DetectedControl[];
41
+ frameworks: FrameworkResult[];
42
+ }
43
+ /**
44
+ * Evidence-based control detection. Every control cites the artifact that
45
+ * proves it; a control with no artifact is `missing`, never assumed.
46
+ */
47
+ export declare function detectControls(projectRoot: string): DetectedControl[];
48
+ export declare function listFrameworks(): FrameworkCatalog[];
49
+ export declare function evaluateFramework(catalog: FrameworkCatalog, controls: DetectedControl[]): FrameworkResult;
50
+ export declare function buildComplianceReport(projectRoot: string, frameworkFilter?: string): ComplianceReport;
51
+ //# sourceMappingURL=compliance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../src/compliance.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,SAAS,GAAG,SAAS,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAClC,IAAI,EAAE,iBAAiB,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,UAAU,EAAE,eAAe,EAAE,CAAC;CAC/B;AAoBD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,EAAE,CAiIrE;AAED,wBAAgB,cAAc,IAAI,gBAAgB,EAAE,CAOnD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,eAAe,CAkCzG;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAWrG"}
@@ -0,0 +1,160 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.detectControls = detectControls;
37
+ exports.listFrameworks = listFrameworks;
38
+ exports.evaluateFramework = evaluateFramework;
39
+ exports.buildComplianceReport = buildComplianceReport;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const yaml = __importStar(require("js-yaml"));
43
+ const audit_logger_1 = require("./audit-logger");
44
+ const CATALOG_DIR = path.join(__dirname, '..', 'compliance');
45
+ function exists(root, rel) {
46
+ return fs.existsSync(path.join(root, rel));
47
+ }
48
+ function readIfSmall(root, rel) {
49
+ try {
50
+ const full = path.join(root, rel);
51
+ if (!fs.existsSync(full))
52
+ return '';
53
+ const stat = fs.statSync(full);
54
+ if (stat.size > 1024 * 1024)
55
+ return '';
56
+ return fs.readFileSync(full, 'utf-8');
57
+ }
58
+ catch {
59
+ return '';
60
+ }
61
+ }
62
+ /**
63
+ * Evidence-based control detection. Every control cites the artifact that
64
+ * proves it; a control with no artifact is `missing`, never assumed.
65
+ */
66
+ function detectControls(projectRoot) {
67
+ const controls = [];
68
+ const add = (id, description, type, implemented, evidence, partial = false) => {
69
+ controls.push({
70
+ id,
71
+ description,
72
+ type,
73
+ status: implemented ? (partial ? 'partial' : 'implemented') : 'missing',
74
+ evidence: implemented ? evidence : `not found: ${evidence}`,
75
+ });
76
+ };
77
+ const pack = ['ACTIVE_SKILLS.yaml', 'SESSION_POLICY.yaml', 'MODEL_ROUTING.yaml', 'AUTHORITATIVE_DOCS.yaml']
78
+ .filter(f => exists(projectRoot, path.join('.project-ai', f)));
79
+ add('CTL-PACK', 'Governance authority pack pins active skills, session policy, model routing, and doc authority', 'preventive', pack.length > 0, `.project-ai/{${pack.join(', ')}}`, pack.length < 4);
80
+ add('CTL-DOCS', 'Authoritative document load order enforced before code/schema/agent changes (change control)', 'preventive', exists(projectRoot, '.project-ai/AUTHORITATIVE_DOCS.yaml'), '.project-ai/AUTHORITATIVE_DOCS.yaml');
81
+ const auditPath = path.join(projectRoot, '.project-ai', 'orchestration-audit.jsonl');
82
+ let auditOk = false;
83
+ let auditEvidence = '.project-ai/orchestration-audit.jsonl';
84
+ if (fs.existsSync(auditPath)) {
85
+ const verification = new audit_logger_1.AuditLogger(auditPath).verify();
86
+ auditOk = verification.valid;
87
+ auditEvidence = verification.valid
88
+ ? `orchestration-audit.jsonl: hash chain VALID (${verification.entries} entries)`
89
+ : `orchestration-audit.jsonl: hash chain INVALID`;
90
+ }
91
+ add('CTL-AUDIT', 'Append-only SHA-256 hash-chained audit log of agent/skill/gate activity, integrity-verifiable', 'detective', auditOk, auditEvidence);
92
+ add('CTL-POLICY', 'Policy gates with risk levels and required approvers for governed actions', 'preventive', exists(projectRoot, 'policies/enforcement-policies.yaml') || exists(projectRoot, '.project-ai/orchestration-hooks.json'), 'policies/enforcement-policies.yaml or .project-ai/orchestration-hooks.json');
93
+ add('CTL-WORKFLOW', 'Gated DAG workflows: release/security gates halt pipelines on failing evidence', 'preventive', exists(projectRoot, '.project-ai/workflows') || exists(path.join(__dirname, '..'), 'workflows'), 'packaged workflow library / .project-ai/workflows/');
94
+ const hooksJson = readIfSmall(projectRoot, '.cursor/hooks.json');
95
+ add('CTL-HOOKS', 'IDE hooks: prompt input gateway (block/require) + session license/telemetry/orchestration hooks', 'preventive', hooksJson.includes('enterprise-skills'), '.cursor/hooks.json (enterprise-skills entries)');
96
+ const eslintrc = readIfSmall(projectRoot, '.eslintrc.json') + readIfSmall(projectRoot, 'eslint.config.js');
97
+ add('CTL-LINT', 'Static analysis with security rules on every change (eslint + eslint-plugin-security)', 'detective', eslintrc.includes('security'), '.eslintrc* with security plugin');
98
+ add('CTL-PRECOMMIT', 'Pre-commit enforcement: lint-staged quality gates cannot be skipped silently', 'preventive', exists(projectRoot, '.husky/pre-commit') || exists(projectRoot, '.git/hooks/pre-commit'), '.husky/pre-commit');
99
+ add('CTL-SPEC-RAG', 'RAG governance specification (retrieval provenance, grounding, injection defenses)', 'preventive', exists(projectRoot, 'specs/RAG_GOVERNANCE.md'), 'specs/RAG_GOVERNANCE.md');
100
+ add('CTL-SPEC-AGENT', 'Agentic governance specification (capability declarations, stop conditions, verification, audit)', 'preventive', exists(projectRoot, 'specs/AGENTIC_GOVERNANCE.md'), 'specs/AGENTIC_GOVERNANCE.md');
101
+ add('CTL-SPEC-ALIGN', 'Alignment governance specification (training data lineage, eval gates, output validation)', 'preventive', exists(projectRoot, 'specs/ALIGNMENT_GOVERNANCE.md'), 'specs/ALIGNMENT_GOVERNANCE.md');
102
+ add('CTL-TESTS', 'Automated test suites exercised in CI (unit + structural guards)', 'detective', exists(projectRoot, 'tests') || exists(projectRoot, 'run-tests.ps1') || exists(projectRoot, 'vitest.config.ts'), 'tests/ or configured test runner');
103
+ return controls;
104
+ }
105
+ function listFrameworks() {
106
+ if (!fs.existsSync(CATALOG_DIR))
107
+ return [];
108
+ return fs.readdirSync(CATALOG_DIR)
109
+ .filter(f => f.endsWith('.yaml'))
110
+ .map(f => yaml.load(fs.readFileSync(path.join(CATALOG_DIR, f), 'utf-8')))
111
+ .filter(catalog => catalog && catalog.framework && Array.isArray(catalog.requirements))
112
+ .sort((a, b) => a.framework.localeCompare(b.framework));
113
+ }
114
+ function evaluateFramework(catalog, controls) {
115
+ const byId = new Map(controls.map(c => [c.id, c]));
116
+ const requirements = catalog.requirements.map(req => {
117
+ if (req.na) {
118
+ return { id: req.id, title: req.title, coverage: 'n/a', mapped: [], evidence: [] };
119
+ }
120
+ const mapped = (req.controls ?? []).map(id => byId.get(id)).filter((c) => Boolean(c));
121
+ const implemented = mapped.filter(c => c.status !== 'missing');
122
+ let coverage;
123
+ if (mapped.length === 0 || implemented.length === 0) {
124
+ coverage = 'gap';
125
+ }
126
+ else if (req.partial || implemented.length < mapped.length || implemented.some(c => c.status === 'partial')) {
127
+ coverage = 'partial';
128
+ }
129
+ else {
130
+ coverage = 'full';
131
+ }
132
+ return {
133
+ id: req.id,
134
+ title: req.title,
135
+ coverage,
136
+ mapped: mapped.map(c => c.id),
137
+ evidence: implemented.map(c => c.evidence),
138
+ };
139
+ });
140
+ const applicable = requirements.filter(r => r.coverage !== 'n/a');
141
+ const covered = applicable.filter(r => r.coverage === 'full' || r.coverage === 'partial');
142
+ return {
143
+ framework: catalog.framework,
144
+ name: catalog.name,
145
+ coverage_percent: applicable.length === 0 ? 0 : Math.round((covered.length / applicable.length) * 100),
146
+ requirements,
147
+ gaps: requirements.filter(r => r.coverage === 'gap'),
148
+ };
149
+ }
150
+ function buildComplianceReport(projectRoot, frameworkFilter) {
151
+ const controls = detectControls(projectRoot);
152
+ const catalogs = listFrameworks().filter(catalog => !frameworkFilter || catalog.framework.toLowerCase() === frameworkFilter.toLowerCase());
153
+ return {
154
+ generated_at: new Date().toISOString(),
155
+ project_root: projectRoot,
156
+ controls,
157
+ frameworks: catalogs.map(catalog => evaluateFramework(catalog, controls)),
158
+ };
159
+ }
160
+ //# sourceMappingURL=compliance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance.js","sourceRoot":"","sources":["../src/compliance.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,6 +4,8 @@ import { SignalRouter, type MatchedSignal } from './signal-router';
4
4
  import { PolicyEnforcer, type GateCheckResult } from './policy-enforcer';
5
5
  import { AuditLogger } from './audit-logger';
6
6
  import { OrchestrationAdvisor, type AdvisorDecision } from './advisor';
7
+ import { WorkflowLibrary, type WorkflowSource } from './workflow-library';
8
+ import { type PreflightOptions, type PreflightResolution } from './preflight-resolver';
7
9
  import type { SessionContext, SkillOutput, WorkflowDefinition, WorkflowState, PendingSignal } from './types';
8
10
  import type { SubscriptionTier, StructuredTaskContract } from './task-contract';
9
11
  export interface OrchestratorOptions {
@@ -19,6 +21,7 @@ export declare class Orchestrator {
19
21
  readonly policy: PolicyEnforcer;
20
22
  readonly audit: AuditLogger;
21
23
  readonly advisor: OrchestrationAdvisor;
24
+ readonly workflows: WorkflowLibrary;
22
25
  private config;
23
26
  constructor(options: OrchestratorOptions);
24
27
  startSession(project: string, branch: string): SessionContext;
@@ -47,6 +50,59 @@ export declare class Orchestrator {
47
50
  workflowState: WorkflowState | null;
48
51
  };
49
52
  completeWorkflowStep(stepId: string, status: 'completed' | 'failed' | 'skipped', durationSeconds: number, skillOutputs: string[]): WorkflowState;
53
+ /**
54
+ * pipeline/PREFLIGHT_RESOLVER_SPEC.md Steps 1-7: deterministic, file-backed
55
+ * resolution of task type, model routing, skill availability, doc load
56
+ * order, and the new-skill gate. Audited as a policy check.
57
+ */
58
+ preflight(request: string, options?: PreflightOptions): PreflightResolution;
59
+ /**
60
+ * Agent brief: the advisor/gate state an IDE agent should consume at turn
61
+ * start — last task contract, pending signals, and the active workflow's
62
+ * ready steps (gates auto-resolved first). Written to
63
+ * .project-ai/skill-outputs/_agent-brief.md by the CLI so hooks can inject
64
+ * it and agents can read it deterministically.
65
+ */
66
+ composeBrief(): {
67
+ contract: StructuredTaskContract | null;
68
+ signals: PendingSignal[];
69
+ workflow: {
70
+ name: string;
71
+ status: string;
72
+ ready: Array<{
73
+ id: string;
74
+ type: string;
75
+ skill?: string;
76
+ skills?: string[];
77
+ }>;
78
+ } | null;
79
+ };
80
+ listWorkflows(): WorkflowSource[];
81
+ loadWorkflow(nameOrFile: string): WorkflowDefinition;
82
+ /**
83
+ * Advance the active workflow: auto-resolve every ready gate and conditional
84
+ * step (recording decisions + audit events), then return the actionable
85
+ * sequential/parallel steps whose dependencies are satisfied. Gate failures
86
+ * with fail_action STOP halt the workflow (`stopped_at_gate`) — the
87
+ * governance stop-condition, never bypassed. A failed gate with a non-STOP
88
+ * fail_action records the decision and marks the gate `skipped` so the DAG
89
+ * can continue; the branch target is advisory for the executing agent.
90
+ */
91
+ advanceWorkflow(workflow: WorkflowDefinition): {
92
+ state: WorkflowState | null;
93
+ actionable: Array<{
94
+ id: string;
95
+ type: string;
96
+ skill?: string;
97
+ skills?: string[];
98
+ }>;
99
+ resolved: Array<{
100
+ id: string;
101
+ type: 'gate' | 'conditional';
102
+ outcome: string;
103
+ }>;
104
+ };
105
+ abortWorkflow(reason: string): WorkflowState;
50
106
  adviseUserInput(request: string, options?: {
51
107
  tier?: SubscriptionTier;
52
108
  projectType?: string;
@@ -77,6 +133,12 @@ export type { MatchedSignal } from './signal-router';
77
133
  export { PolicyEnforcer } from './policy-enforcer';
78
134
  export { AuditLogger } from './audit-logger';
79
135
  export { OrchestrationAdvisor } from './advisor';
136
+ export { WorkflowLibrary } from './workflow-library';
137
+ export type { WorkflowSource } from './workflow-library';
138
+ export { detectControls, listFrameworks, evaluateFramework, buildComplianceReport, } from './compliance';
139
+ export type { DetectedControl, FrameworkCatalog, FrameworkResult, ComplianceReport, RequirementResult, } from './compliance';
140
+ export { PreflightResolver } from './preflight-resolver';
141
+ export type { PreflightOptions, PreflightResolution, SkillMatch, DocPhase, TaskType, NewSkillGate, } from './preflight-resolver';
80
142
  export { runHardeningSensors } from './hardening-sensors';
81
143
  export { BUILTIN_TRIGGERS } from './builtin-triggers';
82
144
  export * from './task-contract';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}