@farmslot/agent-runtime 0.3.1 → 0.5.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/CHANGELOG.md +11 -0
- package/bin/farmslot-agent.mjs +1 -1
- package/dist/execution-template/create.d.ts.map +1 -1
- package/dist/execution-template/create.js +9 -1
- package/dist/execution-template/create.js.map +1 -1
- package/dist/execution-template/execution-template.test.js +309 -1
- package/dist/execution-template/execution-template.test.js.map +1 -1
- package/dist/execution-template/frontmatter.d.ts.map +1 -1
- package/dist/execution-template/frontmatter.js +19 -4
- package/dist/execution-template/frontmatter.js.map +1 -1
- package/dist/execution-template/index.d.ts +8 -1
- package/dist/execution-template/index.d.ts.map +1 -1
- package/dist/execution-template/index.js +5 -0
- package/dist/execution-template/index.js.map +1 -1
- package/dist/execution-template/infer.d.ts.map +1 -1
- package/dist/execution-template/infer.js +14 -1
- package/dist/execution-template/infer.js.map +1 -1
- package/dist/execution-template/lint.d.ts.map +1 -1
- package/dist/execution-template/lint.js +8 -0
- package/dist/execution-template/lint.js.map +1 -1
- package/dist/execution-template/project-worker.d.ts +19 -0
- package/dist/execution-template/project-worker.d.ts.map +1 -0
- package/dist/execution-template/project-worker.js +143 -0
- package/dist/execution-template/project-worker.js.map +1 -0
- package/dist/execution-template/resolve.d.ts +1 -1
- package/dist/execution-template/resolve.d.ts.map +1 -1
- package/dist/execution-template/resolve.js +12 -2
- package/dist/execution-template/resolve.js.map +1 -1
- package/dist/execution-template/select.d.ts +8 -0
- package/dist/execution-template/select.d.ts.map +1 -0
- package/dist/execution-template/select.js +80 -0
- package/dist/execution-template/select.js.map +1 -0
- package/dist/execution-template/snapshot.d.ts +13 -0
- package/dist/execution-template/snapshot.d.ts.map +1 -0
- package/dist/execution-template/snapshot.js +46 -0
- package/dist/execution-template/snapshot.js.map +1 -0
- package/dist/execution-template/source-config.d.ts +19 -0
- package/dist/execution-template/source-config.d.ts.map +1 -0
- package/dist/execution-template/source-config.js +90 -0
- package/dist/execution-template/source-config.js.map +1 -0
- package/dist/execution-template/types.d.ts +38 -1
- package/dist/execution-template/types.d.ts.map +1 -1
- package/dist/execution-template/types.js +7 -2
- package/dist/execution-template/types.js.map +1 -1
- package/package.json +4 -3
- package/scripts/check-task-artifact-contract.mjs +112 -33
- package/scripts/checklist-target.cjs +13 -0
- package/scripts/execution-template-cli.mjs +150 -19
- package/scripts/mark-checklist-step.cjs +16 -6
|
@@ -2,6 +2,13 @@ export { createExecutionTemplate } from './create.js';
|
|
|
2
2
|
export { frontmatterPlatforms, frontmatterRunMode, normalizePlatforms, normalizeRunMode, parseMarkdownDocument, } from './frontmatter.js';
|
|
3
3
|
export { catalogRelativeId, FARMSLOT_FLOW_PREFIXES, humanizeBasename, inferFlowFromBasename, inferFlowFromPath, inferPlatformsFromBasename, inferRunModeFromBasename, inferTemplateMetadata, } from './infer.js';
|
|
4
4
|
export { lintExecutionTemplates, lintExecutionTemplateText } from './lint.js';
|
|
5
|
+
export type { ResolvedProjectWorkerTemplate } from './project-worker.js';
|
|
6
|
+
export { defaultProjectWorkerTemplateFileName, domainProjectWorkerTemplateFileName, listProjectWorkerTemplateOptions, normalizeProjectWorkerTemplateSelection, parseProjectWorkerTemplateFileName, PROJECT_WORKER_TEMPLATE_BY_FLOW, resolveProjectWorkerTemplate, resolveProjectWorkerTemplateForRun, } from './project-worker.js';
|
|
5
7
|
export { customTemplateSource, listExecutionTemplates, packageFlowTreeTemplateSource, projectWorkerTemplateSource, } from './resolve.js';
|
|
6
|
-
export
|
|
8
|
+
export { listCompatibleExecutionTemplates, selectExecutionTemplate } from './select.js';
|
|
9
|
+
export { executionTemplateReference, materializeExecutionTemplate, readExecutionTemplateSnapshot, sha256Text, } from './snapshot.js';
|
|
10
|
+
export type { ResolveConfiguredExecutionTemplateSourcesOptions, ResolvedExecutionTemplateSources, UnavailableExecutionTemplateSource, } from './source-config.js';
|
|
11
|
+
export { executionTemplateSourceDirty, executionTemplateSourceRevision, resolveConfiguredExecutionTemplateSources, } from './source-config.js';
|
|
12
|
+
export type { CreateExecutionTemplateOptions, ExecutionRunMode, ExecutionTemplateEntry, ExecutionTemplateFrontmatter, ExecutionTemplateLayout, ExecutionTemplateSelectionErrorCode, ExecutionTemplateSelectionReason, ExecutionTemplateSource, ExecutionTemplateSourceKind, LintExecutionTemplatesResult, LintIssue, ListCompatibleExecutionTemplatesOptions, ListExecutionTemplatesOptions, SelectedExecutionTemplate, SelectExecutionTemplateOptions, } from './types.js';
|
|
13
|
+
export { ExecutionTemplateSelectionError } from './types.js';
|
|
7
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution-template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,8BAA8B,EAC9B,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,SAAS,EACT,6BAA6B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/execution-template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EACL,oCAAoC,EACpC,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,YAAY,EACV,gDAAgD,EAChD,gCAAgC,EAChC,kCAAkC,GACnC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,8BAA8B,EAC9B,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,uBAAuB,EACvB,mCAAmC,EACnC,gCAAgC,EAChC,uBAAuB,EACvB,2BAA2B,EAC3B,4BAA4B,EAC5B,SAAS,EACT,uCAAuC,EACvC,6BAA6B,EAC7B,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -2,5 +2,10 @@ export { createExecutionTemplate } from './create.js';
|
|
|
2
2
|
export { frontmatterPlatforms, frontmatterRunMode, normalizePlatforms, normalizeRunMode, parseMarkdownDocument, } from './frontmatter.js';
|
|
3
3
|
export { catalogRelativeId, FARMSLOT_FLOW_PREFIXES, humanizeBasename, inferFlowFromBasename, inferFlowFromPath, inferPlatformsFromBasename, inferRunModeFromBasename, inferTemplateMetadata, } from './infer.js';
|
|
4
4
|
export { lintExecutionTemplates, lintExecutionTemplateText } from './lint.js';
|
|
5
|
+
export { defaultProjectWorkerTemplateFileName, domainProjectWorkerTemplateFileName, listProjectWorkerTemplateOptions, normalizeProjectWorkerTemplateSelection, parseProjectWorkerTemplateFileName, PROJECT_WORKER_TEMPLATE_BY_FLOW, resolveProjectWorkerTemplate, resolveProjectWorkerTemplateForRun, } from './project-worker.js';
|
|
5
6
|
export { customTemplateSource, listExecutionTemplates, packageFlowTreeTemplateSource, projectWorkerTemplateSource, } from './resolve.js';
|
|
7
|
+
export { listCompatibleExecutionTemplates, selectExecutionTemplate } from './select.js';
|
|
8
|
+
export { executionTemplateReference, materializeExecutionTemplate, readExecutionTemplateSnapshot, sha256Text, } from './snapshot.js';
|
|
9
|
+
export { executionTemplateSourceDirty, executionTemplateSourceRevision, resolveConfiguredExecutionTemplateSources, } from './source-config.js';
|
|
10
|
+
export { ExecutionTemplateSelectionError } from './types.js';
|
|
6
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/execution-template/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAE9E,OAAO,EACL,oCAAoC,EACpC,mCAAmC,EACnC,gCAAgC,EAChC,uCAAuC,EACvC,kCAAkC,EAClC,+BAA+B,EAC/B,4BAA4B,EAC5B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,sBAAsB,EACtB,6BAA6B,EAC7B,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,gCAAgC,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,UAAU,GACX,MAAM,eAAe,CAAC;AAMvB,OAAO,EACL,4BAA4B,EAC5B,+BAA+B,EAC/B,yCAAyC,GAC1C,MAAM,oBAAoB,CAAC;AAkB5B,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/execution-template/infer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/execution-template/infer.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,gBAAgB,EAChB,sBAAsB,EAEtB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AAEpB,4FAA4F;AAC5F,eAAO,MAAM,sBAAsB,sIAUzB,CAAC;AAIX,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQrE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOrE;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAelF;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAM5E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAS/F;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,uBAAuB,CAAC;IAChC,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,IAAI,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAyD7C"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import path from 'node:path';
|
|
2
|
+
import { EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX } from '@farmslot/protocol';
|
|
2
3
|
import { frontmatterPlatforms, frontmatterRunMode, parseMarkdownDocument, } from './frontmatter.js';
|
|
4
|
+
import { sha256Text } from './snapshot.js';
|
|
3
5
|
/** Longest-first so `fix-bug` / `pr-complete` / `self-review` win over shorter prefixes. */
|
|
4
6
|
export const FARMSLOT_FLOW_PREFIXES = [
|
|
5
7
|
'self-review-fix',
|
|
@@ -96,16 +98,24 @@ export function inferTemplateMetadata(input) {
|
|
|
96
98
|
const id = idFromFm || catalogRelativeId(input.relativePath, input.source.layout);
|
|
97
99
|
const titleFromFm = typeof fm?.title === 'string' ? fm.title.trim() : '';
|
|
98
100
|
const title = titleFromFm || parsed.heading || humanizeBasename(basename);
|
|
101
|
+
const descriptionFromFm = typeof fm?.description === 'string' ? fm.description.trim() : '';
|
|
99
102
|
const versionRaw = fm?.version;
|
|
100
103
|
const version = versionRaw == null || versionRaw === '' ? '1' : String(versionRaw);
|
|
101
104
|
const runMode = frontmatterRunMode(fm) ?? inferRunModeFromBasename(basename);
|
|
102
105
|
const platforms = frontmatterPlatforms(fm) ?? inferPlatformsFromBasename(basename) ?? ['*'];
|
|
103
|
-
const
|
|
106
|
+
const frontmatterLabels = Array.isArray(fm?.labels)
|
|
104
107
|
? fm.labels.filter((item) => typeof item === 'string')
|
|
105
108
|
: [];
|
|
109
|
+
const labels = [
|
|
110
|
+
...new Set([
|
|
111
|
+
...frontmatterLabels,
|
|
112
|
+
...(input.source.domains ?? []).map((domain) => `${EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX}${domain}`),
|
|
113
|
+
]),
|
|
114
|
+
];
|
|
106
115
|
return {
|
|
107
116
|
id,
|
|
108
117
|
title,
|
|
118
|
+
...(descriptionFromFm ? { description: descriptionFromFm } : {}),
|
|
109
119
|
flow,
|
|
110
120
|
version,
|
|
111
121
|
runMode,
|
|
@@ -115,6 +125,9 @@ export function inferTemplateMetadata(input) {
|
|
|
115
125
|
relativePath: input.relativePath.replace(/\\/g, '/'),
|
|
116
126
|
sourceId: input.source.id,
|
|
117
127
|
sourceKind: input.source.kind,
|
|
128
|
+
sha256: sha256Text(input.text),
|
|
129
|
+
sourceRevision: input.source.sourceRevision,
|
|
130
|
+
sourceDirty: input.source.sourceDirty,
|
|
118
131
|
frontmatter: fm,
|
|
119
132
|
heading: parsed.heading,
|
|
120
133
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infer.js","sourceRoot":"","sources":["../../src/execution-template/infer.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAElB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"infer.js","sourceRoot":"","sources":["../../src/execution-template/infer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/execution-template/lint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2B1E,wGAAwG;AACxG,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../src/execution-template/lint.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,4BAA4B,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AA2B1E,wGAAwG;AACxG,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAoIrF;AAMD,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,4BAA4B,CAsDnF"}
|
|
@@ -115,6 +115,14 @@ export function lintExecutionTemplateText(filePath, text) {
|
|
|
115
115
|
message: 'frontmatter flow must be a string',
|
|
116
116
|
});
|
|
117
117
|
}
|
|
118
|
+
if (frontmatter.description != null &&
|
|
119
|
+
(typeof frontmatter.description !== 'string' || !frontmatter.description.trim())) {
|
|
120
|
+
issues.push({
|
|
121
|
+
path: filePath,
|
|
122
|
+
severity: 'error',
|
|
123
|
+
message: 'frontmatter description must be a non-empty string',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
118
126
|
}
|
|
119
127
|
const lines = body.split(/\r?\n/);
|
|
120
128
|
let checkboxCount = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/execution-template/lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,MAAM,WAAW,GAAG,6BAA6B,CAAC;AAElD,SAAS,sBAAsB,CAAC,MAAc;IAC5C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,MAAM,EAAE;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAEjC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE;QAC1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,IAAI,KAAK,GAAG,CAAC;oBAAE,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAChB,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,GAAG,+BAA+B,CAAC;AAEnD,wGAAwG;AACxG,MAAM,UAAU,yBAAyB,CAAC,QAAgB,EAAE,IAAY;IACtE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAE1D,2EAA2E;IAC3E,iDAAiD;IACjD,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,kEAAkE;SAC5E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,gFAAgF,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC9H,CAAC,CAAC;IACL,CAAC;IACD,yEAAyE;IACzE,0EAA0E;IAC1E,mBAAmB;IACnB,MAAM,YAAY,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,QAAQ,IAAI,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,kBAAkB,YAAY,qCAAqC,QAAQ,GAAG;SACxF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,yDAAyD;SACnE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,WAAW,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GACV,OAAO,EAAE,KAAK,QAAQ;gBACtB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAC5B,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,OAAO;oBACjB,OAAO,EACL,2GAA2G;iBAC9G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,qBAAqB,MAAM,kCAAkC,QAAQ,GAAG;aAClF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,WAAW,CAAC,OAAO,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,+DAA+D;iBACzE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;YACxE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,wDAAwD;aAClE,CAAC,CAAC;QACL,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,IAAI,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,mCAAmC;aAC7C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC1C,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,aAAa,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,iDAAiD;SACxE,CAAC,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,6EAA6E;IAC7E,MAAM,OAAO,GAAG,kBAAkB,CAAC,WAAW,CAAC,IAAI,wBAAwB,CAAC,QAAQ,CAAC,CAAC;IACtF,IAAI,aAAa,KAAK,CAAC,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,iDAAiD;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,OAAO,CAAC,QAAgB;IAC/B,OAAO,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,sBAAsB,CAAC,MAAc;IACnD,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,YAAY,EAAE,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;oBAC1B,QAAQ,EAAE,OAAO;oBACjB,OAAO,EAAE,6BAA6B;iBACvC;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAEtC,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,oEAAoE;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,0EAA0E;QAC1E,sEAAsE;QACtE,0EAA0E;QAC1E,cAAc;QACd,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9E,MAAM,UAAU,GAAG,OAAO,EAAE,EAAE,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAI,sBAA4C,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3E,CAAC,CAAE,WAAqB;YACxB,CAAC,CAAE,aAAuB,CAAC;QAC7B,MAAM,GAAG,GACP,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,EAAE,GAAG,UAAU,IAAI,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,OAAO,EAAE,yBAAyB,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACrG,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,OAAO,CAAC;QACvD,YAAY,EAAE,KAAK,CAAC,MAAM;QAC1B,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"lint.js","sourceRoot":"","sources":["../../src/execution-template/lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type TaskTemplateSelection, type TaskTemplateSelectionSource, type WorkerTemplateOption } from '@farmslot/protocol';
|
|
2
|
+
export declare const PROJECT_WORKER_TEMPLATE_BY_FLOW: Record<string, string>;
|
|
3
|
+
export interface ResolvedProjectWorkerTemplate extends WorkerTemplateOption {
|
|
4
|
+
templatePath: string;
|
|
5
|
+
content: string;
|
|
6
|
+
selectionSource: TaskTemplateSelectionSource;
|
|
7
|
+
selectionReason: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function defaultProjectWorkerTemplateFileName(flow: string): string;
|
|
10
|
+
export declare function parseProjectWorkerTemplateFileName(flow: string, fileName: string): {
|
|
11
|
+
variant: string | null;
|
|
12
|
+
isDefault: boolean;
|
|
13
|
+
} | null;
|
|
14
|
+
export declare function listProjectWorkerTemplateOptions(projectTemplatesDir: string, flow: string): Promise<WorkerTemplateOption[]>;
|
|
15
|
+
export declare function normalizeProjectWorkerTemplateSelection(flow: string, selection: TaskTemplateSelection): TaskTemplateSelection;
|
|
16
|
+
export declare function resolveProjectWorkerTemplate(projectTemplatesDir: string, flow: string, selection?: TaskTemplateSelection | null, source?: TaskTemplateSelectionSource, reason?: string): Promise<ResolvedProjectWorkerTemplate>;
|
|
17
|
+
export declare function domainProjectWorkerTemplateFileName(flow: string, domain: string): string | null;
|
|
18
|
+
export declare function resolveProjectWorkerTemplateForRun(projectTemplatesDir: string, flow: string, mode?: 'interactive' | 'autonomous' | 'validation', selection?: TaskTemplateSelection | null, domain?: string): Promise<ResolvedProjectWorkerTemplate>;
|
|
19
|
+
//# sourceMappingURL=project-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-worker.d.ts","sourceRoot":"","sources":["../../src/execution-template/project-worker.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,+BAA+B,wBAAkC,CAAC;AAQ/E,MAAM,WAAW,6BAA8B,SAAQ,oBAAoB;IACzE,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,2BAA2B,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CASvD;AAwBD,wBAAsB,gCAAgC,CACpD,mBAAmB,EAAE,MAAM,EAC3B,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAWjC;AAED,wBAAgB,uCAAuC,CACrD,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,qBAAqB,GAC/B,qBAAqB,CAoBvB;AAED,wBAAsB,4BAA4B,CAChD,mBAAmB,EAAE,MAAM,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,EACxC,MAAM,CAAC,EAAE,2BAA2B,EACpC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,6BAA6B,CAAC,CA6BxC;AAED,wBAAgB,mCAAmC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/F;AAsBD,wBAAsB,kCAAkC,CACtD,mBAAmB,EAAE,MAAM,EAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,aAAa,GAAG,YAAY,GAAG,YAAY,EAClD,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,EACxC,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,6BAA6B,CAAC,CAsCxC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { access, readdir, readFile } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { DEFAULT_WORKER_TEMPLATE_BY_FLOW, } from '@farmslot/protocol';
|
|
5
|
+
export const PROJECT_WORKER_TEMPLATE_BY_FLOW = DEFAULT_WORKER_TEMPLATE_BY_FLOW;
|
|
6
|
+
const INTERACTIVE_PROJECT_WORKER_TEMPLATE_BY_FLOW = {
|
|
7
|
+
'fix-bug': 'fix-bug-interactive.md',
|
|
8
|
+
dev: 'dev-interactive.md',
|
|
9
|
+
'pr-complete': 'pr-complete-interactive.md',
|
|
10
|
+
};
|
|
11
|
+
export function defaultProjectWorkerTemplateFileName(flow) {
|
|
12
|
+
return PROJECT_WORKER_TEMPLATE_BY_FLOW[flow] ?? `${flow}.md`;
|
|
13
|
+
}
|
|
14
|
+
export function parseProjectWorkerTemplateFileName(flow, fileName) {
|
|
15
|
+
if (path.basename(fileName) !== fileName || !fileName.endsWith('.md'))
|
|
16
|
+
return null;
|
|
17
|
+
const defaultFileName = defaultProjectWorkerTemplateFileName(flow);
|
|
18
|
+
if (fileName === defaultFileName)
|
|
19
|
+
return { variant: null, isDefault: true };
|
|
20
|
+
const prefix = `${defaultFileName.replace(/\.md$/, '')}-`;
|
|
21
|
+
if (!fileName.startsWith(prefix))
|
|
22
|
+
return null;
|
|
23
|
+
const variant = fileName.slice(prefix.length, -'.md'.length).trim();
|
|
24
|
+
if (!/^[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?$/.test(variant))
|
|
25
|
+
return null;
|
|
26
|
+
return { variant, isDefault: false };
|
|
27
|
+
}
|
|
28
|
+
function projectWorkerTemplateLabel(flow, fileName, variant, isDefault) {
|
|
29
|
+
if (isDefault)
|
|
30
|
+
return `${flow} (default)`;
|
|
31
|
+
return variant ? `${flow} · ${variant}` : fileName;
|
|
32
|
+
}
|
|
33
|
+
function projectWorkerTemplateOption(flow, fileName) {
|
|
34
|
+
const parsed = parseProjectWorkerTemplateFileName(flow, fileName);
|
|
35
|
+
if (!parsed)
|
|
36
|
+
return null;
|
|
37
|
+
return {
|
|
38
|
+
flowType: flow,
|
|
39
|
+
fileName,
|
|
40
|
+
variant: parsed.variant,
|
|
41
|
+
label: projectWorkerTemplateLabel(flow, fileName, parsed.variant, parsed.isDefault),
|
|
42
|
+
isDefault: parsed.isDefault,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export async function listProjectWorkerTemplateOptions(projectTemplatesDir, flow) {
|
|
46
|
+
const workerDir = path.join(projectTemplatesDir, 'worker');
|
|
47
|
+
if (!existsSync(workerDir))
|
|
48
|
+
return [];
|
|
49
|
+
const files = (await readdir(workerDir)).filter((file) => file.endsWith('.md'));
|
|
50
|
+
return files
|
|
51
|
+
.map((file) => projectWorkerTemplateOption(flow, file))
|
|
52
|
+
.filter((option) => Boolean(option))
|
|
53
|
+
.sort((a, b) => {
|
|
54
|
+
if (a.isDefault !== b.isDefault)
|
|
55
|
+
return a.isDefault ? -1 : 1;
|
|
56
|
+
return a.fileName.localeCompare(b.fileName);
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export function normalizeProjectWorkerTemplateSelection(flow, selection) {
|
|
60
|
+
const fileName = path.basename(selection.fileName ?? '');
|
|
61
|
+
if (!fileName || fileName !== selection.fileName || !fileName.endsWith('.md')) {
|
|
62
|
+
throw new Error(`Invalid worker template selection for ${flow}: fileName must be a project-owned markdown basename`);
|
|
63
|
+
}
|
|
64
|
+
const parsed = parseProjectWorkerTemplateFileName(flow, fileName);
|
|
65
|
+
if (!parsed) {
|
|
66
|
+
const defaultFileName = defaultProjectWorkerTemplateFileName(flow);
|
|
67
|
+
throw new Error(`Invalid worker template selection for ${flow}: ${fileName} does not match ${defaultFileName} or ${defaultFileName.replace(/\.md$/, '')}-<variant>.md (lowercase variant, no trailing punctuation)`);
|
|
68
|
+
}
|
|
69
|
+
if (selection.variant != null && selection.variant !== parsed.variant) {
|
|
70
|
+
throw new Error(`Invalid worker template selection for ${flow}: variant ${selection.variant} does not match ${fileName}`);
|
|
71
|
+
}
|
|
72
|
+
return { fileName, variant: parsed.variant };
|
|
73
|
+
}
|
|
74
|
+
export async function resolveProjectWorkerTemplate(projectTemplatesDir, flow, selection, source, reason) {
|
|
75
|
+
const selectionSource = source ?? (selection ? 'explicit' : 'default');
|
|
76
|
+
const normalized = selection
|
|
77
|
+
? normalizeProjectWorkerTemplateSelection(flow, selection)
|
|
78
|
+
: { fileName: defaultProjectWorkerTemplateFileName(flow), variant: null };
|
|
79
|
+
const parsed = parseProjectWorkerTemplateFileName(flow, normalized.fileName);
|
|
80
|
+
if (!parsed) {
|
|
81
|
+
throw new Error(`Invalid worker template selection for ${flow}: ${normalized.fileName}`);
|
|
82
|
+
}
|
|
83
|
+
const templatePath = path.join(projectTemplatesDir, 'worker', normalized.fileName);
|
|
84
|
+
if (!existsSync(templatePath)) {
|
|
85
|
+
const prefix = selection ? 'selected ' : '';
|
|
86
|
+
throw new Error(`${prefix}Worker template not found: ${templatePath}`);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
flowType: flow,
|
|
90
|
+
fileName: normalized.fileName,
|
|
91
|
+
variant: parsed.variant,
|
|
92
|
+
label: projectWorkerTemplateLabel(flow, normalized.fileName, parsed.variant, parsed.isDefault),
|
|
93
|
+
isDefault: parsed.isDefault,
|
|
94
|
+
templatePath,
|
|
95
|
+
content: await readFile(templatePath, 'utf8'),
|
|
96
|
+
selectionSource,
|
|
97
|
+
selectionReason: reason ??
|
|
98
|
+
(selectionSource === 'explicit'
|
|
99
|
+
? 'explicit taskTemplate selection'
|
|
100
|
+
: 'default flow template selection'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
export function domainProjectWorkerTemplateFileName(flow, domain) {
|
|
104
|
+
const defaultBase = defaultProjectWorkerTemplateFileName(flow).replace(/\.md$/, '');
|
|
105
|
+
const fileName = `${defaultBase}-${domain}.md`;
|
|
106
|
+
return parseProjectWorkerTemplateFileName(flow, fileName) ? fileName : null;
|
|
107
|
+
}
|
|
108
|
+
async function projectWorkerTemplateExists(projectTemplatesDir, fileName) {
|
|
109
|
+
try {
|
|
110
|
+
await access(path.join(projectTemplatesDir, 'worker', fileName));
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
const code = error.code;
|
|
115
|
+
if (code === 'ENOENT' || code === 'ENOTDIR')
|
|
116
|
+
return false;
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
function interactiveSelectionSource(flow) {
|
|
121
|
+
if (flow === 'fix-bug')
|
|
122
|
+
return 'implicit-interactive-fix-bug';
|
|
123
|
+
if (flow === 'dev')
|
|
124
|
+
return 'implicit-interactive-dev';
|
|
125
|
+
return 'implicit-interactive-pr-complete';
|
|
126
|
+
}
|
|
127
|
+
export async function resolveProjectWorkerTemplateForRun(projectTemplatesDir, flow, mode, selection, domain) {
|
|
128
|
+
if (selection)
|
|
129
|
+
return resolveProjectWorkerTemplate(projectTemplatesDir, flow, selection);
|
|
130
|
+
const interactiveFileName = mode === 'interactive' ? INTERACTIVE_PROJECT_WORKER_TEMPLATE_BY_FLOW[flow] : undefined;
|
|
131
|
+
if (interactiveFileName &&
|
|
132
|
+
(await projectWorkerTemplateExists(projectTemplatesDir, interactiveFileName))) {
|
|
133
|
+
return resolveProjectWorkerTemplate(projectTemplatesDir, flow, { fileName: interactiveFileName }, interactiveSelectionSource(flow), `${flow} interactive mode selected ${interactiveFileName} because it exists`);
|
|
134
|
+
}
|
|
135
|
+
const domainFileName = domain ? domainProjectWorkerTemplateFileName(flow, domain) : null;
|
|
136
|
+
if (domainFileName && (await projectWorkerTemplateExists(projectTemplatesDir, domainFileName))) {
|
|
137
|
+
return resolveProjectWorkerTemplate(projectTemplatesDir, flow, { fileName: domainFileName }, 'implicit-domain', `domain '${domain}' selected ${domainFileName} because it exists`);
|
|
138
|
+
}
|
|
139
|
+
return resolveProjectWorkerTemplate(projectTemplatesDir, flow, null, 'default', interactiveFileName
|
|
140
|
+
? `${interactiveFileName} absent, using default ${flow} template`
|
|
141
|
+
: undefined);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=project-worker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-worker.js","sourceRoot":"","sources":["../../src/execution-template/project-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import type { ExecutionTemplateEntry, ExecutionTemplateSource, ListExecutionTemp
|
|
|
5
5
|
*/
|
|
6
6
|
export declare function listExecutionTemplates(options: ListExecutionTemplatesOptions): ExecutionTemplateEntry[];
|
|
7
7
|
/** Convenience: build a project worker-flat source. */
|
|
8
|
-
export declare function projectWorkerTemplateSource(projectName: string, projectTemplatesDir: string): ExecutionTemplateSource;
|
|
8
|
+
export declare function projectWorkerTemplateSource(projectName: string, projectTemplatesDir: string, sourceRevision?: string, sourceDirty?: boolean): ExecutionTemplateSource;
|
|
9
9
|
/** Convenience: build a package flow-tree source (e.g. recipe-cook references/templates). */
|
|
10
10
|
export declare function packageFlowTreeTemplateSource(packageId: string, templatesRoot: string): ExecutionTemplateSource;
|
|
11
11
|
export declare function customTemplateSource(customId: string, root: string, layout?: ExecutionTemplateSource['layout']): ExecutionTemplateSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/execution-template/resolve.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/execution-template/resolve.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AA6DpB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,EAAE,CA+C1B;AAED,uDAAuD;AACvD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,mBAAmB,EAAE,MAAM,EAC3B,cAAc,CAAC,EAAE,MAAM,EACvB,WAAW,CAAC,EAAE,OAAO,GACpB,uBAAuB,CASzB;AAED,6FAA6F;AAC7F,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,uBAAuB,CAOzB;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,uBAAuB,CAAC,QAAQ,CAAe,GACtD,uBAAuB,CAOzB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync, readFileSync, statSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
|
+
import { EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX } from '@farmslot/protocol';
|
|
3
4
|
import { inferTemplateMetadata } from './infer.js';
|
|
4
5
|
const SOURCE_KIND_RANK = {
|
|
5
6
|
custom: 0,
|
|
@@ -37,13 +38,20 @@ function listMarkdownFiles(root, layout) {
|
|
|
37
38
|
function matchesFilters(entry, options) {
|
|
38
39
|
if (options.flow && entry.flow !== options.flow)
|
|
39
40
|
return false;
|
|
40
|
-
if (options.runMode && entry.runMode !== options.runMode)
|
|
41
|
+
if (options.runMode && entry.runMode !== null && entry.runMode !== options.runMode)
|
|
41
42
|
return false;
|
|
42
43
|
if (options.platform) {
|
|
43
44
|
const platforms = entry.platforms;
|
|
44
45
|
if (!platforms.includes('*') && !platforms.includes(options.platform))
|
|
45
46
|
return false;
|
|
46
47
|
}
|
|
48
|
+
if (options.domain) {
|
|
49
|
+
const domainLabels = entry.labels.filter((label) => label.startsWith(EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX));
|
|
50
|
+
if (domainLabels.length > 0 &&
|
|
51
|
+
!domainLabels.includes(`${EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX}${options.domain}`)) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
47
55
|
return true;
|
|
48
56
|
}
|
|
49
57
|
/**
|
|
@@ -98,12 +106,14 @@ export function listExecutionTemplates(options) {
|
|
|
98
106
|
});
|
|
99
107
|
}
|
|
100
108
|
/** Convenience: build a project worker-flat source. */
|
|
101
|
-
export function projectWorkerTemplateSource(projectName, projectTemplatesDir) {
|
|
109
|
+
export function projectWorkerTemplateSource(projectName, projectTemplatesDir, sourceRevision, sourceDirty) {
|
|
102
110
|
return {
|
|
103
111
|
id: `project:${projectName}`,
|
|
104
112
|
kind: 'project',
|
|
105
113
|
root: path.join(projectTemplatesDir, 'worker'),
|
|
106
114
|
layout: 'worker-flat',
|
|
115
|
+
...(sourceRevision ? { sourceRevision } : {}),
|
|
116
|
+
...(sourceDirty === undefined ? {} : { sourceDirty }),
|
|
107
117
|
};
|
|
108
118
|
}
|
|
109
119
|
/** Convenience: build a package flow-tree source (e.g. recipe-cook references/templates). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/execution-template/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,gBAAgB,GAAoD;IACxE,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAyC;IAChF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAAE,SAAS;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CACrB,KAA6B,EAC7B,OAAsC;IAEtC,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/execution-template/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAOnD,MAAM,gBAAgB,GAAoD;IACxE,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,SAAS,iBAAiB,CAAC,IAAY,EAAE,MAAyC;IAChF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,EAAE,CAAC;IAClE,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,IAAI,MAAM,KAAK,aAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,gEAAgE;IAChE,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACnE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;YAAE,SAAS;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CACrB,KAA6B,EAC7B,OAAsC;IAEtC,IAAI,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,IAAI,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IACjG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CACjD,KAAK,CAAC,UAAU,CAAC,sCAAsC,CAAC,CACzD,CAAC;QACF,IACE,YAAY,CAAC,MAAM,GAAG,CAAC;YACvB,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,sCAAsC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EACpF,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAsC;IAEtC,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,KAAK,KAAK,CAAC;IAC1D,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO;SAC5B,GAAG,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,OAAO,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;IACvC,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAE/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkC,CAAC;IAC1D,MAAM,QAAQ,GAA6B,EAAE,CAAC;IAE9C,0EAA0E;IAC1E,kEAAkE;IAClE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,YAAY,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzE,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;YAChD,MAAM,KAAK,GAAG,qBAAqB,CAAC;gBAClC,YAAY;gBACZ,YAAY;gBACZ,MAAM;gBACN,IAAI;aACL,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACvF,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC1B,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,mBAA2B,EAC3B,cAAuB,EACvB,WAAqB;IAErB,OAAO;QACL,EAAE,EAAE,WAAW,WAAW,EAAE;QAC5B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC;QAC9C,MAAM,EAAE,aAAa;QACrB,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,6BAA6B,CAC3C,SAAiB,EACjB,aAAqB;IAErB,OAAO;QACL,EAAE,EAAE,WAAW,SAAS,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,WAAW;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,IAAY,EACZ,SAA4C,WAAW;IAEvD,OAAO;QACL,EAAE,EAAE,UAAU,QAAQ,EAAE;QACxB,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ExecutionTemplateEntry, type ListCompatibleExecutionTemplatesOptions, type SelectedExecutionTemplate, type SelectExecutionTemplateOptions } from './types.js';
|
|
2
|
+
export declare function listCompatibleExecutionTemplates(options: ListCompatibleExecutionTemplatesOptions): ExecutionTemplateEntry[];
|
|
3
|
+
/**
|
|
4
|
+
* Select one configured-catalog template. Source precedence has already
|
|
5
|
+
* resolved duplicate ids; it never chooses between distinct compatible ids.
|
|
6
|
+
*/
|
|
7
|
+
export declare function selectExecutionTemplate(options: SelectExecutionTemplateOptions): SelectedExecutionTemplate;
|
|
8
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/execution-template/select.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,sBAAsB,EAE3B,KAAK,uCAAuC,EAC5C,KAAK,yBAAyB,EAC9B,KAAK,8BAA8B,EACpC,MAAM,YAAY,CAAC;AA+CpB,wBAAgB,gCAAgC,CAC9C,OAAO,EAAE,uCAAuC,GAC/C,sBAAsB,EAAE,CAS1B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,8BAA8B,GACtC,yBAAyB,CAmD3B"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX, } from '@farmslot/protocol';
|
|
2
|
+
import { listExecutionTemplates } from './resolve.js';
|
|
3
|
+
import { executionTemplateReference } from './snapshot.js';
|
|
4
|
+
import { ExecutionTemplateSelectionError, } from './types.js';
|
|
5
|
+
function domainLabels(entry) {
|
|
6
|
+
return entry.labels.filter((label) => label.startsWith(EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX));
|
|
7
|
+
}
|
|
8
|
+
function isCompatible(entry, options) {
|
|
9
|
+
if (entry.shadowedBy)
|
|
10
|
+
return false;
|
|
11
|
+
if (entry.flow !== options.flow)
|
|
12
|
+
return false;
|
|
13
|
+
if (!entry.platforms.includes('*') && !entry.platforms.includes(options.platform))
|
|
14
|
+
return false;
|
|
15
|
+
if (entry.runMode !== null && entry.runMode !== options.runMode)
|
|
16
|
+
return false;
|
|
17
|
+
const labels = domainLabels(entry);
|
|
18
|
+
if (labels.length === 0)
|
|
19
|
+
return true;
|
|
20
|
+
return (options.domain !== undefined &&
|
|
21
|
+
labels.includes(`${EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX}${options.domain}`));
|
|
22
|
+
}
|
|
23
|
+
function defaultMatches(when, options) {
|
|
24
|
+
return ((when.flow === undefined || when.flow === options.flow) &&
|
|
25
|
+
(when.platform === undefined || when.platform === options.platform) &&
|
|
26
|
+
(when.runMode === undefined || when.runMode === options.runMode) &&
|
|
27
|
+
(when.domain === undefined || when.domain === options.domain));
|
|
28
|
+
}
|
|
29
|
+
function compatibleIds(entries) {
|
|
30
|
+
const ids = entries.map((entry) => entry.id).sort();
|
|
31
|
+
return ids.length === 0 ? '(none)' : ids.join(', ');
|
|
32
|
+
}
|
|
33
|
+
function selected(entry, reason) {
|
|
34
|
+
return { entry, reason, reference: executionTemplateReference(entry) };
|
|
35
|
+
}
|
|
36
|
+
export function listCompatibleExecutionTemplates(options) {
|
|
37
|
+
const participatingSources = options.sources.filter((source) => !source.domains || (options.domain !== undefined && source.domains.includes(options.domain)));
|
|
38
|
+
return listExecutionTemplates({
|
|
39
|
+
sources: participatingSources,
|
|
40
|
+
includeShadowed: true,
|
|
41
|
+
}).filter((entry) => isCompatible(entry, options));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Select one configured-catalog template. Source precedence has already
|
|
45
|
+
* resolved duplicate ids; it never chooses between distinct compatible ids.
|
|
46
|
+
*/
|
|
47
|
+
export function selectExecutionTemplate(options) {
|
|
48
|
+
const compatible = listCompatibleExecutionTemplates(options);
|
|
49
|
+
if (options.explicitId) {
|
|
50
|
+
const explicit = compatible.find((entry) => entry.id === options.explicitId);
|
|
51
|
+
if (!explicit) {
|
|
52
|
+
throw new ExecutionTemplateSelectionError('missing-or-incompatible', `Execution template "${options.explicitId}" is missing or incompatible. Compatible ids: ${compatibleIds(compatible)}.`);
|
|
53
|
+
}
|
|
54
|
+
return selected(explicit, 'explicit');
|
|
55
|
+
}
|
|
56
|
+
const matchingDefault = options.defaults?.find((rule) => defaultMatches(rule.when, options));
|
|
57
|
+
if (matchingDefault) {
|
|
58
|
+
const target = compatible.find((entry) => entry.id === matchingDefault.templateId);
|
|
59
|
+
if (!target) {
|
|
60
|
+
throw new ExecutionTemplateSelectionError('missing-or-incompatible', `Configured execution-template default "${matchingDefault.templateId}" is missing or incompatible. Compatible ids: ${compatibleIds(compatible)}.`);
|
|
61
|
+
}
|
|
62
|
+
return selected(target, 'configured-default');
|
|
63
|
+
}
|
|
64
|
+
const exactDomain = options.domain
|
|
65
|
+
? compatible.filter((entry) => domainLabels(entry).includes(`${EXECUTION_TEMPLATE_DOMAIN_LABEL_PREFIX}${options.domain}`))
|
|
66
|
+
: [];
|
|
67
|
+
if (exactDomain.length === 1)
|
|
68
|
+
return selected(exactDomain[0], 'single-domain-candidate');
|
|
69
|
+
if (exactDomain.length > 1) {
|
|
70
|
+
throw new ExecutionTemplateSelectionError('ambiguous', `Execution-template selection is ambiguous for domain "${options.domain}". Choose one exact id: ${compatibleIds(exactDomain)}.`);
|
|
71
|
+
}
|
|
72
|
+
const general = compatible.filter((entry) => domainLabels(entry).length === 0);
|
|
73
|
+
if (general.length === 1)
|
|
74
|
+
return selected(general[0], 'single-general-candidate');
|
|
75
|
+
if (general.length === 0) {
|
|
76
|
+
throw new ExecutionTemplateSelectionError('no-compatible-template', 'No compatible execution template exists for the requested inputs.');
|
|
77
|
+
}
|
|
78
|
+
throw new ExecutionTemplateSelectionError('ambiguous', `Execution-template selection is ambiguous. Choose one exact id: ${compatibleIds(general)}.`);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/execution-template/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ExecutionTemplateReference } from '@farmslot/protocol';
|
|
2
|
+
import type { ExecutionTemplateEntry } from './types.js';
|
|
3
|
+
export declare function sha256Text(text: string): string;
|
|
4
|
+
export declare function executionTemplateReference(entry: ExecutionTemplateEntry, renderedMarkdown?: string): ExecutionTemplateReference;
|
|
5
|
+
export declare function readExecutionTemplateSnapshot(entry: ExecutionTemplateEntry): {
|
|
6
|
+
markdown: string;
|
|
7
|
+
reference: ExecutionTemplateReference;
|
|
8
|
+
};
|
|
9
|
+
export declare function materializeExecutionTemplate(entry: ExecutionTemplateEntry, outputPath: string): {
|
|
10
|
+
path: string;
|
|
11
|
+
reference: ExecutionTemplateReference;
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=snapshot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../src/execution-template/snapshot.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEzD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,sBAAsB,EAC7B,gBAAgB,CAAC,EAAE,MAAM,GACxB,0BAA0B,CAkB5B;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,sBAAsB,GAAG;IAC5E,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,0BAA0B,CAAC;CACvC,CAQA;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,sBAAsB,EAC7B,UAAU,EAAE,MAAM,GACjB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,0BAA0B,CAAC;CACvC,CAYA"}
|