@flowdesk/opencode-plugin 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/dist/bootstrap-cli.d.ts +16 -0
- package/dist/bootstrap-cli.d.ts.map +1 -0
- package/dist/bootstrap-cli.js +171 -0
- package/dist/bootstrap-cli.js.map +1 -0
- package/dist/bootstrap-installer.d.ts +51 -0
- package/dist/bootstrap-installer.d.ts.map +1 -0
- package/dist/bootstrap-installer.js +458 -0
- package/dist/bootstrap-installer.js.map +1 -0
- package/dist/command-handlers.d.ts +36 -0
- package/dist/command-handlers.d.ts.map +1 -0
- package/dist/command-handlers.js +296 -0
- package/dist/command-handlers.js.map +1 -0
- package/dist/commands.d.ts +74 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +302 -0
- package/dist/commands.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/local-adapter.d.ts +65 -0
- package/dist/local-adapter.d.ts.map +1 -0
- package/dist/local-adapter.js +611 -0
- package/dist/local-adapter.js.map +1 -0
- package/dist/managed-dispatch-adapter.d.ts +145 -0
- package/dist/managed-dispatch-adapter.d.ts.map +1 -0
- package/dist/managed-dispatch-adapter.js +220 -0
- package/dist/managed-dispatch-adapter.js.map +1 -0
- package/dist/server.d.ts +28 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +465 -0
- package/dist/server.js.map +1 -0
- package/dist/tool-stubs.d.ts +107 -0
- package/dist/tool-stubs.d.ts.map +1 -0
- package/dist/tool-stubs.js +329 -0
- package/dist/tool-stubs.js.map +1 -0
- package/package.json +54 -0
package/dist/commands.js
ADDED
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
import { mkdirSync, renameSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, resolve, sep } from "node:path";
|
|
3
|
+
import { FLOWDESK_RELEASE_1_COMMAND_MANIFEST, FLOWDESK_RELEASE_1_MINIMUM_PORTABLE_COMMAND_NAMES, getFlowDeskPreSpikeProductionCommandRegistry, invalid, valid, validateFlowDeskCommandManifestComplete, validateFlowDeskStaticCommandTemplateSafety, validateNoForbiddenRawPayloads } from "@flowdesk/core";
|
|
4
|
+
import { getFlowDeskPreSpikePluginToolStub, hasPassingFds1SchemaConversionSpike } from "./tool-stubs.js";
|
|
5
|
+
const inertAuthority = {
|
|
6
|
+
productionRegistrationEligible: false,
|
|
7
|
+
schemaConversionReady: false,
|
|
8
|
+
commandAliasEligible: false,
|
|
9
|
+
dispatchApprovalEligible: false,
|
|
10
|
+
fallbackAuthority: false,
|
|
11
|
+
hardCancelOrNoReplyAuthority: false,
|
|
12
|
+
actualLaneLaunch: false,
|
|
13
|
+
providerCall: false,
|
|
14
|
+
runtimeExecution: false
|
|
15
|
+
};
|
|
16
|
+
const materializationDisabledAuthority = {
|
|
17
|
+
productionRegistrationEligible: false,
|
|
18
|
+
commandAliasEligible: false,
|
|
19
|
+
dispatchApprovalEligible: false,
|
|
20
|
+
fallbackAuthority: false,
|
|
21
|
+
hardCancelOrNoReplyAuthority: false,
|
|
22
|
+
actualLaneLaunch: false,
|
|
23
|
+
providerCall: false,
|
|
24
|
+
runtimeExecution: false
|
|
25
|
+
};
|
|
26
|
+
function combine(results) {
|
|
27
|
+
const errors = results.flatMap((result) => result.errors);
|
|
28
|
+
return errors.length === 0 ? valid() : invalid(...errors);
|
|
29
|
+
}
|
|
30
|
+
function isRecord(value) {
|
|
31
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
32
|
+
}
|
|
33
|
+
function rejectUnknownProperties(value, allowed) {
|
|
34
|
+
const unknown = Object.keys(value).filter((key) => !allowed.includes(key));
|
|
35
|
+
return unknown.length === 0 ? valid() : invalid(`unknown properties: ${unknown.join(",")}`);
|
|
36
|
+
}
|
|
37
|
+
function commandSlug(commandName) {
|
|
38
|
+
return commandName.slice(1);
|
|
39
|
+
}
|
|
40
|
+
function commandFileName(commandName) {
|
|
41
|
+
return `${commandSlug(commandName)}.md`;
|
|
42
|
+
}
|
|
43
|
+
function commandContentFor(entry) {
|
|
44
|
+
return [
|
|
45
|
+
`FlowDesk portable command file: ${entry.commandName}`,
|
|
46
|
+
`Matching FlowDesk tool stub: ${entry.toolName}`,
|
|
47
|
+
`Request schema: ${entry.requestSchemaId}`,
|
|
48
|
+
`Response schema: ${entry.responseSchemaId}`,
|
|
49
|
+
`Fixture prefix: ${entry.fixturePrefix}`,
|
|
50
|
+
"Mode: inert static command-file artifact.",
|
|
51
|
+
"Alias mode: portable command only until conformance promotes aliases.",
|
|
52
|
+
"Safety: FDS-1 uses FlowDesk runtime-closed validation; registration is limited to non-dispatch command-backed handlers.",
|
|
53
|
+
"Runtime: disabled in this artifact; use FlowDesk status or doctor for safe next actions."
|
|
54
|
+
].join("\n");
|
|
55
|
+
}
|
|
56
|
+
function commandFileArtifact(entry) {
|
|
57
|
+
const fileName = commandFileName(entry.commandName);
|
|
58
|
+
return {
|
|
59
|
+
commandFileId: `flowdesk-portable-command-file:${entry.fixturePrefix}:v1`,
|
|
60
|
+
commandName: entry.commandName,
|
|
61
|
+
commandFileName: fileName,
|
|
62
|
+
commandProfileRelativePath: `commands/${fileName}`,
|
|
63
|
+
toolName: entry.toolName,
|
|
64
|
+
requestSchemaId: entry.requestSchemaId,
|
|
65
|
+
responseSchemaId: entry.responseSchemaId,
|
|
66
|
+
fixturePrefix: entry.fixturePrefix,
|
|
67
|
+
aliasMode: "portable_only_pre_conformance",
|
|
68
|
+
generationMode: "inert_static_command_file_artifact",
|
|
69
|
+
writeMode: "not_written_pre_spike_artifact",
|
|
70
|
+
commandContent: commandContentFor(entry),
|
|
71
|
+
...inertAuthority
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export const FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS = FLOWDESK_RELEASE_1_COMMAND_MANIFEST.map(commandFileArtifact);
|
|
75
|
+
export const FLOWDESK_PRE_SPIKE_WRITTEN_COMMAND_FILE_REGISTRY = [];
|
|
76
|
+
function desiredAliasFor(commandName) {
|
|
77
|
+
return `/flowdesk:${commandSlug(commandName).replace(/^flowdesk-/, "")}`;
|
|
78
|
+
}
|
|
79
|
+
function aliasGateArtifact(commandArtifact) {
|
|
80
|
+
return {
|
|
81
|
+
aliasGateId: `flowdesk-desired-alias-gate:${commandArtifact.fixturePrefix}:v1`,
|
|
82
|
+
desiredAlias: desiredAliasFor(commandArtifact.commandName),
|
|
83
|
+
portableFallbackCommand: commandArtifact.commandName,
|
|
84
|
+
portableCommandFileName: commandArtifact.commandFileName,
|
|
85
|
+
toolName: commandArtifact.toolName,
|
|
86
|
+
conformanceMode: "portable_only_pre_conformance",
|
|
87
|
+
aliasGenerationMode: "blocked_until_alias_conformance_passes",
|
|
88
|
+
aliasWriteMode: "not_written_pre_conformance_artifact",
|
|
89
|
+
requiredConformanceRef: "missing_pinned_alias_parser_conformance",
|
|
90
|
+
...inertAuthority
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
export const FLOWDESK_DESIRED_ALIAS_GATE_ARTIFACTS = FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS.map(aliasGateArtifact);
|
|
94
|
+
export const FLOWDESK_PRE_CONFORMANCE_WRITTEN_ALIAS_REGISTRY = [];
|
|
95
|
+
export function getFlowDeskPortableCommandFileArtifacts() {
|
|
96
|
+
return FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS;
|
|
97
|
+
}
|
|
98
|
+
export function getFlowDeskPortableCommandFileArtifact(commandName) {
|
|
99
|
+
return FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS.find((artifact) => artifact.commandName === commandName);
|
|
100
|
+
}
|
|
101
|
+
export function getFlowDeskPreSpikeWrittenCommandFileRegistry() {
|
|
102
|
+
return FLOWDESK_PRE_SPIKE_WRITTEN_COMMAND_FILE_REGISTRY;
|
|
103
|
+
}
|
|
104
|
+
export function getFlowDeskDesiredAliasGateArtifacts() {
|
|
105
|
+
return FLOWDESK_DESIRED_ALIAS_GATE_ARTIFACTS;
|
|
106
|
+
}
|
|
107
|
+
export function getFlowDeskDesiredAliasGateArtifact(desiredAlias) {
|
|
108
|
+
return FLOWDESK_DESIRED_ALIAS_GATE_ARTIFACTS.find((artifact) => artifact.desiredAlias === desiredAlias);
|
|
109
|
+
}
|
|
110
|
+
export function getFlowDeskPreConformanceWrittenAliasRegistry() {
|
|
111
|
+
return FLOWDESK_PRE_CONFORMANCE_WRITTEN_ALIAS_REGISTRY;
|
|
112
|
+
}
|
|
113
|
+
function validatePortableCommandFileName(commandName, fileName) {
|
|
114
|
+
if (typeof commandName !== "string" || !FLOWDESK_RELEASE_1_MINIMUM_PORTABLE_COMMAND_NAMES.includes(commandName))
|
|
115
|
+
return invalid("commandName is not a Release 1 minimum portable command");
|
|
116
|
+
if (fileName !== commandFileName(commandName))
|
|
117
|
+
return invalid("commandFileName does not match portable command");
|
|
118
|
+
if (typeof fileName !== "string" || !/^flowdesk-[a-z-]+\.md$/.test(fileName))
|
|
119
|
+
return invalid("commandFileName is not portable");
|
|
120
|
+
if (fileName.includes(":") || fileName.includes("/") || fileName.includes("\\"))
|
|
121
|
+
return invalid("commandFileName contains platform-sensitive characters");
|
|
122
|
+
return valid();
|
|
123
|
+
}
|
|
124
|
+
function authorityChecks(value) {
|
|
125
|
+
return combine([
|
|
126
|
+
value.productionRegistrationEligible === false ? valid() : invalid("productionRegistrationEligible must be false"),
|
|
127
|
+
value.schemaConversionReady === false ? valid() : invalid("schemaConversionReady must be false"),
|
|
128
|
+
value.commandAliasEligible === false ? valid() : invalid("commandAliasEligible must be false"),
|
|
129
|
+
value.dispatchApprovalEligible === false ? valid() : invalid("dispatchApprovalEligible must be false"),
|
|
130
|
+
value.fallbackAuthority === false ? valid() : invalid("fallbackAuthority must be false"),
|
|
131
|
+
value.hardCancelOrNoReplyAuthority === false ? valid() : invalid("hardCancelOrNoReplyAuthority must be false"),
|
|
132
|
+
value.actualLaneLaunch === false ? valid() : invalid("actualLaneLaunch must be false"),
|
|
133
|
+
value.providerCall === false ? valid() : invalid("providerCall must be false"),
|
|
134
|
+
value.runtimeExecution === false ? valid() : invalid("runtimeExecution must be false")
|
|
135
|
+
]);
|
|
136
|
+
}
|
|
137
|
+
function validateCommandContent(artifact, manifestEntry) {
|
|
138
|
+
const content = artifact.commandContent;
|
|
139
|
+
if (typeof content !== "string")
|
|
140
|
+
return invalid("commandContent must be a string");
|
|
141
|
+
return combine([
|
|
142
|
+
validateFlowDeskStaticCommandTemplateSafety(content),
|
|
143
|
+
validateNoForbiddenRawPayloads(content, "commandContent"),
|
|
144
|
+
manifestEntry !== undefined && content.includes(manifestEntry.commandName) ? valid() : invalid("commandContent does not reference command"),
|
|
145
|
+
manifestEntry !== undefined && content.includes(manifestEntry.toolName) ? valid() : invalid("commandContent does not reference tool"),
|
|
146
|
+
manifestEntry !== undefined && content.includes(manifestEntry.requestSchemaId) ? valid() : invalid("commandContent does not reference request schema"),
|
|
147
|
+
manifestEntry !== undefined && content.includes(manifestEntry.responseSchemaId) ? valid() : invalid("commandContent does not reference response schema"),
|
|
148
|
+
/\$\(|\$\{|```|`/.test(content) ? invalid("commandContent contains shell or interpolation marker") : valid()
|
|
149
|
+
]);
|
|
150
|
+
}
|
|
151
|
+
export function validateFlowDeskPortableCommandFileArtifact(artifact) {
|
|
152
|
+
if (!isRecord(artifact))
|
|
153
|
+
return invalid("portable command file artifact must be an object");
|
|
154
|
+
const manifestEntry = FLOWDESK_RELEASE_1_COMMAND_MANIFEST.find((entry) => entry.commandName === artifact.commandName);
|
|
155
|
+
const toolStub = typeof artifact.toolName === "string" ? getFlowDeskPreSpikePluginToolStub(artifact.toolName) : undefined;
|
|
156
|
+
return combine([
|
|
157
|
+
rejectUnknownProperties(artifact, [
|
|
158
|
+
"commandFileId",
|
|
159
|
+
"commandName",
|
|
160
|
+
"commandFileName",
|
|
161
|
+
"commandProfileRelativePath",
|
|
162
|
+
"toolName",
|
|
163
|
+
"requestSchemaId",
|
|
164
|
+
"responseSchemaId",
|
|
165
|
+
"fixturePrefix",
|
|
166
|
+
"aliasMode",
|
|
167
|
+
"generationMode",
|
|
168
|
+
"writeMode",
|
|
169
|
+
"commandContent",
|
|
170
|
+
"productionRegistrationEligible",
|
|
171
|
+
"schemaConversionReady",
|
|
172
|
+
"commandAliasEligible",
|
|
173
|
+
"dispatchApprovalEligible",
|
|
174
|
+
"fallbackAuthority",
|
|
175
|
+
"hardCancelOrNoReplyAuthority",
|
|
176
|
+
"actualLaneLaunch",
|
|
177
|
+
"providerCall",
|
|
178
|
+
"runtimeExecution"
|
|
179
|
+
]),
|
|
180
|
+
validatePortableCommandFileName(artifact.commandName, artifact.commandFileName),
|
|
181
|
+
manifestEntry !== undefined ? valid() : invalid("commandName is not in the Release 1 command manifest"),
|
|
182
|
+
manifestEntry?.toolName === artifact.toolName ? valid() : invalid("toolName does not align with command manifest"),
|
|
183
|
+
manifestEntry?.requestSchemaId === artifact.requestSchemaId ? valid() : invalid("requestSchemaId does not align with command manifest"),
|
|
184
|
+
manifestEntry?.responseSchemaId === artifact.responseSchemaId ? valid() : invalid("responseSchemaId does not align with command manifest"),
|
|
185
|
+
manifestEntry?.fixturePrefix === artifact.fixturePrefix ? valid() : invalid("fixturePrefix does not align with command manifest"),
|
|
186
|
+
toolStub !== undefined ? valid() : invalid("pre-spike plugin tool stub is missing"),
|
|
187
|
+
toolStub?.requestSchemaId === artifact.requestSchemaId ? valid() : invalid("request schema does not align with plugin tool stub"),
|
|
188
|
+
artifact.commandFileId === `flowdesk-portable-command-file:${artifact.fixturePrefix}:v1` ? valid() : invalid("commandFileId does not align with fixture prefix"),
|
|
189
|
+
artifact.commandProfileRelativePath === `commands/${artifact.commandFileName}` ? valid() : invalid("commandProfileRelativePath must remain commands/<portable-file>.md"),
|
|
190
|
+
artifact.aliasMode === "portable_only_pre_conformance" ? valid() : invalid("aliasMode must remain portable-only pre-conformance"),
|
|
191
|
+
artifact.generationMode === "inert_static_command_file_artifact" ? valid() : invalid("generationMode must remain inert"),
|
|
192
|
+
artifact.writeMode === "not_written_pre_spike_artifact" ? valid() : invalid("writeMode must not write files pre-spike"),
|
|
193
|
+
hasPassingFds1SchemaConversionSpike() === true ? valid() : invalid("FDS-1 runtime-closed schema compatibility must remain passing"),
|
|
194
|
+
validateCommandContent(artifact, manifestEntry),
|
|
195
|
+
authorityChecks(artifact)
|
|
196
|
+
]);
|
|
197
|
+
}
|
|
198
|
+
export function validateFlowDeskPortableCommandFileArtifactsComplete(artifacts = FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS) {
|
|
199
|
+
const expectedCommandNames = FLOWDESK_RELEASE_1_COMMAND_MANIFEST.map((entry) => entry.commandName);
|
|
200
|
+
const actualCommandNames = artifacts.map((artifact) => (isRecord(artifact) ? artifact.commandName : undefined));
|
|
201
|
+
return combine([
|
|
202
|
+
validateFlowDeskCommandManifestComplete(),
|
|
203
|
+
artifacts.length === expectedCommandNames.length ? valid() : invalid("portable command file artifacts must cover exactly the Release 1 minimum commands"),
|
|
204
|
+
JSON.stringify(actualCommandNames) === JSON.stringify(expectedCommandNames) ? valid() : invalid("portable command file artifact order or membership is not exact"),
|
|
205
|
+
FLOWDESK_PRE_SPIKE_WRITTEN_COMMAND_FILE_REGISTRY.length === 0 ? valid() : invalid("pre-spike written command file registry must remain empty"),
|
|
206
|
+
getFlowDeskPreSpikeProductionCommandRegistry().length === 0 ? valid() : invalid("pre-spike production command registry must remain empty"),
|
|
207
|
+
...artifacts.map((artifact) => validateFlowDeskPortableCommandFileArtifact(artifact))
|
|
208
|
+
]);
|
|
209
|
+
}
|
|
210
|
+
function resolveProfileCommandPath(profileRootDir, artifact) {
|
|
211
|
+
const root = resolve(profileRootDir);
|
|
212
|
+
const target = resolve(root, artifact.commandProfileRelativePath);
|
|
213
|
+
const temp = resolve(root, `${artifact.commandProfileRelativePath}.tmp-${artifact.fixturePrefix}`);
|
|
214
|
+
const rootPrefix = root.endsWith(sep) ? root : `${root}${sep}`;
|
|
215
|
+
if (target !== root && !target.startsWith(rootPrefix))
|
|
216
|
+
throw new Error("portable command target escapes profile root");
|
|
217
|
+
if (temp !== root && !temp.startsWith(rootPrefix))
|
|
218
|
+
throw new Error("portable command temp target escapes profile root");
|
|
219
|
+
return { root, target, temp };
|
|
220
|
+
}
|
|
221
|
+
export function materializeFlowDeskPortableCommandFiles(profileRootDir, artifacts = FLOWDESK_PORTABLE_COMMAND_FILE_ARTIFACTS) {
|
|
222
|
+
if (typeof profileRootDir !== "string" || profileRootDir.trim().length === 0)
|
|
223
|
+
return { ...invalid("profileRootDir is required"), commandFilesWritten: 0, aliasFilesWritten: 0, ...materializationDisabledAuthority };
|
|
224
|
+
const completeness = validateFlowDeskPortableCommandFileArtifactsComplete(artifacts);
|
|
225
|
+
if (!completeness.ok)
|
|
226
|
+
return { ...invalid(...completeness.errors), commandFilesWritten: 0, aliasFilesWritten: 0, ...materializationDisabledAuthority };
|
|
227
|
+
const writtenCommandRefs = [];
|
|
228
|
+
try {
|
|
229
|
+
const root = resolve(profileRootDir);
|
|
230
|
+
for (const artifact of artifacts) {
|
|
231
|
+
const resolved = resolveProfileCommandPath(root, artifact);
|
|
232
|
+
mkdirSync(dirname(resolved.target), { recursive: true });
|
|
233
|
+
writeFileSync(resolved.temp, `${artifact.commandContent}\n`, "utf8");
|
|
234
|
+
renameSync(resolved.temp, resolved.target);
|
|
235
|
+
writtenCommandRefs.push(artifact.commandProfileRelativePath);
|
|
236
|
+
}
|
|
237
|
+
return { ...valid(), profileRootDir: root, writtenCommandRefs, commandFilesWritten: writtenCommandRefs.length, aliasFilesWritten: 0, ...materializationDisabledAuthority };
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
return { ...invalid(error instanceof Error ? error.message : "portable command materialization failed"), writtenCommandRefs, commandFilesWritten: writtenCommandRefs.length, aliasFilesWritten: 0, ...materializationDisabledAuthority };
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
function validateDesiredAliasName(value) {
|
|
244
|
+
if (typeof value !== "string")
|
|
245
|
+
return invalid("desiredAlias must be a string");
|
|
246
|
+
if (!/^\/flowdesk:[a-z-]+$/.test(value))
|
|
247
|
+
return invalid("desiredAlias must use the blocked colon alias shape");
|
|
248
|
+
if (value.includes("/") && !value.startsWith("/flowdesk:"))
|
|
249
|
+
return invalid("desiredAlias contains an unsafe slash");
|
|
250
|
+
return valid();
|
|
251
|
+
}
|
|
252
|
+
export function validateFlowDeskDesiredAliasGateArtifact(artifact) {
|
|
253
|
+
if (!isRecord(artifact))
|
|
254
|
+
return invalid("desired alias gate artifact must be an object");
|
|
255
|
+
const commandArtifact = typeof artifact.portableFallbackCommand === "string" ? getFlowDeskPortableCommandFileArtifact(artifact.portableFallbackCommand) : undefined;
|
|
256
|
+
return combine([
|
|
257
|
+
rejectUnknownProperties(artifact, [
|
|
258
|
+
"aliasGateId",
|
|
259
|
+
"desiredAlias",
|
|
260
|
+
"portableFallbackCommand",
|
|
261
|
+
"portableCommandFileName",
|
|
262
|
+
"toolName",
|
|
263
|
+
"conformanceMode",
|
|
264
|
+
"aliasGenerationMode",
|
|
265
|
+
"aliasWriteMode",
|
|
266
|
+
"requiredConformanceRef",
|
|
267
|
+
"productionRegistrationEligible",
|
|
268
|
+
"schemaConversionReady",
|
|
269
|
+
"commandAliasEligible",
|
|
270
|
+
"dispatchApprovalEligible",
|
|
271
|
+
"fallbackAuthority",
|
|
272
|
+
"hardCancelOrNoReplyAuthority",
|
|
273
|
+
"actualLaneLaunch",
|
|
274
|
+
"providerCall",
|
|
275
|
+
"runtimeExecution"
|
|
276
|
+
]),
|
|
277
|
+
validateDesiredAliasName(artifact.desiredAlias),
|
|
278
|
+
commandArtifact !== undefined ? valid() : invalid("portableFallbackCommand is not a Release 1 command artifact"),
|
|
279
|
+
commandArtifact !== undefined && artifact.desiredAlias === desiredAliasFor(commandArtifact.commandName) ? valid() : invalid("desiredAlias does not align with portable fallback command"),
|
|
280
|
+
commandArtifact?.commandFileName === artifact.portableCommandFileName ? valid() : invalid("portableCommandFileName does not align with fallback command"),
|
|
281
|
+
commandArtifact?.toolName === artifact.toolName ? valid() : invalid("toolName does not align with fallback command"),
|
|
282
|
+
commandArtifact !== undefined && artifact.aliasGateId === `flowdesk-desired-alias-gate:${commandArtifact.fixturePrefix}:v1` ? valid() : invalid("aliasGateId does not align with fixture prefix"),
|
|
283
|
+
artifact.conformanceMode === "portable_only_pre_conformance" ? valid() : invalid("conformanceMode must remain portable-only pre-conformance"),
|
|
284
|
+
artifact.aliasGenerationMode === "blocked_until_alias_conformance_passes" ? valid() : invalid("aliasGenerationMode must remain blocked"),
|
|
285
|
+
artifact.aliasWriteMode === "not_written_pre_conformance_artifact" ? valid() : invalid("aliasWriteMode must not write aliases pre-conformance"),
|
|
286
|
+
artifact.requiredConformanceRef === "missing_pinned_alias_parser_conformance" ? valid() : invalid("requiredConformanceRef must remain missing before conformance passes"),
|
|
287
|
+
hasPassingFds1SchemaConversionSpike() === true ? valid() : invalid("FDS-1 runtime-closed schema compatibility must remain passing"),
|
|
288
|
+
authorityChecks(artifact)
|
|
289
|
+
]);
|
|
290
|
+
}
|
|
291
|
+
export function validateFlowDeskDesiredAliasGateArtifactsComplete(artifacts = FLOWDESK_DESIRED_ALIAS_GATE_ARTIFACTS) {
|
|
292
|
+
const expectedAliases = FLOWDESK_RELEASE_1_MINIMUM_PORTABLE_COMMAND_NAMES.map(desiredAliasFor);
|
|
293
|
+
const actualAliases = artifacts.map((artifact) => (isRecord(artifact) ? artifact.desiredAlias : undefined));
|
|
294
|
+
return combine([
|
|
295
|
+
validateFlowDeskPortableCommandFileArtifactsComplete(),
|
|
296
|
+
artifacts.length === expectedAliases.length ? valid() : invalid("desired alias gate artifacts must cover exactly the Release 1 minimum commands"),
|
|
297
|
+
JSON.stringify(actualAliases) === JSON.stringify(expectedAliases) ? valid() : invalid("desired alias gate order or membership is not exact"),
|
|
298
|
+
FLOWDESK_PRE_CONFORMANCE_WRITTEN_ALIAS_REGISTRY.length === 0 ? valid() : invalid("pre-conformance written alias registry must remain empty"),
|
|
299
|
+
...artifacts.map((artifact) => validateFlowDeskDesiredAliasGateArtifact(artifact))
|
|
300
|
+
]);
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const flowdeskOpencodePluginPackageName: "@flowdesk/opencode-plugin";
|
|
2
|
+
export declare const flowdeskPluginId: "flowdesk";
|
|
3
|
+
export declare const flowdeskPluginScaffold: {
|
|
4
|
+
readonly packageName: "@flowdesk/opencode-plugin";
|
|
5
|
+
readonly pluginId: "flowdesk";
|
|
6
|
+
readonly releaseScope: readonly ["guarded-command-backed-workflows", "dry-run", "fake-runtime", "redacted-audit-debug", "no-real-dispatch"];
|
|
7
|
+
readonly productionToolRegistration: "release1-non-dispatch-command-backed";
|
|
8
|
+
readonly runtimeBoundary: {
|
|
9
|
+
readonly releaseGate: "release1-general-use-mvp";
|
|
10
|
+
readonly realOpenCodeDispatch: "disabled";
|
|
11
|
+
readonly providerModelFallback: "disabled";
|
|
12
|
+
readonly hardChatCancelOrNoReply: "disabled";
|
|
13
|
+
readonly cliSubprocessDispatch: "disabled";
|
|
14
|
+
};
|
|
15
|
+
readonly supportedPhase0Modes: readonly ["dry-run", "fake-runtime"];
|
|
16
|
+
};
|
|
17
|
+
export declare function describeFlowDeskPluginScaffold(): string;
|
|
18
|
+
export declare function hasProductionOpenCodeRegistration(): true;
|
|
19
|
+
export * from "./bootstrap-cli.js";
|
|
20
|
+
export * from "./bootstrap-installer.js";
|
|
21
|
+
export * from "./command-handlers.js";
|
|
22
|
+
export * from "./commands.js";
|
|
23
|
+
export * from "./local-adapter.js";
|
|
24
|
+
export * from "./managed-dispatch-adapter.js";
|
|
25
|
+
export * from "./tool-stubs.js";
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iCAAiC,EAAG,2BAAoC,CAAC;AACtF,eAAO,MAAM,gBAAgB,EAAG,UAAmB,CAAC;AAEpD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;CAOzB,CAAC;AAEX,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { flowdeskNoRealDispatchBoundary, flowdeskRelease1Scope } from "@flowdesk/core";
|
|
2
|
+
export const flowdeskOpencodePluginPackageName = "@flowdesk/opencode-plugin";
|
|
3
|
+
export const flowdeskPluginId = "flowdesk";
|
|
4
|
+
export const flowdeskPluginScaffold = {
|
|
5
|
+
packageName: flowdeskOpencodePluginPackageName,
|
|
6
|
+
pluginId: flowdeskPluginId,
|
|
7
|
+
releaseScope: flowdeskRelease1Scope,
|
|
8
|
+
productionToolRegistration: "release1-non-dispatch-command-backed",
|
|
9
|
+
runtimeBoundary: flowdeskNoRealDispatchBoundary,
|
|
10
|
+
supportedPhase0Modes: ["dry-run", "fake-runtime"]
|
|
11
|
+
};
|
|
12
|
+
export function describeFlowDeskPluginScaffold() {
|
|
13
|
+
return `${flowdeskPluginScaffold.packageName}: ${flowdeskPluginScaffold.productionToolRegistration}`;
|
|
14
|
+
}
|
|
15
|
+
export function hasProductionOpenCodeRegistration() {
|
|
16
|
+
return true;
|
|
17
|
+
}
|
|
18
|
+
export * from "./bootstrap-cli.js";
|
|
19
|
+
export * from "./bootstrap-installer.js";
|
|
20
|
+
export * from "./command-handlers.js";
|
|
21
|
+
export * from "./commands.js";
|
|
22
|
+
export * from "./local-adapter.js";
|
|
23
|
+
export * from "./managed-dispatch-adapter.js";
|
|
24
|
+
export * from "./tool-stubs.js";
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACtB,MAAM,gBAAgB,CAAC;AAExB,MAAM,CAAC,MAAM,iCAAiC,GAAG,2BAAoC,CAAC;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,WAAW,EAAE,iCAAiC;IAC9C,QAAQ,EAAE,gBAAgB;IAC1B,YAAY,EAAE,qBAAqB;IACnC,0BAA0B,EAAE,sCAAsC;IAClE,eAAe,EAAE,8BAA8B;IAC/C,oBAAoB,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC;CACzC,CAAC;AAEX,MAAM,UAAU,8BAA8B;IAC5C,OAAO,GAAG,sBAAsB,CAAC,WAAW,KAAK,sBAAsB,CAAC,0BAA0B,EAAE,CAAC;AACvG,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { FlowDeskNonDispatchPermissionV1, FlowDeskProductionApprovalDecisionV1, FlowDeskRelease1MinimumToolName, FlowDeskWorkflowRecordV1, ValidationResult } from "@flowdesk/core";
|
|
2
|
+
import type { FlowDeskCommandBackedHandlerResultV1 } from "./command-handlers.js";
|
|
3
|
+
export declare const flowdeskLocalNonDispatchAdapterProfile: "local_non_dispatch_command_adapter";
|
|
4
|
+
export interface FlowDeskLocalNonDispatchAdapterStateSummaryV1 {
|
|
5
|
+
workflowId?: string;
|
|
6
|
+
workflowState?: FlowDeskWorkflowRecordV1["state"];
|
|
7
|
+
pendingConfirmationStatus?: "pending" | "consumed" | "cancelled" | "expired" | "missing";
|
|
8
|
+
pendingConfirmationRef?: string;
|
|
9
|
+
pendingConfirmationWorkflowId?: string;
|
|
10
|
+
pendingConfirmationExpiresAt?: string;
|
|
11
|
+
laneRecords: number;
|
|
12
|
+
inMemoryStateEntries: number;
|
|
13
|
+
durableStateMode: "memory_only" | "durable_flowdesk_root";
|
|
14
|
+
durableStateWriteApplied: boolean;
|
|
15
|
+
durableStateWrites: number;
|
|
16
|
+
stateWriteApplied: boolean;
|
|
17
|
+
permissionSource: "tool_boundary_injected";
|
|
18
|
+
realOpenCodeDispatch: false;
|
|
19
|
+
actualLaneLaunch: false;
|
|
20
|
+
providerCall: false;
|
|
21
|
+
runtimeExecution: false;
|
|
22
|
+
fallbackAuthority: false;
|
|
23
|
+
hardCancelOrNoReplyAuthority: false;
|
|
24
|
+
}
|
|
25
|
+
export interface FlowDeskLocalNonDispatchAdapterToolResultV1 extends ValidationResult {
|
|
26
|
+
adapterProfile: typeof flowdeskLocalNonDispatchAdapterProfile;
|
|
27
|
+
toolName: FlowDeskRelease1MinimumToolName;
|
|
28
|
+
handler: FlowDeskCommandBackedHandlerResultV1;
|
|
29
|
+
localState: FlowDeskLocalNonDispatchAdapterStateSummaryV1;
|
|
30
|
+
productionRegistrationEligible: false;
|
|
31
|
+
realOpenCodeDispatch: false;
|
|
32
|
+
actualLaneLaunch: false;
|
|
33
|
+
providerCall: false;
|
|
34
|
+
runtimeExecution: false;
|
|
35
|
+
fallbackAuthority: false;
|
|
36
|
+
hardCancelOrNoReplyAuthority: false;
|
|
37
|
+
}
|
|
38
|
+
export interface FlowDeskLocalNonDispatchAdapterSessionV1 {
|
|
39
|
+
state: unknown;
|
|
40
|
+
evaluate(toolName: FlowDeskRelease1MinimumToolName, request: unknown): FlowDeskLocalNonDispatchAdapterToolResultV1;
|
|
41
|
+
}
|
|
42
|
+
export type FlowDeskLocalNonDispatchPermissionProviderV1 = (input: {
|
|
43
|
+
nowIso: string;
|
|
44
|
+
expiresAtIso: string;
|
|
45
|
+
workflowId: string;
|
|
46
|
+
permissionClass: FlowDeskNonDispatchPermissionV1["permission_class"];
|
|
47
|
+
}) => FlowDeskNonDispatchPermissionV1;
|
|
48
|
+
export type FlowDeskLocalClockV1 = Date | (() => Date);
|
|
49
|
+
export interface FlowDeskLocalNonDispatchAdapterSessionOptionsV1 {
|
|
50
|
+
durableStateRootDir?: string;
|
|
51
|
+
productionEnablement?: FlowDeskLocalProductionEnablementOptionsV1;
|
|
52
|
+
}
|
|
53
|
+
export interface FlowDeskLocalProductionEnablementOptionsV1 {
|
|
54
|
+
enabled: true;
|
|
55
|
+
preDispatchAuditRef?: string;
|
|
56
|
+
configuredVerificationRef?: string;
|
|
57
|
+
externalAuthPolicyRef?: string;
|
|
58
|
+
providerPolicyRef?: string;
|
|
59
|
+
laneConformanceRefs?: string[];
|
|
60
|
+
allowIncompleteConformance?: boolean;
|
|
61
|
+
approvalDecision?: FlowDeskProductionApprovalDecisionV1;
|
|
62
|
+
}
|
|
63
|
+
export declare function createFlowDeskLocalNonDispatchPermissionProvider(): FlowDeskLocalNonDispatchPermissionProviderV1;
|
|
64
|
+
export declare function createFlowDeskLocalNonDispatchAdapterSession(now?: FlowDeskLocalClockV1, permissionProvider?: FlowDeskLocalNonDispatchPermissionProviderV1, options?: FlowDeskLocalNonDispatchAdapterSessionOptionsV1): FlowDeskLocalNonDispatchAdapterSessionV1;
|
|
65
|
+
//# sourceMappingURL=local-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-adapter.d.ts","sourceRoot":"","sources":["../src/local-adapter.ts"],"names":[],"mappings":"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"}
|