@cat-factory/server 0.221.0 → 0.222.1

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 (101) hide show
  1. package/dist/agents/ContainerAgentExecutor.d.ts +12 -6
  2. package/dist/agents/ContainerAgentExecutor.d.ts.map +1 -1
  3. package/dist/agents/ContainerAgentExecutor.js +57 -91
  4. package/dist/agents/ContainerAgentExecutor.js.map +1 -1
  5. package/dist/agents/ContainerEnvConfigRepairer.d.ts +25 -3
  6. package/dist/agents/ContainerEnvConfigRepairer.d.ts.map +1 -1
  7. package/dist/agents/ContainerEnvConfigRepairer.js +25 -1
  8. package/dist/agents/ContainerEnvConfigRepairer.js.map +1 -1
  9. package/dist/agents/ContainerRepoBootstrapper.d.ts +7 -2
  10. package/dist/agents/ContainerRepoBootstrapper.d.ts.map +1 -1
  11. package/dist/agents/ContainerRepoBootstrapper.js +8 -1
  12. package/dist/agents/ContainerRepoBootstrapper.js.map +1 -1
  13. package/dist/agents/containerAgentBody.d.ts +47 -8
  14. package/dist/agents/containerAgentBody.d.ts.map +1 -1
  15. package/dist/agents/containerAgentBody.js +83 -14
  16. package/dist/agents/containerAgentBody.js.map +1 -1
  17. package/dist/agents/dispatchTokenMint.d.ts +51 -0
  18. package/dist/agents/dispatchTokenMint.d.ts.map +1 -0
  19. package/dist/agents/dispatchTokenMint.js +62 -0
  20. package/dist/agents/dispatchTokenMint.js.map +1 -0
  21. package/dist/agents/repoFiles.d.ts.map +1 -1
  22. package/dist/agents/repoFiles.js +8 -1
  23. package/dist/agents/repoFiles.js.map +1 -1
  24. package/dist/agents/repoTargeting.d.ts +38 -5
  25. package/dist/agents/repoTargeting.d.ts.map +1 -1
  26. package/dist/agents/repoTargeting.js +27 -1
  27. package/dist/agents/repoTargeting.js.map +1 -1
  28. package/dist/github/DelegatedAppTokenSource.d.ts +1 -0
  29. package/dist/github/DelegatedAppTokenSource.d.ts.map +1 -1
  30. package/dist/github/DelegatedAppTokenSource.js +30 -15
  31. package/dist/github/DelegatedAppTokenSource.js.map +1 -1
  32. package/dist/github/GitHubAppAuth.d.ts.map +1 -1
  33. package/dist/github/GitHubAppAuth.js +26 -26
  34. package/dist/github/GitHubAppAuth.js.map +1 -1
  35. package/dist/github/GitHubAppRegistry.d.ts +10 -3
  36. package/dist/github/GitHubAppRegistry.d.ts.map +1 -1
  37. package/dist/github/GitHubAppRegistry.js +3 -3
  38. package/dist/github/GitHubAppRegistry.js.map +1 -1
  39. package/dist/github/PatPreferringAppRegistry.d.ts +1 -0
  40. package/dist/github/PatPreferringAppRegistry.d.ts.map +1 -1
  41. package/dist/github/PatPreferringAppRegistry.js +4 -2
  42. package/dist/github/PatPreferringAppRegistry.js.map +1 -1
  43. package/dist/github/installationTokenCache.d.ts +37 -0
  44. package/dist/github/installationTokenCache.d.ts.map +1 -0
  45. package/dist/github/installationTokenCache.js +67 -0
  46. package/dist/github/installationTokenCache.js.map +1 -0
  47. package/dist/http/env.d.ts +3 -2
  48. package/dist/http/env.d.ts.map +1 -1
  49. package/dist/http/workspaceAccess.d.ts +14 -0
  50. package/dist/http/workspaceAccess.d.ts.map +1 -1
  51. package/dist/http/workspaceAccess.js +19 -0
  52. package/dist/http/workspaceAccess.js.map +1 -1
  53. package/dist/index.d.ts +2 -1
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -1
  56. package/dist/index.js.map +1 -1
  57. package/dist/modules/board/BoardController.d.ts.map +1 -1
  58. package/dist/modules/board/BoardController.js +8 -3
  59. package/dist/modules/board/BoardController.js.map +1 -1
  60. package/dist/modules/bugHunt/BugHuntController.d.ts.map +1 -1
  61. package/dist/modules/bugHunt/BugHuntController.js +12 -1
  62. package/dist/modules/bugHunt/BugHuntController.js.map +1 -1
  63. package/dist/modules/documents/DocumentSourceController.d.ts.map +1 -1
  64. package/dist/modules/documents/DocumentSourceController.js +4 -2
  65. package/dist/modules/documents/DocumentSourceController.js.map +1 -1
  66. package/dist/modules/persistence/GitHubDelegationController.d.ts +3 -1
  67. package/dist/modules/persistence/GitHubDelegationController.d.ts.map +1 -1
  68. package/dist/modules/persistence/GitHubDelegationController.js +42 -8
  69. package/dist/modules/persistence/GitHubDelegationController.js.map +1 -1
  70. package/dist/modules/publicApi/PublicApiController.d.ts.map +1 -1
  71. package/dist/modules/publicApi/PublicApiController.js +7 -3
  72. package/dist/modules/publicApi/PublicApiController.js.map +1 -1
  73. package/dist/modules/publicApi/PublicDecisionController.d.ts.map +1 -1
  74. package/dist/modules/publicApi/PublicDecisionController.js +3 -0
  75. package/dist/modules/publicApi/PublicDecisionController.js.map +1 -1
  76. package/dist/modules/publicApi/decisions/companionRoutes.d.ts +5 -0
  77. package/dist/modules/publicApi/decisions/companionRoutes.d.ts.map +1 -0
  78. package/dist/modules/publicApi/decisions/companionRoutes.js +124 -0
  79. package/dist/modules/publicApi/decisions/companionRoutes.js.map +1 -0
  80. package/dist/modules/publicApi/decisions/projection.d.ts +16 -1
  81. package/dist/modules/publicApi/decisions/projection.d.ts.map +1 -1
  82. package/dist/modules/publicApi/decisions/projection.js +85 -2
  83. package/dist/modules/publicApi/decisions/projection.js.map +1 -1
  84. package/dist/modules/publicApi/decisions/scope.d.ts +21 -1
  85. package/dist/modules/publicApi/decisions/scope.d.ts.map +1 -1
  86. package/dist/modules/publicApi/decisions/scope.js +31 -0
  87. package/dist/modules/publicApi/decisions/scope.js.map +1 -1
  88. package/dist/modules/publicApi/publicApiAdmission.d.ts +71 -8
  89. package/dist/modules/publicApi/publicApiAdmission.d.ts.map +1 -1
  90. package/dist/modules/publicApi/publicApiAdmission.js +78 -12
  91. package/dist/modules/publicApi/publicApiAdmission.js.map +1 -1
  92. package/dist/modules/publicApi/taskCreation.d.ts.map +1 -1
  93. package/dist/modules/publicApi/taskCreation.js +6 -1
  94. package/dist/modules/publicApi/taskCreation.js.map +1 -1
  95. package/dist/modules/tasks/TaskSourceController.d.ts.map +1 -1
  96. package/dist/modules/tasks/TaskSourceController.js +21 -3
  97. package/dist/modules/tasks/TaskSourceController.js.map +1 -1
  98. package/dist/preview/previewJobBuilder.d.ts.map +1 -1
  99. package/dist/preview/previewJobBuilder.js +7 -1
  100. package/dist/preview/previewJobBuilder.js.map +1 -1
  101. package/package.json +11 -11
@@ -2,7 +2,7 @@ import type { BrainstormSession, BrainstormStage, ClarityReview, ExecutionInstan
2
2
  import type { GateActor } from '@cat-factory/kernel';
3
3
  import type { PublicApiKeyAuth } from '@cat-factory/integrations';
4
4
  import type { Context } from 'hono';
5
- import type { BrainstormModule, ClarityModule, RequirementsModule } from '@cat-factory/orchestration';
5
+ import type { BrainstormModule, ClarityModule, InterviewGate, RequirementsModule } from '@cat-factory/orchestration';
6
6
  import type { AppEnv } from '../../../http/env.js';
7
7
  /** A run resolved for the caller's key, with the block it is anchored on. */
8
8
  export interface ScopedRun {
@@ -116,4 +116,24 @@ export interface BrainstormAction extends ReviewAction<BrainstormSession> {
116
116
  * "the run's brainstorm" without the stage would answer whichever the store returned first.
117
117
  */
118
118
  export declare function gateBrainstormAction<E extends AppEnv>(c: Context<E>, runId: string, stage: BrainstormStage): Promise<BrainstormAction | GateFailure>;
119
+ /** The settled context an interview route acts on: which gate, and the run it is parked on. */
120
+ export interface InterviewAction {
121
+ workspaceId: string;
122
+ scoped: ScopedRun;
123
+ gate: InterviewGate;
124
+ /** The parked step's kind, so a refusal can name the interviewer the caller reached for. */
125
+ stepKind: string;
126
+ }
127
+ /**
128
+ * Gate an interview action: the shared {@link gateDecisionAction} preamble, plus the run's PARKED
129
+ * interview step and the gate wired for its kind.
130
+ *
131
+ * Which interviewer is asking is resolved from the RUN rather than taken from the caller, which is
132
+ * what lets one route set serve every interview gate. Two distinct refusals fall out of that, and
133
+ * keeping them apart is the point: a run parked on no interview is a 404 (there is nothing to
134
+ * answer), while a run parked on an interviewer this deployment never wired is a 503 naming the
135
+ * kind (there is something to answer and this deployment cannot). Collapsing them would tell an
136
+ * operator staring at a stopped run that it is not stopped.
137
+ */
138
+ export declare function gateInterviewAction<E extends AppEnv>(c: Context<E>, runId: string): Promise<InterviewAction | GateFailure>;
119
139
  //# sourceMappingURL=scope.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/scope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAYlD,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,iBAAiB,CAAA;IAC5B,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAClD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAQ3B;AAED,iGAAiG;AACjG,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE;QAAE,MAAM,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA;AAEpG;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG;IACtD,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CACzC,CAEA;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EACvD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,GAAG,WAAW,CAAC,CAY3F;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,CAEpE;AAED,kFAAkF;AAClF,MAAM,WAAW,YAAY,CAAC,OAAO;IACnC,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAmB,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IACzE,YAAY,EAAE,kBAAkB,CAAA;CACjC;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAC3D,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,kBAAkB,GAAG,WAAW,CAAC,CAa3C;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAc,SAAQ,YAAY,CAAC,aAAa,CAAC;IAChE,OAAO,EAAE,aAAa,CAAA;CACvB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EACtD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,GAAG,WAAW,CAAC,CAatC;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAiB,SAAQ,YAAY,CAAC,iBAAiB,CAAC;IACvE,UAAU,EAAE,gBAAgB,CAAA;IAC5B,KAAK,EAAE,eAAe,CAAA;CACvB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACzD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,GAAG,WAAW,CAAC,CAazC;AAED,+FAA+F;AAC/F,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,SAAS,CAAA;IACjB,IAAI,EAAE,aAAa,CAAA;IACnB,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EACxD,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,EACb,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,CAiBxC"}
@@ -1,3 +1,4 @@
1
+ import { findParkedInterviewStep } from '@cat-factory/orchestration';
1
2
  import { authorize } from '../publicApiAuth.js';
2
3
  /**
3
4
  * Load a run by id for an authenticated key, scoped to the key's workspace. Accepts BOTH shapes the
@@ -138,6 +139,36 @@ export async function gateBrainstormAction(c, runId, stage) {
138
139
  }
139
140
  return { workspaceId, scoped, brainstorm, stage, review };
140
141
  }
142
+ /**
143
+ * Gate an interview action: the shared {@link gateDecisionAction} preamble, plus the run's PARKED
144
+ * interview step and the gate wired for its kind.
145
+ *
146
+ * Which interviewer is asking is resolved from the RUN rather than taken from the caller, which is
147
+ * what lets one route set serve every interview gate. Two distinct refusals fall out of that, and
148
+ * keeping them apart is the point: a run parked on no interview is a 404 (there is nothing to
149
+ * answer), while a run parked on an interviewer this deployment never wired is a 503 naming the
150
+ * kind (there is something to answer and this deployment cannot). Collapsing them would tell an
151
+ * operator staring at a stopped run that it is not stopped.
152
+ */
153
+ export async function gateInterviewAction(c, runId) {
154
+ const gated = await gateDecisionAction(c, runId);
155
+ if ('fail' in gated)
156
+ return gated;
157
+ const { workspaceId, scoped } = gated;
158
+ const container = c.get('container');
159
+ const parked = findParkedInterviewStep(scoped.execution, container.agentKindRegistry);
160
+ if (!parked) {
161
+ return {
162
+ fail: { status: 404, code: 'no_interview', message: 'This run has no live interview' },
163
+ };
164
+ }
165
+ const stepKind = parked.step.agentKind;
166
+ const gate = container.executionService.interviewGateFor(stepKind);
167
+ if (!gate) {
168
+ return moduleUnavailable(`The ${stepKind} interviewer is not configured`);
169
+ }
170
+ return { workspaceId, scoped, gate, stepKind };
171
+ }
141
172
  /** A deployment that never wired the module behind a park cannot answer it: 503, naming what. */
142
173
  function moduleUnavailable(message) {
143
174
  return { fail: { status: 503, code: 'unavailable', message } };
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../../../../src/modules/publicApi/decisions/scope.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,27 @@ export declare const APPROVAL_GATE_PARK_SURFACE = "approval-gate";
36
36
  * surfaces (which have the task in hand) rather than derived from the pipeline.
37
37
  */
38
38
  export declare const INPUT_GATE_PARK_SURFACE = "input-gate";
39
+ /**
40
+ * The park surface an INTERVIEW GATE presents: an inline interviewer asks a batch of clarifying
41
+ * questions and the run waits while a human answers them.
42
+ *
43
+ * A FOURTH mechanism, read off the step kind's `interview-gate` TRAIT rather than a list of
44
+ * interviewer kinds, which is what makes a deployment's OWN registered interviewer visible to
45
+ * admission with no edit here, the opposite of the wait-gate gap {@link HUMAN_WAIT_GATE_KINDS}
46
+ * documents. Being visible HERE is not the same as being answerable: the decision surface needs the
47
+ * gate's controller wired too (`ExecutionService.interviewGateFor`), and a kind registered without
48
+ * one is admitted as a park and 503s when answered. That order is the safe one (the refusal
49
+ * over-counts rather than under-counts), but it is why the two checks are not one.
50
+ *
51
+ * Missing it was reachable rather than theoretical, and in the worst direction: an interviewer is
52
+ * an INLINE step, so a pipeline built out of interview steps was reported `headlessStartable`
53
+ * (the flag that tells a caller a `write` key can drive the pipeline end to end with no follow-up)
54
+ * while every run of it stopped on the first batch of questions. No SHIPPED preset changes hands
55
+ * here, because both built-in interview pipelines already carry a human gate on a later step and
56
+ * were admitted as parking on that; what changes is that the refusal now names the interview, and
57
+ * that a pipeline whose only park is the interview is finally seen.
58
+ */
59
+ export declare const INTERVIEW_PARK_SURFACE = "interview";
39
60
  /**
40
61
  * POLLING-GATE kinds that park on a human, re-exported from `@cat-factory/contracts` so every park
41
62
  * surface this module enumerates is reachable from one place.
@@ -50,6 +71,24 @@ export declare const INPUT_GATE_PARK_SURFACE = "input-gate";
50
71
  * Missing it was a real hole rather than a theoretical one: `human-review` is not answerable through
51
72
  * `/api/v1/runs/:runId/decisions` at all, so a plain `write` key could start the platform's flagship
52
73
  * board preset and have it park forever on the one surface with no public answer path.
74
+ *
75
+ * ONLY BUILT-IN GATES ARE IN IT, and a deployment that registers its own unbounded-wait gate
76
+ * through the public `GateRegistry` seam is therefore INVISIBLE to this check: such a pipeline is
77
+ * admitted for a plain `write` key and then parks with nothing here able to name it. That is a
78
+ * limit of what a request-time check can read, not an oversight: a gate's `pollExhaustion` is
79
+ * declared inside the object its FACTORY builds from an engine context, and standing a fake
80
+ * context up per admission call to interrogate a static declaration would be a shortcut, not a
81
+ * design. So the deployment that registered the gate owns the answer to it, in whatever surface
82
+ * it registered it for, and the run reports `parked: true` with an empty decision list until then.
83
+ *
84
+ * Note what the neighbouring surfaces do NOT share this limit: {@link INTERVIEW_PARK_SURFACE} is
85
+ * read off an AGENT KIND's trait, and follow-up triage would be readable off the pipeline's own
86
+ * per-step toggles (it has no constant here because it is deliberately not enumerated, see
87
+ * {@link parkSurfacesOf}), both of which a deployment's own registrations flow through, so a custom
88
+ * interviewer is seen here and a custom wait gate is not. Closing the gap means a gate declaring
89
+ * `pollExhaustion` at REGISTRATION time rather than only on the built definition; that is a change
90
+ * to the registry seam, ranked in `docs/initiatives/public-api-additions.md` rather than smuggled
91
+ * in behind a park-surface slice.
53
92
  */
54
93
  export { HUMAN_WAIT_GATE_KINDS };
55
94
  /**
@@ -99,24 +138,48 @@ export declare function isInlineOnlyPipeline(pipeline: AdmissiblePipelineShape,
99
138
  * {@link HUMAN_WAIT_GATE_KINDS} unbounded-wait gates. Parking is not a defect: it is the
100
139
  * clarification loop. It just needs an answerer, which is what the `decide` scope asserts.
101
140
  */
102
- export declare function canParkOnHuman(pipeline: AdmissiblePipelineShape): boolean;
141
+ export declare function canParkOnHuman(pipeline: AdmissiblePipelineShape, registry: AgentKindRegistry): boolean;
103
142
  /**
104
143
  * Every park surface an ENABLED step of `pipeline` can put the run on, in step order and deduped.
105
- * Three mechanisms, each a separate check because each parks for a different reason:
144
+ * Four mechanisms, each a separate check because each parks for a different reason:
106
145
  *
107
146
  * 1. an approval gate flag on the step ({@link APPROVAL_GATE_PARK_SURFACE});
108
147
  * 2. the step's own kind being an inline review/brainstorm ({@link PARKING_INLINE_KINDS});
109
148
  * 3. the step's own kind being a polling gate that waits on a human with no deadline
110
- * ({@link HUMAN_WAIT_GATE_KINDS}).
149
+ * ({@link HUMAN_WAIT_GATE_KINDS});
150
+ * 4. the step's own kind carrying the `interview-gate` TRAIT ({@link INTERVIEW_PARK_SURFACE}).
111
151
  *
112
152
  * This is the single enumeration {@link canParkOnHuman} derives its boolean from, so the predicate
113
153
  * and the explanation a caller is given can never disagree about what parks.
114
154
  *
115
- * Note what is deliberately NOT here: a park raised dynamically mid-run (an agent-raised decision, a
116
- * judge `park` disposition) is not knowable from the step chain at start time, so the rule cannot
117
- * see it and does not pretend to. See ADR 0032.
155
+ * Case 4 arrived after the first three had shipped, which is the lesson the human-wait gates
156
+ * already taught repeating itself: an enumeration written against the park mechanisms somebody
157
+ * thought of misses the ones they did not, so ask what each entry is DERIVED from. Cases 2, 3 and 4
158
+ * each derive from a declaration (a kind list, a `pollExhaustion` value pinned by a drift guard, a
159
+ * registered trait) rather than from a hand-kept list of pipelines. Whatever is added next should
160
+ * be derivable too.
161
+ *
162
+ * THREE THINGS ARE DELIBERATELY NOT HERE, and they are absent for three different reasons:
163
+ *
164
+ * - A park raised dynamically mid-run (an agent-raised decision, a judge `park` disposition) is
165
+ * not knowable from the step chain at start time, so the rule cannot see it and does not pretend
166
+ * to. ADR 0032.
167
+ * - An unbounded human-wait gate a DEPLOYMENT registered itself cannot be read at request time;
168
+ * see the note on {@link HUMAN_WAIT_GATE_KINDS}. It is the only mechanism here a deployment's own
169
+ * registration escapes: a custom interviewer carries the trait case 4 reads and IS seen.
170
+ * - FOLLOW-UP TRIAGE is knowable (the companion is seeded on a Coder step unless the pipeline's
171
+ * per-step `followUps` toggle turns it off) and is deliberately left out anyway, because
172
+ * counting it would refuse a plain `write` key EVERY board pipeline that builds anything: the
173
+ * companion is on by default on every Coder step, so `pl_simple` and `pl_build` (the presets
174
+ * whose selling point is that they never pause) would become `decide`-only. Taking that much
175
+ * capability off live keys is a bigger break than the gap it closes, and the gap is no longer
176
+ * the one this rule exists to prevent: the park HAS a public answer path now
177
+ * (`…/decisions/follow-ups/items/:itemId/*`), so a run that stops there is recoverable with a
178
+ * `decide` key instead of being app-only. Reconsider if the companion's default ever flips off.
179
+ * Recorded in `docs/initiatives/public-api-additions.md` so it is not re-proposed as an
180
+ * oversight.
118
181
  */
119
- export declare function parkSurfacesOf(pipeline: AdmissiblePipelineShape): string[];
182
+ export declare function parkSurfacesOf(pipeline: AdmissiblePipelineShape, registry: AgentKindRegistry): string[];
120
183
  /**
121
184
  * The message behind the `pipeline_requires_decide_scope` refusal, built from the pipeline's ACTUAL
122
185
  * park surfaces.
@@ -153,7 +216,7 @@ export declare function parkingRefusalMessage(surfaces: string[], options: {
153
216
  * `true` refuses runs that were never going to park. Required means a new start surface has to
154
217
  * answer the question rather than inherit somebody else's answer.
155
218
  */
156
- export declare function publicRunParkSurfaces(pipeline: AdmissiblePipelineShape, options: {
219
+ export declare function publicRunParkSurfaces(pipeline: AdmissiblePipelineShape, registry: AgentKindRegistry, options: {
157
220
  inputGateBlocks: boolean;
158
221
  }): string[];
159
222
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"publicApiAdmission.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/publicApiAdmission.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,aAK/B,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,kBAAkB,CAAA;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AACpE,eAAO,MAAM,qBAAqB,oCAAoC,CAAA;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iCAAiC,aAO5C,CAAA;AAEF,iGAAiG;AACjG,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;CAClB;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAIT;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,uBAAuB,GAAG,OAAO,CAEzE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,EAAE,CAO1E;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgBjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,GACpC,MAAM,EAAE,CAKV;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAET"}
1
+ {"version":3,"file":"publicApiAdmission.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/publicApiAdmission.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,iBAAiB,EAQvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAE9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,aAK/B,CAAA;AAEF;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,kBAAkB,CAAA;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,eAAe,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,sBAAsB,cAAc,CAAA;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAE,qBAAqB,EAAE,CAAA;AAEhC;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,iCAAiC,CAAA;AACpE,eAAO,MAAM,qBAAqB,oCAAoC,CAAA;AAEtE;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iCAAiC,aAQ5C,CAAA;AAEF,iGAAiG;AACjG,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,6FAA6F;IAC7F,OAAO,CAAC,EAAE,OAAO,EAAE,CAAA;IACnB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,OAAO,EAAE,CAAA;CAClB;AASD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAIT;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAET;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,MAAM,EAAE,CAQV;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAgBjG;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE;IAAE,eAAe,EAAE,OAAO,CAAA;CAAE,GACpC,MAAM,EAAE,CAKV;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,uBAAuB,EACjC,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAET"}
@@ -10,7 +10,7 @@
10
10
  // cross-runtime conformance suite.
11
11
  //
12
12
  // See docs/initiatives/headless-clarification-loop.md (D1).
13
- import { ARCHITECTURE_BRAINSTORM_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, isInlineModelStep, REQUIREMENTS_BRAINSTORM_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, } from '@cat-factory/agents';
13
+ import { ARCHITECTURE_BRAINSTORM_AGENT_KIND, CLARITY_REVIEW_AGENT_KIND, hasTrait, INTERVIEW_GATE_TRAIT, isInlineModelStep, REQUIREMENTS_BRAINSTORM_AGENT_KIND, REQUIREMENTS_REVIEW_AGENT_KIND, } from '@cat-factory/agents';
14
14
  import { HUMAN_WAIT_GATE_KINDS } from '@cat-factory/contracts';
15
15
  /**
16
16
  * Inline agent kinds that PARK a run on a human/gate decision. This MUST list every
@@ -53,6 +53,27 @@ export const APPROVAL_GATE_PARK_SURFACE = 'approval-gate';
53
53
  * surfaces (which have the task in hand) rather than derived from the pipeline.
54
54
  */
55
55
  export const INPUT_GATE_PARK_SURFACE = 'input-gate';
56
+ /**
57
+ * The park surface an INTERVIEW GATE presents: an inline interviewer asks a batch of clarifying
58
+ * questions and the run waits while a human answers them.
59
+ *
60
+ * A FOURTH mechanism, read off the step kind's `interview-gate` TRAIT rather than a list of
61
+ * interviewer kinds, which is what makes a deployment's OWN registered interviewer visible to
62
+ * admission with no edit here, the opposite of the wait-gate gap {@link HUMAN_WAIT_GATE_KINDS}
63
+ * documents. Being visible HERE is not the same as being answerable: the decision surface needs the
64
+ * gate's controller wired too (`ExecutionService.interviewGateFor`), and a kind registered without
65
+ * one is admitted as a park and 503s when answered. That order is the safe one (the refusal
66
+ * over-counts rather than under-counts), but it is why the two checks are not one.
67
+ *
68
+ * Missing it was reachable rather than theoretical, and in the worst direction: an interviewer is
69
+ * an INLINE step, so a pipeline built out of interview steps was reported `headlessStartable`
70
+ * (the flag that tells a caller a `write` key can drive the pipeline end to end with no follow-up)
71
+ * while every run of it stopped on the first batch of questions. No SHIPPED preset changes hands
72
+ * here, because both built-in interview pipelines already carry a human gate on a later step and
73
+ * were admitted as parking on that; what changes is that the refusal now names the interview, and
74
+ * that a pipeline whose only park is the interview is finally seen.
75
+ */
76
+ export const INTERVIEW_PARK_SURFACE = 'interview';
56
77
  /**
57
78
  * POLLING-GATE kinds that park on a human, re-exported from `@cat-factory/contracts` so every park
58
79
  * surface this module enumerates is reachable from one place.
@@ -67,6 +88,24 @@ export const INPUT_GATE_PARK_SURFACE = 'input-gate';
67
88
  * Missing it was a real hole rather than a theoretical one: `human-review` is not answerable through
68
89
  * `/api/v1/runs/:runId/decisions` at all, so a plain `write` key could start the platform's flagship
69
90
  * board preset and have it park forever on the one surface with no public answer path.
91
+ *
92
+ * ONLY BUILT-IN GATES ARE IN IT, and a deployment that registers its own unbounded-wait gate
93
+ * through the public `GateRegistry` seam is therefore INVISIBLE to this check: such a pipeline is
94
+ * admitted for a plain `write` key and then parks with nothing here able to name it. That is a
95
+ * limit of what a request-time check can read, not an oversight: a gate's `pollExhaustion` is
96
+ * declared inside the object its FACTORY builds from an engine context, and standing a fake
97
+ * context up per admission call to interrogate a static declaration would be a shortcut, not a
98
+ * design. So the deployment that registered the gate owns the answer to it, in whatever surface
99
+ * it registered it for, and the run reports `parked: true` with an empty decision list until then.
100
+ *
101
+ * Note what the neighbouring surfaces do NOT share this limit: {@link INTERVIEW_PARK_SURFACE} is
102
+ * read off an AGENT KIND's trait, and follow-up triage would be readable off the pipeline's own
103
+ * per-step toggles (it has no constant here because it is deliberately not enumerated, see
104
+ * {@link parkSurfacesOf}), both of which a deployment's own registrations flow through, so a custom
105
+ * interviewer is seen here and a custom wait gate is not. Closing the gap means a gate declaring
106
+ * `pollExhaustion` at REGISTRATION time rather than only on the built definition; that is a change
107
+ * to the registry seam, ranked in `docs/initiatives/public-api-additions.md` rather than smuggled
108
+ * in behind a park-surface slice.
70
109
  */
71
110
  export { HUMAN_WAIT_GATE_KINDS };
72
111
  /**
@@ -102,6 +141,7 @@ export const PUBLICLY_ANSWERABLE_PARK_SURFACES = new Set([
102
141
  ARCHITECTURE_BRAINSTORM_AGENT_KIND,
103
142
  INPUT_GATE_PARK_SURFACE,
104
143
  APPROVAL_GATE_PARK_SURFACE,
144
+ INTERVIEW_PARK_SURFACE,
105
145
  ]);
106
146
  /** The enabled steps of a pipeline, paired with their ORIGINAL index (gates are index-aligned). */
107
147
  function enabledSteps(pipeline) {
@@ -126,32 +166,58 @@ export function isInlineOnlyPipeline(pipeline, registry) {
126
166
  * {@link HUMAN_WAIT_GATE_KINDS} unbounded-wait gates. Parking is not a defect: it is the
127
167
  * clarification loop. It just needs an answerer, which is what the `decide` scope asserts.
128
168
  */
129
- export function canParkOnHuman(pipeline) {
130
- return parkSurfacesOf(pipeline).length > 0;
169
+ export function canParkOnHuman(pipeline, registry) {
170
+ return parkSurfacesOf(pipeline, registry).length > 0;
131
171
  }
132
172
  /**
133
173
  * Every park surface an ENABLED step of `pipeline` can put the run on, in step order and deduped.
134
- * Three mechanisms, each a separate check because each parks for a different reason:
174
+ * Four mechanisms, each a separate check because each parks for a different reason:
135
175
  *
136
176
  * 1. an approval gate flag on the step ({@link APPROVAL_GATE_PARK_SURFACE});
137
177
  * 2. the step's own kind being an inline review/brainstorm ({@link PARKING_INLINE_KINDS});
138
178
  * 3. the step's own kind being a polling gate that waits on a human with no deadline
139
- * ({@link HUMAN_WAIT_GATE_KINDS}).
179
+ * ({@link HUMAN_WAIT_GATE_KINDS});
180
+ * 4. the step's own kind carrying the `interview-gate` TRAIT ({@link INTERVIEW_PARK_SURFACE}).
140
181
  *
141
182
  * This is the single enumeration {@link canParkOnHuman} derives its boolean from, so the predicate
142
183
  * and the explanation a caller is given can never disagree about what parks.
143
184
  *
144
- * Note what is deliberately NOT here: a park raised dynamically mid-run (an agent-raised decision, a
145
- * judge `park` disposition) is not knowable from the step chain at start time, so the rule cannot
146
- * see it and does not pretend to. See ADR 0032.
185
+ * Case 4 arrived after the first three had shipped, which is the lesson the human-wait gates
186
+ * already taught repeating itself: an enumeration written against the park mechanisms somebody
187
+ * thought of misses the ones they did not, so ask what each entry is DERIVED from. Cases 2, 3 and 4
188
+ * each derive from a declaration (a kind list, a `pollExhaustion` value pinned by a drift guard, a
189
+ * registered trait) rather than from a hand-kept list of pipelines. Whatever is added next should
190
+ * be derivable too.
191
+ *
192
+ * THREE THINGS ARE DELIBERATELY NOT HERE, and they are absent for three different reasons:
193
+ *
194
+ * - A park raised dynamically mid-run (an agent-raised decision, a judge `park` disposition) is
195
+ * not knowable from the step chain at start time, so the rule cannot see it and does not pretend
196
+ * to. ADR 0032.
197
+ * - An unbounded human-wait gate a DEPLOYMENT registered itself cannot be read at request time;
198
+ * see the note on {@link HUMAN_WAIT_GATE_KINDS}. It is the only mechanism here a deployment's own
199
+ * registration escapes: a custom interviewer carries the trait case 4 reads and IS seen.
200
+ * - FOLLOW-UP TRIAGE is knowable (the companion is seeded on a Coder step unless the pipeline's
201
+ * per-step `followUps` toggle turns it off) and is deliberately left out anyway, because
202
+ * counting it would refuse a plain `write` key EVERY board pipeline that builds anything: the
203
+ * companion is on by default on every Coder step, so `pl_simple` and `pl_build` (the presets
204
+ * whose selling point is that they never pause) would become `decide`-only. Taking that much
205
+ * capability off live keys is a bigger break than the gap it closes, and the gap is no longer
206
+ * the one this rule exists to prevent: the park HAS a public answer path now
207
+ * (`…/decisions/follow-ups/items/:itemId/*`), so a run that stops there is recoverable with a
208
+ * `decide` key instead of being app-only. Reconsider if the companion's default ever flips off.
209
+ * Recorded in `docs/initiatives/public-api-additions.md` so it is not re-proposed as an
210
+ * oversight.
147
211
  */
148
- export function parkSurfacesOf(pipeline) {
212
+ export function parkSurfacesOf(pipeline, registry) {
149
213
  const surfaces = new Set();
150
214
  for (const { kind, i } of enabledSteps(pipeline)) {
151
215
  if (pipeline.gates?.[i])
152
216
  surfaces.add(APPROVAL_GATE_PARK_SURFACE);
153
217
  if (PARKING_INLINE_KINDS.has(kind) || HUMAN_WAIT_GATE_KINDS.has(kind))
154
218
  surfaces.add(kind);
219
+ if (hasTrait(kind, INTERVIEW_GATE_TRAIT, registry))
220
+ surfaces.add(INTERVIEW_PARK_SURFACE);
155
221
  }
156
222
  return [...surfaces];
157
223
  }
@@ -201,8 +267,8 @@ export function parkingRefusalMessage(surfaces, options) {
201
267
  * `true` refuses runs that were never going to park. Required means a new start surface has to
202
268
  * answer the question rather than inherit somebody else's answer.
203
269
  */
204
- export function publicRunParkSurfaces(pipeline, options) {
205
- const surfaces = parkSurfacesOf(pipeline);
270
+ export function publicRunParkSurfaces(pipeline, registry, options) {
271
+ const surfaces = parkSurfacesOf(pipeline, registry);
206
272
  // Prepended: the gate parks BEFORE the first dispatch, so if it is going to hold this run it
207
273
  // holds it before any of the pipeline's own park surfaces are reached.
208
274
  return options.inputGateBlocks ? [INPUT_GATE_PARK_SURFACE, ...surfaces] : surfaces;
@@ -214,6 +280,6 @@ export function publicRunParkSurfaces(pipeline, options) {
214
280
  * for a `decide`-scoped key (see {@link PARKING_INLINE_KINDS}), it simply needs answering.
215
281
  */
216
282
  export function isHeadlessInlinePipeline(pipeline, registry) {
217
- return isInlineOnlyPipeline(pipeline, registry) && !canParkOnHuman(pipeline);
283
+ return isInlineOnlyPipeline(pipeline, registry) && !canParkOnHuman(pipeline, registry);
218
284
  }
219
285
  //# sourceMappingURL=publicApiAdmission.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"publicApiAdmission.js","sourceRoot":"","sources":["../../../src/modules/publicApi/publicApiAdmission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publicApiAdmission.js","sourceRoot":"","sources":["../../../src/modules/publicApi/publicApiAdmission.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taskCreation.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/taskCreation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAkBxD,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IAC7C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,GAAG,sBAAsB,CAOnF;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,KAAK,CAAC,CA8BhB"}
1
+ {"version":3,"file":"taskCreation.d.ts","sourceRoot":"","sources":["../../../src/modules/publicApi/taskCreation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAkBxD,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IAC7C,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;IAC/B,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACvC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,GAAG,sBAAsB,CAOnF;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,sBAAsB,EAC5B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAuChB"}
@@ -1,3 +1,4 @@
1
+ import { UNATTRIBUTED_BLOCK_EDITOR } from '@cat-factory/contracts';
1
2
  import { releaseUnattachedTask, resolveDocuments } from './documentAttachment.js';
2
3
  import { resolveTicket } from './ticketLinkage.js';
3
4
  /** Read the collaborators this module drives off the request's container. */
@@ -29,7 +30,11 @@ export async function createTaskWithAttachments(deps, workspaceId, serviceId, bo
29
30
  }
30
31
  const linkage = ticket ? await resolveTicket(deps, workspaceId, ticket) : null;
31
32
  const attachment = documents?.length ? await resolveDocuments(deps, workspaceId, documents) : null;
32
- const block = await deps.boardService.addServiceTask(workspaceId, serviceId, input);
33
+ // Unattributed by the same reading the headless RUN start gets (ADR 0037): an API key holds
34
+ // scopes, not a workspace tier, so no role-scoped merge restriction applies to it and none can
35
+ // be dropped by what it selects. Stated HERE, at the route that knows how the caller
36
+ // authenticated, rather than inside `addServiceTask`, which serves whoever calls it.
37
+ const block = await deps.boardService.addServiceTask(workspaceId, serviceId, input, UNATTRIBUTED_BLOCK_EDITOR);
33
38
  if (attachment) {
34
39
  // Attached BEFORE the ticket is claimed, so this rollback can be a plain removal: a block
35
40
  // removed after a successful claim would leave the ticket pointing at a task nobody can open,
@@ -1 +1 @@
1
- {"version":3,"file":"taskCreation.js","sourceRoot":"","sources":["../../../src/modules/publicApi/taskCreation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwBlD,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,SAA0B;IACzD,OAAO;QACL,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAA4B,EAC5B,WAAmB,EACnB,SAAiB,EACjB,IAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;IAC5C,IAAI,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;QAChC,uFAAuF;QACvF,6FAA6F;QAC7F,kFAAkF;QAClF,+FAA+F;QAC/F,8FAA8F;QAC9F,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9E,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAElG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAEnF,IAAI,UAAU,EAAE,CAAC;QACf,0FAA0F;QAC1F,8FAA8F;QAC9F,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACxD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IACD,+FAA+F;IAC/F,wEAAwE;IACxE,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"taskCreation.js","sourceRoot":"","sources":["../../../src/modules/publicApi/taskCreation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAIlE,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAwBlD,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAAC,SAA0B;IACzD,OAAO;QACL,YAAY,EAAE,SAAS,CAAC,YAAY;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,MAAM,EAAE,SAAS,CAAC,MAAM;KACzB,CAAA;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAA4B,EAC5B,WAAmB,EACnB,SAAiB,EACjB,IAA2B;IAE3B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,CAAA;IAC5C,IAAI,MAAM,IAAI,SAAS,EAAE,MAAM,EAAE,CAAC;QAChC,uFAAuF;QACvF,6FAA6F;QAC7F,kFAAkF;QAClF,+FAA+F;QAC/F,8FAA8F;QAC9F,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IACrE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9E,MAAM,UAAU,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAElG,4FAA4F;IAC5F,+FAA+F;IAC/F,qFAAqF;IACrF,qFAAqF;IACrF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,CAClD,WAAW,EACX,SAAS,EACT,KAAK,EACL,yBAAyB,CAC1B,CAAA;IAED,IAAI,UAAU,EAAE,CAAC;QACf,0FAA0F;QAC1F,8FAA8F;QAC9F,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,qBAAqB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACxD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IACD,+FAA+F;IAC/F,wEAAwE;IACxE,IAAI,OAAO;QAAE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA4F/C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAmOnD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiCpD"}
1
+ {"version":3,"file":"TaskSourceController.d.ts","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAW3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AA4F/C;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,CAwOnD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAAC,MAAM,CAAC,CAiCpD"}
@@ -5,7 +5,7 @@ import { Hono } from 'hono';
5
5
  import { ValidationError, UnavailableError, UnauthorizedError, } from '@cat-factory/kernel';
6
6
  import { LinearOAuth } from '../../auth/LinearOAuth.js';
7
7
  import { StateSigner } from '../../github/state.js';
8
- import { requireWorkspacePermission } from '../../http/workspaceAccess.js';
8
+ import { blockEditActor, requireWorkspacePermission } from '../../http/workspaceAccess.js';
9
9
  import { param } from '../../http/params.js';
10
10
  import { requireCapability } from '../../http/guards.js';
11
11
  /** Resolve the tasks module, or refuse with a 503 naming what isn't wired. */
@@ -238,7 +238,16 @@ export function taskSourceController() {
238
238
  buildHonoRoute(app, createTaskFromIssueContract, async (c) => {
239
239
  const tasks = requireTasks(c);
240
240
  const { source, externalId, containerId } = c.req.valid('json');
241
- const result = await tasks.linkService.createTaskFromIssue(param(c, 'workspaceId'), containerId, source, externalId, c.get('user')?.id ?? null);
241
+ const result = await tasks.linkService.createTaskFromIssue({
242
+ workspaceId: param(c, 'workspaceId'),
243
+ containerId,
244
+ source,
245
+ externalId,
246
+ // A person on this board is filing the issue as a task, so the write carries their tier:
247
+ // the same authority the inspector's own create form is judged under (ADR 0037).
248
+ editor: blockEditActor(c),
249
+ createdBy: c.get('user')?.id ?? null,
250
+ });
242
251
  return c.json(result, 201);
243
252
  });
244
253
  // Spawn an epic + its children: create an epic node, materialise each child issue as a
@@ -247,7 +256,16 @@ export function taskSourceController() {
247
256
  buildHonoRoute(app, spawnEpicContract, async (c) => {
248
257
  const tasks = requireTasks(c);
249
258
  const { ref, containerId, position } = c.req.valid('json');
250
- const result = await tasks.linkService.spawnEpic(param(c, 'workspaceId'), sourceParam(c), ref, containerId, c.get('user')?.id ?? null, position);
259
+ const result = await tasks.linkService.spawnEpic({
260
+ workspaceId: param(c, 'workspaceId'),
261
+ source: sourceParam(c),
262
+ epicRef: ref,
263
+ containerId,
264
+ // Same reading as the single-issue route above: a member is materialising these tasks.
265
+ editor: blockEditActor(c),
266
+ createdBy: c.get('user')?.id ?? null,
267
+ position,
268
+ });
251
269
  return c.json(result, 201);
252
270
  });
253
271
  return app;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskSourceController.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskSourceController.js","sourceRoot":"","sources":["../../../src/modules/tasks/TaskSourceController.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"previewJobBuilder.d.ts","sourceRoot":"","sources":["../../src/preview/previewJobBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,4BAA4B,CAAA;AAOjF,OAAO,KAAK,EACV,qBAAqB,EAErB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAevF,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,eAAe,CAAA;IAChC,6FAA6F;IAC7F,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,kFAAkF;IAClF,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;OAIG;IACH,cAAc,EAAE,uBAAuB,CAAA;IACvC,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,6BAA6B,CAAA;CAC9D;AAoBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,GAAG,eAAe,CAgE1F"}
1
+ {"version":3,"file":"previewJobBuilder.d.ts","sourceRoot":"","sources":["../../src/preview/previewJobBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAA;AAGzF,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,4BAA4B,CAAA;AAOjF,OAAO,KAAK,EACV,qBAAqB,EAErB,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAA;AAevF,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,eAAe,CAAA;IAChC,6FAA6F;IAC7F,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,kFAAkF;IAClF,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;OAIG;IACH,cAAc,EAAE,uBAAuB,CAAA;IACvC,gFAAgF;IAChF,YAAY,EAAE,MAAM,CAAA;IACpB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,6BAA6B,CAAC,EAAE,6BAA6B,CAAA;CAC9D;AAoBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,6BAA6B,GAAG,eAAe,CAsE1F"}
@@ -52,7 +52,13 @@ export function makePreviewJobBuilder(deps) {
52
52
  if (!repo) {
53
53
  throw new ConflictError('No connected GitHub repository was found for this frontend frame.');
54
54
  }
55
- const ghToken = await deps.mintInstallationToken(repo.installationId);
55
+ // Scoped to the frontend frame's own repo: a preview clones one checkout and runs no agent,
56
+ // so it has no fan-out leg, no peer and no reference repo to widen for.
57
+ const ghToken = await deps.mintInstallationToken(repo.installationId, {
58
+ executionId: `preview-${frameId}`,
59
+ workspaceId,
60
+ repoIds: [repo.repoId],
61
+ });
56
62
  const origin = (deps.resolveRepoOrigin ?? githubRepoOrigin)(repo);
57
63
  const branch = await resolveBranch(config.branch, repo, workspaceId, deps.blockRepository);
58
64
  // A preview runs no agent, so the session is model-agnostic and never used for an LLM
@@ -1 +1 @@
1
- {"version":3,"file":"previewJobBuilder.js","sourceRoot":"","sources":["../../src/preview/previewJobBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAG1F,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAS7D,6FAA6F;AAC7F,0FAA0F;AAC1F,8FAA8F;AAC9F,2FAA2F;AAC3F,yFAAyF;AACzF,uFAAuF;AAEvF,0FAA0F;AAC1F,MAAM,gBAAgB,GAAsB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrD,QAAQ,EAAE,sBAAsB,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,MAAM;IAC7D,QAAQ,EAAE,QAAQ;CACnB,CAAC,CAAA;AA4BF;;;;;;GAMG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAkC,EAClC,IAAgB,EAChB,WAAmB,EACnB,eAAgC;IAEhC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,UAAU,CAAA;IAChE,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IAC3E,OAAO,IAAI,EAAE,WAAW,EAAE,MAAM,IAAI,IAAI,CAAC,UAAU,CAAA;AACrD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAmC;IACvE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,EAA2B,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAClE,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;YAClF,MAAM,IAAI,aAAa,CACrB,oFAAoF,CACrF,CAAA;QACH,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAA;QAEnC,oFAAoF;QACpF,yFAAyF;QACzF,MAAM,eAAe,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;QACpD,MAAM,OAAO,GACX,IAAI,CAAC,6BAA6B,IAAI,eAAe,CAAC,IAAI,GAAG,CAAC;YAC5D,CAAC,CAAC,MAAM,IAAI,CAAC,6BAA6B,CAAC,eAAe,CAAC,WAAW,CAAC;YACvE,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,QAAQ,GAAG,uBAAuB,CACtC,MAAM,EACN,uBAAuB,CAAC,OAAO,EAAE,eAAe,CAAC,CAClD,CAAA;QACD,MAAM,KAAK,GAAG,sBAAsB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC1D,MAAM,SAAS,GAAG,KAAK,CAAC,SAAmB,CAAA;QAE3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,aAAa,CAAC,mEAAmE,CAAC,CAAA;QAC9F,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QACrE,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAA;QACjE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QAE1F,sFAAsF;QACtF,4FAA4F;QAC5F,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAClD,WAAW;YACX,WAAW,EAAE,WAAW,OAAO,EAAE;YACjC,SAAS,EAAE,SAAS;YACpB,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,MAAM;SACd,CAAC,CAAA;QAEF,MAAM,IAAI,GAA4B;YACpC,KAAK,EAAE,sBAAsB;YAC7B,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY;YACZ,OAAO;YACP,IAAI,EAAE;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E;YACD,MAAM;YACN,KAAK;YACL,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAA;QACD,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;IAC3D,CAAC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"previewJobBuilder.js","sourceRoot":"","sources":["../../src/preview/previewJobBuilder.ts"],"names":[],"mappings":"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"}