@bluewombat/work-ledger 0.1.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.
- package/README.md +62 -0
- package/SPECS.md +401 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger/check-plan.d.ts +17 -0
- package/dist/ledger/check-plan.d.ts.map +1 -0
- package/dist/ledger/check-plan.js +73 -0
- package/dist/ledger/check-plan.js.map +1 -0
- package/dist/ledger/open-work-ledger.d.ts +122 -0
- package/dist/ledger/open-work-ledger.d.ts.map +1 -0
- package/dist/ledger/open-work-ledger.js +641 -0
- package/dist/ledger/open-work-ledger.js.map +1 -0
- package/dist/persist/port.d.ts +13 -0
- package/dist/persist/port.d.ts.map +1 -0
- package/dist/persist/port.js +2 -0
- package/dist/persist/port.js.map +1 -0
- package/dist/records.d.ts +125 -0
- package/dist/records.d.ts.map +1 -0
- package/dist/records.js +3 -0
- package/dist/records.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { PersistencePort } from "../persist/port.js";
|
|
2
|
+
import type { EscalationKind, FeatureAggregate, FeatureIntention, FeatureSummary, RefusalCode, TraceRecord } from "../records.js";
|
|
3
|
+
import { type PlanDraft } from "./check-plan.js";
|
|
4
|
+
export type FeatureAdmission = FeatureIntention;
|
|
5
|
+
export type CommandOk = {
|
|
6
|
+
ok: true;
|
|
7
|
+
};
|
|
8
|
+
export type CommandRefused = {
|
|
9
|
+
ok: false;
|
|
10
|
+
code: RefusalCode;
|
|
11
|
+
};
|
|
12
|
+
export type CommandResult = CommandOk | CommandRefused;
|
|
13
|
+
export type ClaimResult = {
|
|
14
|
+
ok: true;
|
|
15
|
+
key: string;
|
|
16
|
+
} | {
|
|
17
|
+
ok: true;
|
|
18
|
+
empty: true;
|
|
19
|
+
} | CommandRefused;
|
|
20
|
+
export type GetResult = {
|
|
21
|
+
ok: true;
|
|
22
|
+
aggregate: FeatureAggregate;
|
|
23
|
+
} | {
|
|
24
|
+
ok: false;
|
|
25
|
+
code: "not-found";
|
|
26
|
+
};
|
|
27
|
+
export type OpenWorkLedgerOptions = {
|
|
28
|
+
persist: PersistencePort;
|
|
29
|
+
now?: () => number;
|
|
30
|
+
bailDurationMs?: number;
|
|
31
|
+
};
|
|
32
|
+
export type EscalateInput = {
|
|
33
|
+
key: string;
|
|
34
|
+
kind: EscalationKind;
|
|
35
|
+
subtaskId?: string;
|
|
36
|
+
/** Why it stopped. Kept so the person who reads the escalation is told. */
|
|
37
|
+
report?: string;
|
|
38
|
+
};
|
|
39
|
+
export type RecordAttemptInput = {
|
|
40
|
+
key: string;
|
|
41
|
+
subtaskId: string;
|
|
42
|
+
number: number;
|
|
43
|
+
trace?: TraceRecord;
|
|
44
|
+
};
|
|
45
|
+
export type DeclareWorkspaceInput = {
|
|
46
|
+
key: string;
|
|
47
|
+
feature?: string;
|
|
48
|
+
subtask?: string;
|
|
49
|
+
};
|
|
50
|
+
export type ClearWorkspaceInput = {
|
|
51
|
+
key: string;
|
|
52
|
+
feature?: boolean;
|
|
53
|
+
subtask?: boolean;
|
|
54
|
+
};
|
|
55
|
+
export type DeclaredWorkspace = {
|
|
56
|
+
key: string;
|
|
57
|
+
feature?: string;
|
|
58
|
+
subtask?: string;
|
|
59
|
+
};
|
|
60
|
+
export type WorkLedger = {
|
|
61
|
+
admit(feature: FeatureAdmission): Promise<CommandResult>;
|
|
62
|
+
recordInvalid(input: {
|
|
63
|
+
key: string;
|
|
64
|
+
project: string;
|
|
65
|
+
code: string;
|
|
66
|
+
reason: string;
|
|
67
|
+
/** Of what was received, so the same invalid intention is known as such. */
|
|
68
|
+
fingerprint?: string;
|
|
69
|
+
priority?: number;
|
|
70
|
+
}): Promise<CommandResult>;
|
|
71
|
+
claim(project: string): Promise<ClaimResult>;
|
|
72
|
+
recordPlan(input: {
|
|
73
|
+
key: string;
|
|
74
|
+
plannedAt: string;
|
|
75
|
+
subtasks: PlanDraft[];
|
|
76
|
+
}): Promise<CommandResult>;
|
|
77
|
+
refusePlan(input: {
|
|
78
|
+
key: string;
|
|
79
|
+
code: string;
|
|
80
|
+
reason: string;
|
|
81
|
+
}): Promise<CommandResult>;
|
|
82
|
+
startSubtask(input: {
|
|
83
|
+
key: string;
|
|
84
|
+
subtaskId: string;
|
|
85
|
+
}): Promise<CommandResult>;
|
|
86
|
+
recordAttempt(input: RecordAttemptInput): Promise<CommandResult>;
|
|
87
|
+
markSubtaskIntegrated(input: {
|
|
88
|
+
key: string;
|
|
89
|
+
subtaskId: string;
|
|
90
|
+
}): Promise<CommandResult>;
|
|
91
|
+
markSubmitted(input: {
|
|
92
|
+
key: string;
|
|
93
|
+
reference: string;
|
|
94
|
+
}): Promise<CommandResult>;
|
|
95
|
+
recordRefusal(input: {
|
|
96
|
+
key: string;
|
|
97
|
+
report: string;
|
|
98
|
+
refusedBy?: string;
|
|
99
|
+
}): Promise<CommandResult>;
|
|
100
|
+
markMerging(key: string): Promise<CommandResult>;
|
|
101
|
+
markDone(key: string, input?: {
|
|
102
|
+
reference?: string | undefined;
|
|
103
|
+
}): Promise<CommandResult>;
|
|
104
|
+
escalate(input: EscalateInput): Promise<CommandResult>;
|
|
105
|
+
resumeReady(key: string): Promise<CommandResult>;
|
|
106
|
+
cancel(key: string): Promise<CommandResult>;
|
|
107
|
+
declareWorkspace(input: DeclareWorkspaceInput): Promise<CommandResult>;
|
|
108
|
+
clearWorkspace(input: ClearWorkspaceInput): Promise<CommandResult>;
|
|
109
|
+
expireBail(key: string): Promise<CommandResult>;
|
|
110
|
+
renewBail(key: string): Promise<CommandResult>;
|
|
111
|
+
get(key: string): Promise<GetResult>;
|
|
112
|
+
/** Every known Feature, whatever its state. */
|
|
113
|
+
list(): Promise<FeatureSummary[]>;
|
|
114
|
+
/** Every Feature mid-flight, whatever its Project. */
|
|
115
|
+
listInFlight(): Promise<FeatureSummary[]>;
|
|
116
|
+
activeOn(project: string): Promise<FeatureSummary | undefined>;
|
|
117
|
+
nextReceived(project: string): Promise<FeatureSummary | undefined>;
|
|
118
|
+
nextRunnable(key: string): Promise<string | undefined>;
|
|
119
|
+
listDeclaredWorkspaces(): Promise<DeclaredWorkspace[]>;
|
|
120
|
+
};
|
|
121
|
+
export declare function openWorkLedger(options: OpenWorkLedgerOptions): WorkLedger;
|
|
122
|
+
//# sourceMappingURL=open-work-ledger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-work-ledger.d.ts","sourceRoot":"","sources":["../../src/ledger/open-work-ledger.ts"],"names":[],"mappings":"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"}
|