@devflow-tools/delivery-line 0.18.10 → 0.18.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/artifact-contract.d.ts +28 -0
- package/dist/artifacts/artifact-contract.d.ts.map +1 -0
- package/dist/artifacts/artifact-contract.js +54 -0
- package/dist/artifacts/artifact-contract.js.map +1 -0
- package/dist/artifacts/git-artifact-store.d.ts +5 -0
- package/dist/artifacts/git-artifact-store.d.ts.map +1 -1
- package/dist/artifacts/git-artifact-store.js +27 -4
- package/dist/artifacts/git-artifact-store.js.map +1 -1
- package/dist/composition.d.ts.map +1 -1
- package/dist/composition.js +2 -0
- package/dist/composition.js.map +1 -1
- package/dist/domain/state-machine.d.ts.map +1 -1
- package/dist/domain/state-machine.js +13 -1
- package/dist/domain/state-machine.js.map +1 -1
- package/dist/domain/types.d.ts +22 -7
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js.map +1 -1
- package/dist/facade/delivery-line-facade.d.ts +12 -1
- package/dist/facade/delivery-line-facade.d.ts.map +1 -1
- package/dist/facade/delivery-line-facade.js +130 -23
- package/dist/facade/delivery-line-facade.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ports/index.d.ts +15 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/runtime/change-authority.d.ts +15 -0
- package/dist/runtime/change-authority.d.ts.map +1 -0
- package/dist/runtime/change-authority.js +23 -0
- package/dist/runtime/change-authority.js.map +1 -0
- package/dist/runtime/context-binder.d.ts +13 -1
- package/dist/runtime/context-binder.d.ts.map +1 -1
- package/dist/runtime/context-binder.js +37 -5
- package/dist/runtime/context-binder.js.map +1 -1
- package/package.json +5 -4
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type ActorRef } from '../domain/types.js';
|
|
2
|
+
import type { ExecutablePlanInput } from '../runtime/plan-compiler.js';
|
|
3
|
+
export declare function renderIntentMarkdown(input: {
|
|
4
|
+
title: string;
|
|
5
|
+
problem: string;
|
|
6
|
+
outcome: string;
|
|
7
|
+
affectedSystems: string[];
|
|
8
|
+
constraints: string[];
|
|
9
|
+
successCriteria: string[];
|
|
10
|
+
nonGoals?: string[];
|
|
11
|
+
openQuestions?: string[];
|
|
12
|
+
actor: ActorRef;
|
|
13
|
+
createdAt?: number;
|
|
14
|
+
}): string;
|
|
15
|
+
export declare function renderSpecMarkdown(input: {
|
|
16
|
+
title: string;
|
|
17
|
+
option: string;
|
|
18
|
+
contextReceipt?: string;
|
|
19
|
+
actor: ActorRef;
|
|
20
|
+
createdAt?: number;
|
|
21
|
+
}): string;
|
|
22
|
+
export declare function renderPlanMarkdown(plan: ExecutablePlanInput): string;
|
|
23
|
+
export declare function renderPlanJson(plan: ExecutablePlanInput): string;
|
|
24
|
+
export declare function validateIntentMarkdown(content: string): void;
|
|
25
|
+
export declare function validateSpecMarkdown(content: string): void;
|
|
26
|
+
export declare function validatePlanMarkdown(content: string): void;
|
|
27
|
+
export declare function artifactContentHash(content: string): string;
|
|
28
|
+
//# sourceMappingURL=artifact-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-contract.d.ts","sourceRoot":"","sources":["../../src/artifacts/artifact-contract.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAUvE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAGxQ;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAEjJ;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAcpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAG1D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAA4B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { DeliveryLineError } from '../domain/types.js';
|
|
3
|
+
function digest(content) {
|
|
4
|
+
return createHash('sha256').update(content).digest('hex');
|
|
5
|
+
}
|
|
6
|
+
function requireSection(content, heading) {
|
|
7
|
+
if (!content.includes(`## ${heading}`))
|
|
8
|
+
throw new DeliveryLineError('MISSING_PREREQUISITE', `artifact is missing required section: ${heading}`);
|
|
9
|
+
}
|
|
10
|
+
export function renderIntentMarkdown(input) {
|
|
11
|
+
const list = (items) => items.length > 0 ? items.map(item => `- ${item}`).join('\n') : '- None';
|
|
12
|
+
return `# Intent: ${input.title}\n\n## Problem\n${input.problem}\n\n## Proposed outcome\n${input.outcome}\n\n## Affected users and systems\n${list(input.affectedSystems)}\n\n## Constraints\n${list(input.constraints)}\n\n## Success criteria\n${list(input.successCriteria)}\n\n## Non-goals\n${list(input.nonGoals ?? [])}\n\n## Risks\n- Risks are reviewed during design and execution.\n\n## Open questions\n${list(input.openQuestions ?? [])}\n\n## Source\n- Delivery request: ${input.title}\n\n## Provenance\n- Author: ${input.actor.id}\n- Created: ${new Date(input.createdAt ?? Date.now()).toISOString()}\n`;
|
|
13
|
+
}
|
|
14
|
+
export function renderSpecMarkdown(input) {
|
|
15
|
+
return `# Spec: ${input.title}\n\n## Decision summary\nSelected design option: ${input.option}\n\n## Alternatives considered\n- The selected option was compared with the existing implementation and rejected alternatives during the design interaction.\n\n## Architecture and data flow\n- Implement the approved option within the current Delivery Line facade and adapters.\n\n## Interfaces and data flow\n- Inputs, context receipt, approvals, task envelopes, evidence, and integration revision remain explicitly bound.\n\n## Security and permissions\n- Preserve project-root, actor, session, execution, and artifact hash boundaries.\n\n## Compatibility\n- Existing project behavior remains unchanged outside the approved task scope.\n\n## Failure modes and recovery\n- Block on stale turns, missing prerequisites, unavailable providers, or conflicting revisions.\n\n## Observability\n- Record artifact, context receipt, approval, and evidence hashes in the event ledger.\n\n## Migration and rollback\n- Roll back by reverting the integration revision; retain all delivery artifacts and evidence.\n\n## Acceptance criteria\n- The selected option is implemented only after explicit spec and plan approval.\n\n## Context Receipt\n- Receipt: ${input.contextReceipt ?? 'not supplied'}\n\n## Provenance\n- Author: ${input.actor.id}\n- Created: ${new Date(input.createdAt ?? Date.now()).toISOString()}\n`;
|
|
16
|
+
}
|
|
17
|
+
export function renderPlanMarkdown(plan) {
|
|
18
|
+
const tasks = plan.tasks.map((task, index) => [
|
|
19
|
+
`### Task ${index + 1}: ${task.title}`,
|
|
20
|
+
`- ID: ${task.id}`,
|
|
21
|
+
`- Allowed files: ${task.allowedFiles.join(', ')}`,
|
|
22
|
+
`- Depends on: ${task.dependsOn.length > 0 ? task.dependsOn.join(', ') : 'None'}`,
|
|
23
|
+
`- Implementation: ${task.implementationSteps.join('; ')}`,
|
|
24
|
+
`- Verification: ${task.verificationCommands.map(command => `${command.command} ${command.args.join(' ')}`.trim()).join('; ')}`,
|
|
25
|
+
`- Acceptance: ${task.acceptanceCriteria.join('; ')}`,
|
|
26
|
+
`- Risk: ${task.risk}`,
|
|
27
|
+
`- Rollback: ${task.rollback}`,
|
|
28
|
+
].join('\n')).join('\n\n');
|
|
29
|
+
const machineHash = digest(renderPlanJson(plan));
|
|
30
|
+
return `# Plan: ${plan.objective}\n\n## Non-goals\n${plan.nonGoals.length > 0 ? plan.nonGoals.map(item => `- ${item}`).join('\n') : '- None'}\n\n## Tasks\n${tasks}\n\n## Machine projection\n- File: plan.json\n- Canonical SHA-256: ${machineHash}\n`;
|
|
31
|
+
}
|
|
32
|
+
export function renderPlanJson(plan) {
|
|
33
|
+
return `${JSON.stringify(plan, null, 2)}\n`;
|
|
34
|
+
}
|
|
35
|
+
export function validateIntentMarkdown(content) {
|
|
36
|
+
for (const section of ['Problem', 'Proposed outcome', 'Affected users and systems', 'Constraints', 'Success criteria', 'Non-goals', 'Risks', 'Open questions', 'Source', 'Provenance'])
|
|
37
|
+
requireSection(content, section);
|
|
38
|
+
}
|
|
39
|
+
export function validateSpecMarkdown(content) {
|
|
40
|
+
for (const section of ['Decision summary', 'Alternatives considered', 'Architecture and data flow', 'Interfaces and data flow', 'Security and permissions', 'Compatibility', 'Failure modes and recovery', 'Observability', 'Migration and rollback', 'Acceptance criteria', 'Context Receipt', 'Provenance'])
|
|
41
|
+
requireSection(content, section);
|
|
42
|
+
if (/^Selected design option:\s*$/m.test(content))
|
|
43
|
+
throw new DeliveryLineError('MISSING_PREREQUISITE', 'spec decision summary must not be empty');
|
|
44
|
+
}
|
|
45
|
+
export function validatePlanMarkdown(content) {
|
|
46
|
+
for (const section of ['Non-goals', 'Tasks', 'Machine projection'])
|
|
47
|
+
requireSection(content, section);
|
|
48
|
+
if (!/### Task \d+:/.test(content))
|
|
49
|
+
throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', 'plan must contain at least one task');
|
|
50
|
+
if (/^- Allowed files:\s*$/m.test(content) || /^- Verification:\s*$/m.test(content))
|
|
51
|
+
throw new DeliveryLineError('PLAN_NOT_EXECUTABLE', 'plan tasks require allowed files and verification commands');
|
|
52
|
+
}
|
|
53
|
+
export function artifactContentHash(content) { return digest(content); }
|
|
54
|
+
//# sourceMappingURL=artifact-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifact-contract.js","sourceRoot":"","sources":["../../src/artifacts/artifact-contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export interface GitArtifactInput {
|
|
|
9
9
|
parentBlobHashes: string[];
|
|
10
10
|
createdBy: ActorRef;
|
|
11
11
|
createdAt?: number;
|
|
12
|
+
version?: number;
|
|
13
|
+
projection?: {
|
|
14
|
+
path: string;
|
|
15
|
+
content: string;
|
|
16
|
+
};
|
|
12
17
|
}
|
|
13
18
|
export declare class GitArtifactStore {
|
|
14
19
|
create(input: GitArtifactInput): Promise<ArtifactRef>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-artifact-store.d.ts","sourceRoot":"","sources":["../../src/artifacts/git-artifact-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"git-artifact-store.d.ts","sourceRoot":"","sources":["../../src/artifacts/git-artifact-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAExF,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAWD,qBAAa,gBAAgB;IACrB,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CA+C5D"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { createHash, randomUUID } from 'node:crypto';
|
|
2
2
|
import { execFileSync } from 'node:child_process';
|
|
3
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
3
5
|
import { DeliveryLineError } from '../domain/types.js';
|
|
4
6
|
async function git(repositoryPath, args, input) {
|
|
5
7
|
try {
|
|
@@ -16,7 +18,11 @@ export class GitArtifactStore {
|
|
|
16
18
|
throw new DeliveryLineError('MISSING_PREREQUISITE', 'artifact path escapes repository');
|
|
17
19
|
if (!input.content.trim())
|
|
18
20
|
throw new DeliveryLineError('MISSING_PREREQUISITE', 'artifact content required');
|
|
19
|
-
const dirty = await git(input.repositoryPath, ['status', '--porcelain'])
|
|
21
|
+
const dirty = (await git(input.repositoryPath, ['status', '--porcelain']))
|
|
22
|
+
.split('\n')
|
|
23
|
+
.filter(Boolean)
|
|
24
|
+
.filter(line => !line.slice(3).startsWith('.devflow/'))
|
|
25
|
+
.join('\n');
|
|
20
26
|
if (dirty)
|
|
21
27
|
throw new DeliveryLineError('MISSING_PREREQUISITE', 'artifact worktree must be clean');
|
|
22
28
|
const blobHash = await git(input.repositoryPath, ['hash-object', '-w', '--stdin'], input.content);
|
|
@@ -24,13 +30,20 @@ export class GitArtifactStore {
|
|
|
24
30
|
const prior = await git(input.repositoryPath, ['rev-parse', '-q', '--verify', ref]).catch(() => '');
|
|
25
31
|
const previousEntries = prior ? await git(input.repositoryPath, ['ls-tree', prior]).catch(() => '') : '';
|
|
26
32
|
const retainedEntries = previousEntries.split('\n').filter(Boolean).filter(line => line.split(/\t/)[1] !== input.path);
|
|
27
|
-
const previousHashes = retainedEntries
|
|
33
|
+
const previousHashes = retainedEntries
|
|
34
|
+
.filter(line => !line.split(/\t/)[1]?.endsWith('.json'))
|
|
35
|
+
.map(line => line.split(/\s+/)[2]).filter(Boolean);
|
|
28
36
|
if (prior && input.parentBlobHashes.length === 0)
|
|
29
37
|
throw new DeliveryLineError('ARTIFACT_HASH_MISMATCH', 'parent blob hashes required for chained artifacts');
|
|
30
38
|
if (prior && previousHashes.some(hash => !input.parentBlobHashes.includes(hash)))
|
|
31
39
|
throw new DeliveryLineError('ARTIFACT_HASH_MISMATCH', 'parent blob hash does not match artifact ref');
|
|
32
40
|
const entries = [...retainedEntries];
|
|
33
41
|
entries.push(`100644 blob ${blobHash}\t${input.path}`);
|
|
42
|
+
let projectionBlob = '';
|
|
43
|
+
if (input.projection) {
|
|
44
|
+
projectionBlob = await git(input.repositoryPath, ['hash-object', '-w', '--stdin'], input.projection.content);
|
|
45
|
+
entries.push(`100644 blob ${projectionBlob}\t${input.projection.path}`);
|
|
46
|
+
}
|
|
34
47
|
const tree = await git(input.repositoryPath, ['mktree'], `${entries.join('\n')}\n`);
|
|
35
48
|
const commitArgs = ['commit-tree', tree, '-m', `delivery artifact ${input.type}:${input.path}`];
|
|
36
49
|
if (prior)
|
|
@@ -38,10 +51,20 @@ export class GitArtifactStore {
|
|
|
38
51
|
const commit = await git(input.repositoryPath, commitArgs);
|
|
39
52
|
await git(input.repositoryPath, prior ? ['update-ref', ref, commit, prior] : ['update-ref', ref, commit]);
|
|
40
53
|
const contentHash = createHash('sha256').update(input.content).digest('hex');
|
|
41
|
-
|
|
42
|
-
id: randomUUID(), caseId: input.caseId, type: input.type, repoId: input.repoId, ref, commit, path: input.path,
|
|
54
|
+
const artifact = {
|
|
55
|
+
id: randomUUID(), version: input.version ?? 1, caseId: input.caseId, type: input.type, repoId: input.repoId, ref, commit, path: input.path,
|
|
43
56
|
blobHash, parentBlobHashes: [...input.parentBlobHashes], contentHash, createdBy: input.createdBy, createdAt: input.createdAt ?? Date.now(),
|
|
44
57
|
};
|
|
58
|
+
const home = join(input.repositoryPath, '.devflow', 'delivery-line', 'artifacts', input.caseId);
|
|
59
|
+
const projection = join(home, input.path);
|
|
60
|
+
mkdirSync(join(projection, '..'), { recursive: true });
|
|
61
|
+
writeFileSync(projection, input.content, { mode: 0o600 });
|
|
62
|
+
if (input.projection) {
|
|
63
|
+
const machineProjection = join(home, input.projection.path);
|
|
64
|
+
mkdirSync(join(machineProjection, '..'), { recursive: true });
|
|
65
|
+
writeFileSync(machineProjection, input.projection.content, { mode: 0o600 });
|
|
66
|
+
}
|
|
67
|
+
return artifact;
|
|
45
68
|
}
|
|
46
69
|
}
|
|
47
70
|
//# sourceMappingURL=git-artifact-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-artifact-store.js","sourceRoot":"","sources":["../../src/artifacts/git-artifact-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAmC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"git-artifact-store.js","sourceRoot":"","sources":["../../src/artifacts/git-artifact-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAStE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAqB,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"composition.d.ts","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAStE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAqB,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAIvF,MAAM,WAAW,8BAA8B;IAAG,SAAS,CAAC,EAAE,aAAa,CAAC;IAAC,MAAM,CAAC,EAAE,UAAU,CAAC;IAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,oBAAoB,CAAA;CAAE;AAE1K,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,8BAAmC,GAAG,kBAAkB,CAiC9H"}
|
package/dist/composition.js
CHANGED
|
@@ -11,6 +11,7 @@ import { UnavailableReviewAdapter } from './adapters/review.js';
|
|
|
11
11
|
import { GitArtifactStore } from './artifacts/git-artifact-store.js';
|
|
12
12
|
import { ContextBinder } from './runtime/context-binder.js';
|
|
13
13
|
import { OperationJournal } from './runtime/operation-journal.js';
|
|
14
|
+
import { GitChangeAuthorityAdapter } from './runtime/change-authority.js';
|
|
14
15
|
export function createDeliveryLineFacade(projectRoot, options = {}) {
|
|
15
16
|
const store = new SQLiteCaseStore(join(projectRoot, '.devflow', 'delivery-line', 'state.db'));
|
|
16
17
|
const policyPath = join(projectRoot, '.devflow', 'delivery-line', 'approval-policy.yaml');
|
|
@@ -38,6 +39,7 @@ export function createDeliveryLineFacade(projectRoot, options = {}) {
|
|
|
38
39
|
integrate: async (raw) => integration.integrate({ repositoryPath: projectRoot, ...raw }),
|
|
39
40
|
inspect: async (raw) => integration.inspect({ repositoryPath: projectRoot, ...raw }),
|
|
40
41
|
},
|
|
42
|
+
changeAuthority: new GitChangeAuthorityAdapter(),
|
|
41
43
|
approval: policy ? new PolicyApprovalAdapter({ id: 'delivery-system', kind: 'system' }, policy.version, [], policy, owners) : undefined,
|
|
42
44
|
package: new LocalDeliveryPackageAdapter(),
|
|
43
45
|
operationJournal,
|
package/dist/composition.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACvG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EAAE,aAAa,EAA6B,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"composition.js","sourceRoot":"","sources":["../src/composition.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../src/domain/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAmBhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,YAAY,CAM1F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../../src/domain/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEtF,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAQD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO,CAmBhF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,eAAe,GAAG,YAAY,CAM1F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAkB9F;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAGhE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,YAAY,CAK9D"}
|
|
@@ -50,7 +50,19 @@ export function invalidateDownstream(stage, current) {
|
|
|
50
50
|
: stage === 'plan_ready'
|
|
51
51
|
? current.approvals.filter(approval => approval.stage === 'intent' || approval.stage === 'spec')
|
|
52
52
|
: current.approvals;
|
|
53
|
-
|
|
53
|
+
const approvalStates = { ...current.approvalStates };
|
|
54
|
+
if (stage === 'clarifying')
|
|
55
|
+
delete approvalStates.intent;
|
|
56
|
+
if (stage === 'designing') {
|
|
57
|
+
delete approvalStates.spec;
|
|
58
|
+
delete approvalStates.plan;
|
|
59
|
+
delete approvalStates.release;
|
|
60
|
+
}
|
|
61
|
+
if (stage === 'plan_ready') {
|
|
62
|
+
delete approvalStates.plan;
|
|
63
|
+
delete approvalStates.release;
|
|
64
|
+
}
|
|
65
|
+
return { ...current, stage, tasks, approvals: retainedApprovals, approvalStates, evidence: invalidated.has('executing') ? [] : current.evidence, version: current.version + 1, updatedAt: Date.now() };
|
|
54
66
|
}
|
|
55
67
|
export function assertCaseCompletion(current) {
|
|
56
68
|
if (current.stage !== 'delivered')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../src/domain/state-machine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../../src/domain/state-machine.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/types.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export interface ActorRef {
|
|
|
7
7
|
}
|
|
8
8
|
export interface ArtifactRef {
|
|
9
9
|
id: string;
|
|
10
|
+
version?: number;
|
|
10
11
|
caseId: string;
|
|
11
12
|
type: 'intent' | 'spec' | 'plan' | 'interaction' | 'review' | 'delivery-package' | 'code';
|
|
12
13
|
repoId: string;
|
|
@@ -21,7 +22,7 @@ export interface ArtifactRef {
|
|
|
21
22
|
}
|
|
22
23
|
export interface EvidenceRef {
|
|
23
24
|
id: string;
|
|
24
|
-
kind: 'verification' | 'review' | 'approval' | 'interaction' | 'tool' | 'merge';
|
|
25
|
+
kind: 'verification' | 'review' | 'approval' | 'interaction' | 'tool' | 'merge' | 'export';
|
|
25
26
|
hash: string;
|
|
26
27
|
createdAt: number;
|
|
27
28
|
metadata: Record<string, unknown>;
|
|
@@ -37,6 +38,12 @@ export interface ApprovalRecord {
|
|
|
37
38
|
createdAt: number;
|
|
38
39
|
expiresAt?: number;
|
|
39
40
|
}
|
|
41
|
+
export interface ApprovalState {
|
|
42
|
+
intent?: 'pending' | 'approved' | 'rejected';
|
|
43
|
+
spec?: 'pending' | 'approved' | 'rejected';
|
|
44
|
+
plan?: 'pending' | 'approved' | 'rejected';
|
|
45
|
+
release?: 'pending' | 'approved' | 'rejected';
|
|
46
|
+
}
|
|
40
47
|
export interface DecisionRecord {
|
|
41
48
|
id: string;
|
|
42
49
|
kind: 'product' | 'technical' | 'risk' | 'execution_authority' | 'waiver';
|
|
@@ -158,6 +165,7 @@ export interface DeliveryCase {
|
|
|
158
165
|
artifacts: ArtifactRef[];
|
|
159
166
|
tasks: DeliveryTask[];
|
|
160
167
|
approvals: ApprovalRecord[];
|
|
168
|
+
approvalStates?: ApprovalState;
|
|
161
169
|
decisions: DecisionRecord[];
|
|
162
170
|
evidence: EvidenceRef[];
|
|
163
171
|
interaction: InteractionState;
|
|
@@ -169,6 +177,17 @@ export interface DeliveryCase {
|
|
|
169
177
|
updatedAt: number;
|
|
170
178
|
version: number;
|
|
171
179
|
contextReceipt?: string;
|
|
180
|
+
blockers?: DeliveryBlocker[];
|
|
181
|
+
}
|
|
182
|
+
export interface DeliveryBlocker {
|
|
183
|
+
code: string;
|
|
184
|
+
message: string;
|
|
185
|
+
responsibleRole: string;
|
|
186
|
+
taskId?: string;
|
|
187
|
+
artifactRefs: string[];
|
|
188
|
+
evidenceRefs: string[];
|
|
189
|
+
recoveryAction: string;
|
|
190
|
+
retryable: boolean;
|
|
172
191
|
}
|
|
173
192
|
export interface TaskEnvelope {
|
|
174
193
|
caseId: string;
|
|
@@ -249,11 +268,7 @@ export interface DeliveryStatusView {
|
|
|
249
268
|
stage: DeliveryStage;
|
|
250
269
|
pendingDecisions: DecisionRequest[];
|
|
251
270
|
nextActions: Array<'answer_question' | 'revise' | 'compare_options' | 'approve' | 'resume' | 'retry_task' | 'review' | 'export' | 'cancel'>;
|
|
252
|
-
blockers:
|
|
253
|
-
code: string;
|
|
254
|
-
taskId?: string;
|
|
255
|
-
evidenceRefs: string[];
|
|
256
|
-
}>;
|
|
271
|
+
blockers: DeliveryBlocker[];
|
|
257
272
|
artifactRefs: ArtifactRef[];
|
|
258
273
|
evidenceRefs: EvidenceRef[];
|
|
259
274
|
taskSummaries: Array<{
|
|
@@ -312,7 +327,7 @@ export type DeliveryEvent = {
|
|
|
312
327
|
createdAt: number;
|
|
313
328
|
processedAt?: number;
|
|
314
329
|
};
|
|
315
|
-
export type DeliveryErrorCode = 'INVALID_TRANSITION' | 'MISSING_PREREQUISITE' | 'STATE_VERSION_CONFLICT' | 'IDEMPOTENCY_CONFLICT' | 'BLOCKING_UNKNOWN' | 'STALE_INTERACTION_TURN' | 'SELF_APPROVAL' | 'ARTIFACT_HASH_MISMATCH' | 'UNAUTHORIZED_ROLE' | 'TARGET_REF_WRITE_FORBIDDEN' | 'CASE_CANCELLED' | 'BUDGET_EXCEEDED' | 'HOST_CONFORMANCE_FAILED' | 'HOST_AUTHENTICATION_REQUIRED' | 'HOST_CAPABILITY_MISSING' | 'OPERATION_NOT_FOUND' | 'PLAN_NOT_EXECUTABLE' | 'REQUIRED_CONTEXT_MISSING' | 'HOST_SWITCH_REQUIRES_AUTHORITY' | 'LEASE_FENCING_FAILED' | 'APPROVAL_OWNER_MISSING' | 'REVIEW_RECEIPT_MISSING' | 'DELIVERY_STATE_LOCKED';
|
|
330
|
+
export type DeliveryErrorCode = 'INVALID_TRANSITION' | 'MISSING_PREREQUISITE' | 'STATE_VERSION_CONFLICT' | 'IDEMPOTENCY_CONFLICT' | 'BLOCKING_UNKNOWN' | 'STALE_INTERACTION_TURN' | 'SELF_APPROVAL' | 'ARTIFACT_HASH_MISMATCH' | 'ARTIFACT_VERSION_CONFLICT' | 'UNAUTHORIZED_ROLE' | 'TARGET_REF_WRITE_FORBIDDEN' | 'CASE_CANCELLED' | 'BUDGET_EXCEEDED' | 'HOST_CONFORMANCE_FAILED' | 'HOST_AUTHENTICATION_REQUIRED' | 'HOST_CAPABILITY_MISSING' | 'OPERATION_NOT_FOUND' | 'PLAN_NOT_EXECUTABLE' | 'REQUIRED_CONTEXT_MISSING' | 'HOST_SWITCH_REQUIRES_AUTHORITY' | 'LEASE_FENCING_FAILED' | 'APPROVAL_OWNER_MISSING' | 'REVIEW_RECEIPT_MISSING' | 'DELIVERY_STATE_LOCKED' | 'CHANGE_AUTHORITY_UNAVAILABLE' | 'CHANGE_AUTHORITY_INVALID' | 'CHANGE_OUTSIDE_AUTHORITY' | 'VERIFICATION_FAILED';
|
|
316
331
|
export declare class DeliveryLineError extends Error {
|
|
317
332
|
readonly code: DeliveryErrorCode;
|
|
318
333
|
constructor(code: DeliveryErrorCode, message: string);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,OAAO,GAAG,YAAY,GAAG,iBAAiB,GAAG,WAAW,GAAG,YAAY,GACvE,eAAe,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,GAC9D,UAAU,GAAG,UAAU,GAAG,iBAAiB,GAAG,WAAW,GACzD,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,eAAe,GAAG,aAAa,GAAG,WAAW,CAAC;AAE/F,MAAM,MAAM,UAAU,GAClB,SAAS,GAAG,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,SAAS,GAClE,UAAU,GAAG,eAAe,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,QAAQ;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE;AAE3F,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,kBAAkB,GAAG,MAAM,CAAC;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,QAAQ,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"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"}
|
package/dist/domain/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/domain/types.ts"],"names":[],"mappings":"AA8SA,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACrB;IAArB,YAAqB,IAAuB,EAAE,OAAe;QAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAA3D,SAAI,GAAJ,IAAI,CAAmB;QAAqC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAA;IAAC,CAAC;CACnH"}
|
|
@@ -22,6 +22,11 @@ type CreateInput = Omit<Identity, 'contextReceipt'> & {
|
|
|
22
22
|
budgets?: Partial<DeliveryCase['budgets']>;
|
|
23
23
|
};
|
|
24
24
|
type StageApproval = 'intent' | 'spec' | 'plan' | 'release';
|
|
25
|
+
type ArtifactApprovalIdentity = {
|
|
26
|
+
artifactId?: string;
|
|
27
|
+
expectedVersion?: number;
|
|
28
|
+
expectedContentHash?: string;
|
|
29
|
+
};
|
|
25
30
|
export declare class DeliveryLineFacade {
|
|
26
31
|
private readonly ports;
|
|
27
32
|
private readonly projectRoot?;
|
|
@@ -51,7 +56,7 @@ export declare class DeliveryLineFacade {
|
|
|
51
56
|
artifactHash?: string;
|
|
52
57
|
reason?: string;
|
|
53
58
|
plan?: ExecutablePlanInput;
|
|
54
|
-
}): Promise<DeliveryStatusView>;
|
|
59
|
+
} & ArtifactApprovalIdentity): Promise<DeliveryStatusView>;
|
|
55
60
|
reject(caseId: string, input: Identity & {
|
|
56
61
|
turn: number;
|
|
57
62
|
stage: StageApproval;
|
|
@@ -61,6 +66,11 @@ export declare class DeliveryLineFacade {
|
|
|
61
66
|
retryTask(caseId: string, input: Identity & {
|
|
62
67
|
taskId: string;
|
|
63
68
|
}): Promise<DeliveryStatusView>;
|
|
69
|
+
importExternalChange(caseId: string, input: Identity & {
|
|
70
|
+
taskId: string;
|
|
71
|
+
candidateRevision: string;
|
|
72
|
+
reason: string;
|
|
73
|
+
}): Promise<DeliveryStatusView>;
|
|
64
74
|
export(caseId: string, input: Identity & {
|
|
65
75
|
path: string;
|
|
66
76
|
}): Promise<DeliveryStatusView>;
|
|
@@ -72,6 +82,7 @@ export declare class DeliveryLineFacade {
|
|
|
72
82
|
private createArtifact;
|
|
73
83
|
private evidence;
|
|
74
84
|
private view;
|
|
85
|
+
private defaultBlocker;
|
|
75
86
|
}
|
|
76
87
|
export {};
|
|
77
88
|
//# sourceMappingURL=delivery-line-facade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delivery-line-facade.d.ts","sourceRoot":"","sources":["../../src/facade/delivery-line-facade.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"delivery-line-facade.d.ts","sourceRoot":"","sources":["../../src/facade/delivery-line-facade.ts"],"names":[],"mappings":"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"}
|