@sublang/playbook 5.0.0 → 7.0.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 +22 -14
- package/docs/cli.md +138 -90
- package/docs/configuration.md +113 -29
- package/docs/embedding.md +24 -16
- package/package.json +42 -21
- package/reference/sdlc/captain.playbook/captain.playbook.js +2 -0
- package/reference/sdlc/captain.playbook/captain.playbook.ts +2 -0
- package/reference/sdlc/code.md +55 -97
- package/reference/sdlc/code.playbook/bin/launch-config.js +938 -0
- package/reference/sdlc/code.playbook/bin/playbook.js +145 -562
- package/reference/sdlc/code.playbook/bin/provision.js +84 -38
- package/reference/sdlc/code.playbook/bin/run.js +1171 -983
- package/reference/sdlc/code.playbook/bin/session-store.js +1169 -0
- package/reference/sdlc/code.playbook/code.fsm.d.ts +229 -94
- package/reference/sdlc/code.playbook/code.fsm.introspect.d.ts +26 -44
- package/reference/sdlc/code.playbook/code.fsm.introspect.js +61 -66
- package/reference/sdlc/code.playbook/code.fsm.introspect.ts +100 -149
- package/reference/sdlc/code.playbook/code.fsm.js +587 -1347
- package/reference/sdlc/code.playbook/code.fsm.ts +809 -1650
- package/reference/sdlc/code.playbook/code.gears.md +51 -263
- package/reference/sdlc/code.playbook/code.playbook.d.ts +8 -47
- package/reference/sdlc/code.playbook/code.playbook.js +69 -656
- package/reference/sdlc/code.playbook/code.playbook.ts +90 -867
- package/reference/sdlc/code.playbook/code.registry.d.ts +9 -25
- package/reference/sdlc/code.playbook/code.registry.js +20 -78
- package/reference/sdlc/code.playbook/code.registry.ts +58 -122
- package/reference/sdlc/code.playbook/playbook-captain.d.ts +70 -3
- package/reference/sdlc/code.playbook/playbook-captain.js +954 -80
- package/reference/sdlc/code.playbook/playbook-captain.ts +1408 -80
- package/reference/sdlc/code.playbook/playbook.config.template.yaml +37 -36
- package/reference/sdlc/decide.md +54 -0
- package/reference/sdlc/decide.playbook/decide.fsm.d.ts +261 -0
- package/reference/sdlc/decide.playbook/decide.fsm.js +894 -0
- package/reference/sdlc/decide.playbook/decide.fsm.ts +1152 -0
- package/reference/sdlc/decide.playbook/decide.gears.md +88 -0
- package/reference/sdlc/decide.playbook/decide.playbook.d.ts +67 -0
- package/reference/sdlc/{discuss.playbook/discuss.playbook.js → decide.playbook/decide.playbook.js} +545 -372
- package/reference/sdlc/{discuss.playbook/discuss.playbook.ts → decide.playbook/decide.playbook.ts} +665 -454
- package/reference/sdlc/decide.playbook/decide.registry.d.ts +41 -0
- package/reference/sdlc/decide.playbook/decide.registry.js +60 -0
- package/reference/sdlc/decide.playbook/decide.registry.ts +125 -0
- package/reference/sdlc/review.md +81 -0
- package/reference/sdlc/review.playbook/review.fsm.d.ts +183 -0
- package/reference/sdlc/review.playbook/review.fsm.js +524 -0
- package/reference/sdlc/review.playbook/review.fsm.ts +652 -0
- package/reference/sdlc/review.playbook/review.gears.md +112 -0
- package/reference/sdlc/review.playbook/review.playbook.d.ts +12 -0
- package/reference/sdlc/review.playbook/review.playbook.js +112 -0
- package/reference/sdlc/review.playbook/review.playbook.ts +201 -0
- package/reference/sdlc/review.playbook/review.registry.d.ts +43 -0
- package/reference/sdlc/review.playbook/review.registry.js +73 -0
- package/reference/sdlc/review.playbook/review.registry.ts +138 -0
- package/slc/gears2fsm.md +13 -4
- package/slc/link.md +83 -14
- package/slc/text2gears.md +22 -2
- package/src/runtime.d.ts +21 -2
- package/src/runtime.ts +38 -6
- package/src/xstate-playbook-runtime.d.ts +9 -2
- package/src/xstate-playbook-runtime.js +319 -35
- package/src/xstate-playbook-runtime.ts +412 -41
- package/src/xstate-runtime.d.ts +19 -2
- package/src/xstate-runtime.js +384 -57
- package/src/xstate-runtime.ts +542 -71
- package/reference/sdlc/discuss.md +0 -93
- package/reference/sdlc/discuss.playbook/discuss.fsm.d.ts +0 -396
- package/reference/sdlc/discuss.playbook/discuss.fsm.js +0 -2067
- package/reference/sdlc/discuss.playbook/discuss.fsm.ts +0 -2465
- package/reference/sdlc/discuss.playbook/discuss.gears.md +0 -258
- package/reference/sdlc/discuss.playbook/discuss.playbook.d.ts +0 -113
- package/reference/sdlc/discuss.playbook/discuss.registry.d.ts +0 -58
- package/reference/sdlc/discuss.playbook/discuss.registry.js +0 -97
- package/reference/sdlc/discuss.playbook/discuss.registry.ts +0 -153
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
<!-- SPDX-License-Identifier: Apache-2.0 -->
|
|
2
|
-
<!-- SPDX-FileCopyrightText: 2026 SubLang International <https://sublang.ai> -->
|
|
3
|
-
|
|
4
|
-
# Discuss
|
|
5
|
-
|
|
6
|
-
Players:
|
|
7
|
-
|
|
8
|
-
- Host
|
|
9
|
-
- Participant
|
|
10
|
-
- Committer = Host | Participant
|
|
11
|
-
|
|
12
|
-
When Boss gives a topic, Captain shall relay it to both players concurrently and independently, without waiting for either proposal before asking the other, along with the following prompt:
|
|
13
|
-
|
|
14
|
-
> Assess whether Boss's topic above is better expressed as a few spec items (per @specs/meta.md) or requires one or more DRs added to @specs/decisions/.
|
|
15
|
-
> Consult @specs/map.md, if necessary, to find relevant context.
|
|
16
|
-
> Each DR should be coherent and focused.
|
|
17
|
-
> Propose your design in reply.
|
|
18
|
-
> DRs, if any, need not include full detail here — describe the key points at a high level.
|
|
19
|
-
> Don't change any code.
|
|
20
|
-
|
|
21
|
-
The initial discussion shall go round by round.
|
|
22
|
-
In each round, Captain shall prompt both players concurrently.
|
|
23
|
-
Both players each shall make a new proposal using only the completed proposals from the previous round; neither shall see the other's current-round result before replying.
|
|
24
|
-
Captain shall join both results before beginning the next round, using the following prompt:
|
|
25
|
-
|
|
26
|
-
> Consider the other agent's proposal below.
|
|
27
|
-
> (1) If there are essentially different points (including creation or division of DRs), list them, accept any reasonable ones, and challenge the rest with strong reasoning, solid evidence, and comprehensive thinking — make your argument.
|
|
28
|
-
> (2) Only if your proposal of the previous round is equivalent to the other's, with nothing to reconcile, state the end of initial discussion.
|
|
29
|
-
> Don't change any code.
|
|
30
|
-
|
|
31
|
-
A Boss interrupt into parallel discussion shall restart the whole initial-proposal or reconciliation round so both independent branches receive one coherent prior-round input. An individual branch that asks Boss a question may still resume on its own; branch working states are not Boss-interrupt destinations.
|
|
32
|
-
|
|
33
|
-
When both players state the end of initial discussion, Captain shall ask Host to write spec items or DRs according to the agreement, along with the following prompt:
|
|
34
|
-
|
|
35
|
-
> Update @specs/map.md to reflect your changes (if any) when done.
|
|
36
|
-
|
|
37
|
-
When Committer commits at the end of the initial discussion, or when Host addresses findings with changes, Captain shall ask Participant to review the spec changes in a round, without waiting for Boss.
|
|
38
|
-
In the first step of each round, Participant shall review the latest changes, address any rebuttals, and raise any findings.
|
|
39
|
-
In the second step of each round, Host shall address any findings.
|
|
40
|
-
Rounds continue until Participant raises no findings.
|
|
41
|
-
|
|
42
|
-
Spec item files are the files under @specs/ that hold spec items — @specs/packages/ and @specs/compositions/ in the current layout, or @specs/user/, @specs/dev/, and @specs/test/ in the legacy one; decision and intent records (iteration records in older scaffolds), @specs/map.md, and @specs/meta.md are not spec item files.
|
|
43
|
-
|
|
44
|
-
While any new or updated spec item (in spec item files) is under review, Captain shall include the following prompt for Participant:
|
|
45
|
-
|
|
46
|
-
> Verify any new or updated spec items are:
|
|
47
|
-
>
|
|
48
|
-
> - Complete & coherent: sufficient for you to reimplement code.
|
|
49
|
-
> - Right level: external behavior users rely on or internal system behavior (organized per @specs/meta.md), not implementation specifics; integration/system testing, not unit testing.
|
|
50
|
-
> - Minimal: essential and concise; every item earns its place; also check with other items.
|
|
51
|
-
> - Well organized: spec packages are finely scoped, with high cohesion and low coupling.
|
|
52
|
-
>
|
|
53
|
-
> Flag anything missing, redundant, over-specified, or under-specified.
|
|
54
|
-
|
|
55
|
-
While any new or updated DR is under review, Captain shall include the following prompt for Participant:
|
|
56
|
-
|
|
57
|
-
> Review any new/updated decision following @specs/meta.md (reread if necessary).
|
|
58
|
-
> Flag any issues or propose any design suggestions (numbered; no duplication), with strong reasoning and evidence.
|
|
59
|
-
> Key statements must be backed by references unless they are common sense or widely acknowledged best practices.
|
|
60
|
-
>
|
|
61
|
-
> If the decision is well-thought-out and well-written, don't raise nitpicks.
|
|
62
|
-
> Remember to keep the DR simple and minimal.
|
|
63
|
-
|
|
64
|
-
When Participant begins any review, Captain shall include the following prompt:
|
|
65
|
-
|
|
66
|
-
> Think thoroughly — don't just approve or reject.
|
|
67
|
-
> For context discovery, consult @specs/map.md; @specs/meta.md describes the spec format.
|
|
68
|
-
> Verify @specs/map.md reflects the changes.
|
|
69
|
-
> If the change is ready to commit or push, don't raise nitpicks.
|
|
70
|
-
> Do not edit files or commit; report findings only.
|
|
71
|
-
|
|
72
|
-
When Participant raises any findings, Captain shall relay them to Host along with the following prompt:
|
|
73
|
-
|
|
74
|
-
> For each review item below for the above changes, challenge or accept it, with strong reasoning, solid evidence, and comprehensive thinking.
|
|
75
|
-
> Stage all current changes that belong in the repo before making any edits, and leave your edits unstaged/untracked.
|
|
76
|
-
|
|
77
|
-
When Host raises any rebuttals, Captain shall relay them to Participant along with the following prompt:
|
|
78
|
-
|
|
79
|
-
> For each rebuttal below, challenge or accept it, with strong reasoning, solid evidence, and comprehensive thinking.
|
|
80
|
-
|
|
81
|
-
When the spec items or DRs are written at the end of the initial discussion, or Participant raises no findings on uncommitted changes, Captain shall ask Committer to commit with the following prompt:
|
|
82
|
-
|
|
83
|
-
> Then make a commit of the changes that belong in the repo, following @specs/packages/git.md (reread if necessary).
|
|
84
|
-
> If that spec is absent, follow the legacy @specs/dev/git.md; if neither exists, follow the repository's existing commit conventions and do not search elsewhere.
|
|
85
|
-
> Write the commit message concisely.
|
|
86
|
-
> Host is \<host-llm\>.
|
|
87
|
-
> Participant is \<participant-llm\>.
|
|
88
|
-
|
|
89
|
-
`<*-llm>` shall be the conventional human form of the substituted ID (e.g., `claude-opus-4-7` → `Claude-Opus-4.7`, `gpt-5.5` → `GPT-5.5`).
|
|
90
|
-
|
|
91
|
-
For the initial-discussion commit outcome, any adjudicated `reviewScope`
|
|
92
|
-
payload shall be exactly `specItems`, `decisionRecords`, or `mixed`; a prose
|
|
93
|
-
summary is not a review scope.
|
|
@@ -1,396 +0,0 @@
|
|
|
1
|
-
type Player = 'Host' | 'Participant' | 'Committer';
|
|
2
|
-
type ReviewScope = 'specItems' | 'decisionRecords' | 'mixed';
|
|
3
|
-
type JumpableStateId = 'ready' | 'initialProposalRound' | 'reconciliationRound' | 'hostWritesAgreement' | 'commitInitialChanges' | 'reviewSpecInitialCommit' | 'reviewSpecHostChanges' | 'reviewDrInitialCommit' | 'reviewDrHostChanges' | 'reviewMixedInitialCommit' | 'reviewMixedHostChanges' | 'hostAddressesFindings' | 'participantAddressesRebuttals' | 'commitReviewedChanges' | 'failed';
|
|
4
|
-
type ResumableStateId = 'askHostInitial' | 'askParticipantInitial' | 'hostInitialRound' | 'participantInitialRound' | Exclude<JumpableStateId, 'ready' | 'initialProposalRound' | 'reconciliationRound' | 'failed'>;
|
|
5
|
-
export interface PendingBossQuestion {
|
|
6
|
-
questionId: ResumableStateId;
|
|
7
|
-
resumeStateId: ResumableStateId;
|
|
8
|
-
sourceItem: string;
|
|
9
|
-
player: Player;
|
|
10
|
-
question: string;
|
|
11
|
-
}
|
|
12
|
-
type PendingBossQuestions = Partial<Record<ResumableStateId, PendingBossQuestion>>;
|
|
13
|
-
type BossReplies = Partial<Record<ResumableStateId, string>>;
|
|
14
|
-
type PendingBossQuestionParams = Omit<PendingBossQuestion, 'questionId'>;
|
|
15
|
-
export interface DiscussContext {
|
|
16
|
-
hostPlayer?: string;
|
|
17
|
-
participantPlayer?: string;
|
|
18
|
-
committerPlayer?: string;
|
|
19
|
-
topic?: string;
|
|
20
|
-
hostLlm?: string;
|
|
21
|
-
participantLlm?: string;
|
|
22
|
-
hostProposal?: string;
|
|
23
|
-
participantProposal?: string;
|
|
24
|
-
agreement?: string;
|
|
25
|
-
latestChanges?: string;
|
|
26
|
-
reviewScope?: ReviewScope;
|
|
27
|
-
reviewItems?: string;
|
|
28
|
-
rebuttals?: string;
|
|
29
|
-
lastResult?: PlayerOutput;
|
|
30
|
-
lastError?: unknown;
|
|
31
|
-
pendingBossQuestions?: PendingBossQuestions;
|
|
32
|
-
bossReplies?: BossReplies;
|
|
33
|
-
stagedHostResult?: PlayerOutput;
|
|
34
|
-
stagedParticipantResult?: PlayerOutput;
|
|
35
|
-
}
|
|
36
|
-
export type DiscussEvent = {
|
|
37
|
-
type: 'START_DISCUSSION';
|
|
38
|
-
topic: string;
|
|
39
|
-
hostLlm?: string;
|
|
40
|
-
participantLlm?: string;
|
|
41
|
-
} | {
|
|
42
|
-
type: 'START_REVIEW';
|
|
43
|
-
latestChanges: string;
|
|
44
|
-
reviewScope: ReviewScope;
|
|
45
|
-
rebuttals?: string;
|
|
46
|
-
} | {
|
|
47
|
-
type: 'BOSS_INTERRUPT';
|
|
48
|
-
targetId: JumpableStateId;
|
|
49
|
-
} | {
|
|
50
|
-
type: 'BOSS_REPLY';
|
|
51
|
-
questionId?: ResumableStateId;
|
|
52
|
-
answer: string;
|
|
53
|
-
};
|
|
54
|
-
export interface DiscussInput {
|
|
55
|
-
host?: string;
|
|
56
|
-
participant?: string;
|
|
57
|
-
committer?: string;
|
|
58
|
-
}
|
|
59
|
-
export interface PlayerInput {
|
|
60
|
-
stateId: ResumableStateId;
|
|
61
|
-
sourceItem: string;
|
|
62
|
-
prompt: string;
|
|
63
|
-
result: Record<string, string>;
|
|
64
|
-
player: Player;
|
|
65
|
-
topic?: string;
|
|
66
|
-
hostLlm?: string;
|
|
67
|
-
participantLlm?: string;
|
|
68
|
-
hostProposal?: string;
|
|
69
|
-
participantProposal?: string;
|
|
70
|
-
agreement?: string;
|
|
71
|
-
latestChanges?: string;
|
|
72
|
-
reviewScope?: ReviewScope;
|
|
73
|
-
reviewItems?: string;
|
|
74
|
-
rebuttals?: string;
|
|
75
|
-
hostPlayer?: string;
|
|
76
|
-
participantPlayer?: string;
|
|
77
|
-
committerPlayer?: string;
|
|
78
|
-
pendingBossQuestion?: PendingBossQuestion;
|
|
79
|
-
bossReply?: string;
|
|
80
|
-
}
|
|
81
|
-
type AdditionalPlayerFields = {
|
|
82
|
-
proposal?: string;
|
|
83
|
-
agreement?: string;
|
|
84
|
-
latestChanges?: string;
|
|
85
|
-
reviewScope?: ReviewScope;
|
|
86
|
-
reviewItems?: string;
|
|
87
|
-
rebuttals?: string;
|
|
88
|
-
question?: string;
|
|
89
|
-
readonly [key: string]: unknown;
|
|
90
|
-
};
|
|
91
|
-
export type PlayerOutput = ({
|
|
92
|
-
guard: 'proposalMade';
|
|
93
|
-
proposal: string;
|
|
94
|
-
} & AdditionalPlayerFields) | ({
|
|
95
|
-
guard: 'endedInitialDiscussion';
|
|
96
|
-
agreement?: string;
|
|
97
|
-
} & AdditionalPlayerFields) | ({
|
|
98
|
-
guard: 'wroteChanges';
|
|
99
|
-
latestChanges: string;
|
|
100
|
-
reviewScope: ReviewScope;
|
|
101
|
-
} & AdditionalPlayerFields) | ({
|
|
102
|
-
guard: 'committed';
|
|
103
|
-
latestChanges?: string;
|
|
104
|
-
reviewScope?: ReviewScope;
|
|
105
|
-
} & AdditionalPlayerFields) | ({
|
|
106
|
-
guard: 'noFindings';
|
|
107
|
-
} & AdditionalPlayerFields) | ({
|
|
108
|
-
guard: 'findingsRaised';
|
|
109
|
-
reviewItems: string;
|
|
110
|
-
} & AdditionalPlayerFields) | ({
|
|
111
|
-
guard: 'changesMade';
|
|
112
|
-
latestChanges?: string;
|
|
113
|
-
reviewScope?: ReviewScope;
|
|
114
|
-
} & AdditionalPlayerFields) | ({
|
|
115
|
-
guard: 'rebuttalsRaised';
|
|
116
|
-
rebuttals: string;
|
|
117
|
-
} & AdditionalPlayerFields) | ({
|
|
118
|
-
guard: 'rebuttalsAddressed';
|
|
119
|
-
rebuttals?: string;
|
|
120
|
-
} & AdditionalPlayerFields) | ({
|
|
121
|
-
guard: 'needsBossReply';
|
|
122
|
-
question: string;
|
|
123
|
-
} & AdditionalPlayerFields);
|
|
124
|
-
type DiscussActionName = 'copyStartDiscussion' | 'copyStartReview' | 'rememberHostProposal' | 'rememberParticipantProposal' | 'rememberAgreement' | 'rememberWrittenChanges' | 'rememberCommittedChanges' | 'rememberReviewFindings' | 'rememberHostReviewResponse' | 'rememberParticipantRebuttalResponse' | 'rememberCaptainResult' | 'rememberCaptainError' | 'rememberMalformedCaptainOutput' | 'rememberMalformedBossReply' | 'setPendingBossQuestion' | 'rememberBossReply' | 'clearBranchBossReplyContext' | 'clearParallelRoundContext' | 'clearBossReplyContext';
|
|
125
|
-
declare function bossInterrupts(ids: readonly JumpableStateId[], actions?: DiscussActionName | DiscussActionName[]): any[];
|
|
126
|
-
declare function resumableStates(ids: readonly string[]): any[];
|
|
127
|
-
export declare const discussMachine: import("xstate").StateMachine<DiscussContext, {
|
|
128
|
-
type: "START_DISCUSSION";
|
|
129
|
-
topic: string;
|
|
130
|
-
hostLlm?: string;
|
|
131
|
-
participantLlm?: string;
|
|
132
|
-
} | {
|
|
133
|
-
type: "START_REVIEW";
|
|
134
|
-
latestChanges: string;
|
|
135
|
-
reviewScope: ReviewScope;
|
|
136
|
-
rebuttals?: string;
|
|
137
|
-
} | {
|
|
138
|
-
type: "BOSS_INTERRUPT";
|
|
139
|
-
targetId: JumpableStateId;
|
|
140
|
-
} | {
|
|
141
|
-
type: "BOSS_REPLY";
|
|
142
|
-
questionId?: ResumableStateId;
|
|
143
|
-
answer: string;
|
|
144
|
-
}, {
|
|
145
|
-
[x: string]: import("xstate").ActorRefFromLogic<import("xstate").PromiseActorLogic<PlayerOutput, PlayerInput, import("xstate").EventObject>> | undefined;
|
|
146
|
-
}, {
|
|
147
|
-
src: "player";
|
|
148
|
-
logic: import("xstate").PromiseActorLogic<PlayerOutput, PlayerInput, import("xstate").EventObject>;
|
|
149
|
-
id: string | undefined;
|
|
150
|
-
}, {
|
|
151
|
-
type: "copyStartDiscussion";
|
|
152
|
-
params: import("xstate").NonReducibleUnknown;
|
|
153
|
-
} | {
|
|
154
|
-
type: "copyStartReview";
|
|
155
|
-
params: import("xstate").NonReducibleUnknown;
|
|
156
|
-
} | {
|
|
157
|
-
type: "rememberHostProposal";
|
|
158
|
-
params: import("xstate").NonReducibleUnknown;
|
|
159
|
-
} | {
|
|
160
|
-
type: "rememberParticipantProposal";
|
|
161
|
-
params: import("xstate").NonReducibleUnknown;
|
|
162
|
-
} | {
|
|
163
|
-
type: "rememberAgreement";
|
|
164
|
-
params: import("xstate").NonReducibleUnknown;
|
|
165
|
-
} | {
|
|
166
|
-
type: "rememberWrittenChanges";
|
|
167
|
-
params: import("xstate").NonReducibleUnknown;
|
|
168
|
-
} | {
|
|
169
|
-
type: "rememberCommittedChanges";
|
|
170
|
-
params: import("xstate").NonReducibleUnknown;
|
|
171
|
-
} | {
|
|
172
|
-
type: "rememberReviewFindings";
|
|
173
|
-
params: import("xstate").NonReducibleUnknown;
|
|
174
|
-
} | {
|
|
175
|
-
type: "rememberHostReviewResponse";
|
|
176
|
-
params: import("xstate").NonReducibleUnknown;
|
|
177
|
-
} | {
|
|
178
|
-
type: "rememberParticipantRebuttalResponse";
|
|
179
|
-
params: import("xstate").NonReducibleUnknown;
|
|
180
|
-
} | {
|
|
181
|
-
type: "rememberCaptainResult";
|
|
182
|
-
params: import("xstate").NonReducibleUnknown;
|
|
183
|
-
} | {
|
|
184
|
-
type: "rememberCaptainError";
|
|
185
|
-
params: import("xstate").NonReducibleUnknown;
|
|
186
|
-
} | {
|
|
187
|
-
type: "rememberMalformedCaptainOutput";
|
|
188
|
-
params: import("xstate").NonReducibleUnknown;
|
|
189
|
-
} | {
|
|
190
|
-
type: "rememberMalformedBossReply";
|
|
191
|
-
params: import("xstate").NonReducibleUnknown;
|
|
192
|
-
} | {
|
|
193
|
-
type: "setPendingBossQuestion";
|
|
194
|
-
params: PendingBossQuestionParams;
|
|
195
|
-
} | {
|
|
196
|
-
type: "rememberBossReply";
|
|
197
|
-
params: import("xstate").NonReducibleUnknown;
|
|
198
|
-
} | {
|
|
199
|
-
type: "clearBranchBossReplyContext";
|
|
200
|
-
params: {
|
|
201
|
-
stateId: ResumableStateId;
|
|
202
|
-
};
|
|
203
|
-
} | {
|
|
204
|
-
type: "clearParallelRoundContext";
|
|
205
|
-
params: import("xstate").NonReducibleUnknown;
|
|
206
|
-
} | {
|
|
207
|
-
type: "clearBossReplyContext";
|
|
208
|
-
params: import("xstate").NonReducibleUnknown;
|
|
209
|
-
} | {
|
|
210
|
-
type: "stageHostResult";
|
|
211
|
-
params: import("xstate").NonReducibleUnknown;
|
|
212
|
-
} | {
|
|
213
|
-
type: "stageParticipantResult";
|
|
214
|
-
params: import("xstate").NonReducibleUnknown;
|
|
215
|
-
} | {
|
|
216
|
-
type: "promoteInitialResults";
|
|
217
|
-
params: import("xstate").NonReducibleUnknown;
|
|
218
|
-
} | {
|
|
219
|
-
type: "promoteReconciliationResults";
|
|
220
|
-
params: import("xstate").NonReducibleUnknown;
|
|
221
|
-
}, {
|
|
222
|
-
type: "noFindings";
|
|
223
|
-
params: unknown;
|
|
224
|
-
} | {
|
|
225
|
-
type: "committed";
|
|
226
|
-
params: unknown;
|
|
227
|
-
} | {
|
|
228
|
-
type: "proposalMade";
|
|
229
|
-
params: unknown;
|
|
230
|
-
} | {
|
|
231
|
-
type: "endedInitialDiscussion";
|
|
232
|
-
params: unknown;
|
|
233
|
-
} | {
|
|
234
|
-
type: "wroteChanges";
|
|
235
|
-
params: unknown;
|
|
236
|
-
} | {
|
|
237
|
-
type: "findingsRaised";
|
|
238
|
-
params: unknown;
|
|
239
|
-
} | {
|
|
240
|
-
type: "changesMade";
|
|
241
|
-
params: unknown;
|
|
242
|
-
} | {
|
|
243
|
-
type: "rebuttalsRaised";
|
|
244
|
-
params: unknown;
|
|
245
|
-
} | {
|
|
246
|
-
type: "rebuttalsAddressed";
|
|
247
|
-
params: unknown;
|
|
248
|
-
} | {
|
|
249
|
-
type: "needsBossReplyWithQuestion";
|
|
250
|
-
params: unknown;
|
|
251
|
-
} | {
|
|
252
|
-
type: "needsBossReplyWithoutQuestion";
|
|
253
|
-
params: unknown;
|
|
254
|
-
} | {
|
|
255
|
-
type: "emptyBossReply";
|
|
256
|
-
params: unknown;
|
|
257
|
-
} | {
|
|
258
|
-
type: "bothEndedInitialDiscussion";
|
|
259
|
-
params: unknown;
|
|
260
|
-
} | {
|
|
261
|
-
type: "specReview";
|
|
262
|
-
params: unknown;
|
|
263
|
-
} | {
|
|
264
|
-
type: "drReview";
|
|
265
|
-
params: unknown;
|
|
266
|
-
} | {
|
|
267
|
-
type: "mixedReview";
|
|
268
|
-
params: unknown;
|
|
269
|
-
}, never, "done" | "failed" | "awaitBossReply" | "ready" | "hostWritesAgreement" | "commitInitialChanges" | "reviewSpecInitialCommit" | "reviewSpecHostChanges" | "reviewDrInitialCommit" | "reviewDrHostChanges" | "reviewMixedInitialCommit" | "reviewMixedHostChanges" | "hostAddressesFindings" | "participantAddressesRebuttals" | "commitReviewedChanges" | {
|
|
270
|
-
initialProposalRound: {
|
|
271
|
-
host: "working" | "waiting" | "complete";
|
|
272
|
-
participant: "working" | "waiting" | "complete";
|
|
273
|
-
};
|
|
274
|
-
} | {
|
|
275
|
-
reconciliationRound: {
|
|
276
|
-
host: "working" | "waiting" | "complete";
|
|
277
|
-
participant: "working" | "waiting" | "complete";
|
|
278
|
-
};
|
|
279
|
-
}, string, DiscussInput, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, {
|
|
280
|
-
id: "discuss";
|
|
281
|
-
states: {
|
|
282
|
-
readonly ready: {
|
|
283
|
-
id: "ready";
|
|
284
|
-
};
|
|
285
|
-
readonly initialProposalRound: {
|
|
286
|
-
id: "initialProposalRound";
|
|
287
|
-
states: {
|
|
288
|
-
readonly host: {
|
|
289
|
-
id: "initialProposalHost";
|
|
290
|
-
states: {
|
|
291
|
-
readonly working: {
|
|
292
|
-
id: "askHostInitial";
|
|
293
|
-
};
|
|
294
|
-
readonly waiting: {
|
|
295
|
-
id: "waitHostInitialReply";
|
|
296
|
-
};
|
|
297
|
-
readonly complete: {
|
|
298
|
-
id: "hostInitialProposalComplete";
|
|
299
|
-
};
|
|
300
|
-
};
|
|
301
|
-
};
|
|
302
|
-
readonly participant: {
|
|
303
|
-
id: "initialProposalParticipant";
|
|
304
|
-
states: {
|
|
305
|
-
readonly working: {
|
|
306
|
-
id: "askParticipantInitial";
|
|
307
|
-
};
|
|
308
|
-
readonly waiting: {
|
|
309
|
-
id: "waitParticipantInitialReply";
|
|
310
|
-
};
|
|
311
|
-
readonly complete: {
|
|
312
|
-
id: "participantInitialProposalComplete";
|
|
313
|
-
};
|
|
314
|
-
};
|
|
315
|
-
};
|
|
316
|
-
};
|
|
317
|
-
};
|
|
318
|
-
readonly reconciliationRound: {
|
|
319
|
-
id: "reconciliationRound";
|
|
320
|
-
states: {
|
|
321
|
-
readonly host: {
|
|
322
|
-
id: "reconciliationHost";
|
|
323
|
-
states: {
|
|
324
|
-
readonly working: {
|
|
325
|
-
id: "hostInitialRound";
|
|
326
|
-
};
|
|
327
|
-
readonly waiting: {
|
|
328
|
-
id: "waitHostReconciliationReply";
|
|
329
|
-
};
|
|
330
|
-
readonly complete: {
|
|
331
|
-
id: "hostReconciliationComplete";
|
|
332
|
-
};
|
|
333
|
-
};
|
|
334
|
-
};
|
|
335
|
-
readonly participant: {
|
|
336
|
-
id: "reconciliationParticipant";
|
|
337
|
-
states: {
|
|
338
|
-
readonly working: {
|
|
339
|
-
id: "participantInitialRound";
|
|
340
|
-
};
|
|
341
|
-
readonly waiting: {
|
|
342
|
-
id: "waitParticipantReconciliationReply";
|
|
343
|
-
};
|
|
344
|
-
readonly complete: {
|
|
345
|
-
id: "participantReconciliationComplete";
|
|
346
|
-
};
|
|
347
|
-
};
|
|
348
|
-
};
|
|
349
|
-
};
|
|
350
|
-
};
|
|
351
|
-
readonly hostWritesAgreement: {
|
|
352
|
-
id: "hostWritesAgreement";
|
|
353
|
-
};
|
|
354
|
-
readonly commitInitialChanges: {
|
|
355
|
-
id: "commitInitialChanges";
|
|
356
|
-
};
|
|
357
|
-
readonly reviewSpecInitialCommit: {
|
|
358
|
-
id: "reviewSpecInitialCommit";
|
|
359
|
-
};
|
|
360
|
-
readonly reviewSpecHostChanges: {
|
|
361
|
-
id: "reviewSpecHostChanges";
|
|
362
|
-
};
|
|
363
|
-
readonly reviewDrInitialCommit: {
|
|
364
|
-
id: "reviewDrInitialCommit";
|
|
365
|
-
};
|
|
366
|
-
readonly reviewDrHostChanges: {
|
|
367
|
-
id: "reviewDrHostChanges";
|
|
368
|
-
};
|
|
369
|
-
readonly reviewMixedInitialCommit: {
|
|
370
|
-
id: "reviewMixedInitialCommit";
|
|
371
|
-
};
|
|
372
|
-
readonly reviewMixedHostChanges: {
|
|
373
|
-
id: "reviewMixedHostChanges";
|
|
374
|
-
};
|
|
375
|
-
readonly hostAddressesFindings: {
|
|
376
|
-
id: "hostAddressesFindings";
|
|
377
|
-
};
|
|
378
|
-
readonly participantAddressesRebuttals: {
|
|
379
|
-
id: "participantAddressesRebuttals";
|
|
380
|
-
};
|
|
381
|
-
readonly commitReviewedChanges: {
|
|
382
|
-
id: "commitReviewedChanges";
|
|
383
|
-
};
|
|
384
|
-
readonly awaitBossReply: {
|
|
385
|
-
id: "awaitBossReply";
|
|
386
|
-
};
|
|
387
|
-
readonly failed: {
|
|
388
|
-
id: "failed";
|
|
389
|
-
};
|
|
390
|
-
readonly done: {
|
|
391
|
-
id: "done";
|
|
392
|
-
};
|
|
393
|
-
};
|
|
394
|
-
}>;
|
|
395
|
-
export { bossInterrupts, resumableStates };
|
|
396
|
-
export default discussMachine;
|