@usine/config 0.2.1 → 0.4.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.
Files changed (74) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +32 -18
  3. package/dist/agent.d.ts +2 -3
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +2 -3
  6. package/dist/agent.js.map +1 -1
  7. package/dist/board.d.ts +11 -6
  8. package/dist/board.d.ts.map +1 -1
  9. package/dist/board.js +11 -6
  10. package/dist/board.js.map +1 -1
  11. package/dist/checks.d.ts +3 -0
  12. package/dist/checks.d.ts.map +1 -1
  13. package/dist/checks.js +3 -0
  14. package/dist/checks.js.map +1 -1
  15. package/dist/factory.d.ts +258 -22
  16. package/dist/factory.d.ts.map +1 -1
  17. package/dist/factory.js +270 -30
  18. package/dist/factory.js.map +1 -1
  19. package/dist/file.d.ts +3 -3
  20. package/dist/file.d.ts.map +1 -1
  21. package/dist/file.js +3 -3
  22. package/dist/file.js.map +1 -1
  23. package/dist/frontmatter.d.ts +1 -1
  24. package/dist/frontmatter.d.ts.map +1 -1
  25. package/dist/frontmatter.js +1 -1
  26. package/dist/frontmatter.js.map +1 -1
  27. package/dist/instance/diagnostics.d.ts +1 -1
  28. package/dist/instance/diagnostics.d.ts.map +1 -1
  29. package/dist/instance/diagnostics.js +1 -1
  30. package/dist/instance/diagnostics.js.map +1 -1
  31. package/dist/instance/instance.d.ts +1 -1
  32. package/dist/instance/instance.d.ts.map +1 -1
  33. package/dist/instance/instance.js +2 -2
  34. package/dist/instance/instance.js.map +1 -1
  35. package/dist/instance/references.d.ts +5 -6
  36. package/dist/instance/references.d.ts.map +1 -1
  37. package/dist/instance/references.js +9 -9
  38. package/dist/instance/references.js.map +1 -1
  39. package/dist/instance-folder.d.ts +1 -1
  40. package/dist/instance-folder.d.ts.map +1 -1
  41. package/dist/instance-folder.js +13 -1
  42. package/dist/instance-folder.js.map +1 -1
  43. package/dist/label.d.ts +5 -5
  44. package/dist/label.d.ts.map +1 -1
  45. package/dist/label.js +5 -5
  46. package/dist/label.js.map +1 -1
  47. package/dist/loop.d.ts +12 -3
  48. package/dist/loop.d.ts.map +1 -1
  49. package/dist/loop.js +14 -6
  50. package/dist/loop.js.map +1 -1
  51. package/dist/parser.d.ts +6 -6
  52. package/dist/parser.d.ts.map +1 -1
  53. package/dist/parser.js +30 -11
  54. package/dist/parser.js.map +1 -1
  55. package/dist/payload-slices.d.ts +4 -7
  56. package/dist/payload-slices.d.ts.map +1 -1
  57. package/dist/payload-slices.js +30 -25
  58. package/dist/payload-slices.js.map +1 -1
  59. package/dist/selector.d.ts +6 -3
  60. package/dist/selector.d.ts.map +1 -1
  61. package/dist/selector.js +10 -6
  62. package/dist/selector.js.map +1 -1
  63. package/dist/trigger.d.ts +4 -7
  64. package/dist/trigger.d.ts.map +1 -1
  65. package/dist/trigger.js +6 -9
  66. package/dist/trigger.js.map +1 -1
  67. package/dist/yaml/document.d.ts +2 -2
  68. package/dist/yaml/document.js +3 -3
  69. package/dist/yaml/document.js.map +1 -1
  70. package/dist/yaml/writer.d.ts +4 -4
  71. package/dist/yaml/writer.d.ts.map +1 -1
  72. package/dist/yaml/writer.js +5 -6
  73. package/dist/yaml/writer.js.map +1 -1
  74. package/package.json +12 -11
@@ -1,21 +1,20 @@
1
1
  import { AgentName } from "@usine/core/agent";
2
- import { RepositoryName } from "@usine/core/repository";
3
2
  import { Option } from "effect";
4
3
  import { InstancePath, ConfigFileError } from "../file.ts";
5
4
  import { RegistryTag, UsineConfig } from "../factory.ts";
6
5
  import { LoopFile } from "../loop.ts";
7
6
  import type { AgentFile } from "../agent.ts";
8
- /** The agent and selector names a loop may reference in one loaded instance. */
7
+ /** The names a loop can reference in a loaded instance. */
9
8
  export interface ReferenceIndex {
10
9
  readonly agentNames: ReadonlySet<AgentName>;
11
10
  readonly registryTags: ReadonlySet<RegistryTag>;
12
- readonly repoNames: ReadonlySet<RepositoryName>;
11
+ /** The registry repository names, canonicalized with `canonicalRepositoryName`. */
12
+ readonly repoNames: ReadonlySet<string>;
13
13
  }
14
14
  export declare const referenceIndex: (config: UsineConfig, agents: ReadonlyArray<AgentFile>) => ReferenceIndex;
15
15
  /**
16
- * Returns the reference error that quarantines this loop, if it names an agent
17
- * or selector entry the instance does not have. The folder loader reports it
18
- * per file and LoadedInstance refuses to construct with it.
16
+ * Returns the error for a loop that references an agent or selector entry the instance doesn't
17
+ * have, or `None` if every reference resolves.
19
18
  */
20
19
  export declare const loopReferenceFailure: (file: InstancePath, loop: LoopFile, references: ReferenceIndex) => Option.Option<ConfigFileError>;
21
20
  //# sourceMappingURL=references.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/instance/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;CACjD;AAED,eAAO,MAAM,cAAc,WACjB,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,KAC/B,cAID,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,SACzB,YAAY,QACZ,QAAQ,cACF,cAAc,KACzB,MAAM,CAAC,MAAM,CAAC,eAAe,CA4B/B,CAAC"}
1
+ {"version":3,"file":"references.d.ts","sourceRoot":"","sources":["../../src/instance/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,2DAA2D;AAC3D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAChD,mFAAmF;IACnF,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC;AAED,eAAO,MAAM,cAAc,WACjB,WAAW,UACX,aAAa,CAAC,SAAS,CAAC,KAC/B,cAID,CAAC;AAKH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SACzB,YAAY,QACZ,QAAQ,cACF,cAAc,KACzB,MAAM,CAAC,MAAM,CAAC,eAAe,CAkC/B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { AgentName } from "@usine/core/agent";
2
- import { RepositoryName } from "@usine/core/repository";
2
+ import { canonicalRepositoryName } from "@usine/core/repository";
3
3
  import { Option } from "effect";
4
4
  import { InstancePath, ConfigFileError } from "../file.js";
5
5
  import { RegistryTag, UsineConfig } from "../factory.js";
@@ -7,30 +7,30 @@ import { LoopFile } from "../loop.js";
7
7
  export const referenceIndex = (config, agents) => ({
8
8
  agentNames: new Set(agents.map(({ name }) => name)),
9
9
  registryTags: new Set(config.repos.flatMap(({ tags }) => tags)),
10
- repoNames: new Set(config.repos.map(({ name }) => name)),
10
+ repoNames: new Set(config.repos.map(({ name }) => canonicalRepositoryName(name))),
11
11
  });
12
+ const quoted = (names) => names.map((name) => `"${name}"`).join(", ");
12
13
  /**
13
- * Returns the reference error that quarantines this loop, if it names an agent
14
- * or selector entry the instance does not have. The folder loader reports it
15
- * per file and LoadedInstance refuses to construct with it.
14
+ * Returns the error for a loop that references an agent or selector entry the instance doesn't
15
+ * have, or `None` if every reference resolves.
16
16
  */
17
17
  export const loopReferenceFailure = (file, loop, references) => {
18
18
  const referenceError = (message) => Option.some(new ConfigFileError({ file, stage: "reference", expression: Option.none(), message }));
19
19
  if (!references.agentNames.has(loop.agent)) {
20
- return referenceError(`Unknown agent: ${loop.agent}`);
20
+ return referenceError(`Unknown agent "${loop.agent}": agents/${loop.agent}.md is missing or invalid. Fix the agent file, or set agent to an existing agent.`);
21
21
  }
22
22
  if (Option.isNone(loop.selector))
23
23
  return Option.none();
24
24
  if (Option.isSome(loop.selector.value.repos)) {
25
- const missing = loop.selector.value.repos.value.filter((name) => !references.repoNames.has(name));
25
+ const missing = loop.selector.value.repos.value.filter((name) => !references.repoNames.has(canonicalRepositoryName(name)));
26
26
  if (missing.length > 0) {
27
- return referenceError(`Unknown selector repos: ${missing.join(", ")}`);
27
+ return referenceError(`Unknown repositories in selector.repos: ${quoted(missing)}. Add them under repos in usine.yaml.`);
28
28
  }
29
29
  }
30
30
  if (Option.isSome(loop.selector.value.tags)) {
31
31
  const missing = loop.selector.value.tags.value.filter((tag) => !references.registryTags.has(tag));
32
32
  if (missing.length > 0) {
33
- return referenceError(`Unknown selector tags: ${missing.join(", ")}`);
33
+ return referenceError(`Unknown tags in selector.tags: ${quoted(missing)}. Add them to a repository's tags in usine.yaml.`);
34
34
  }
35
35
  }
36
36
  return Option.none();
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/instance/references.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAUtC,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,MAAmB,EACnB,MAAgC,EAChB,EAAE,CAAC,CAAC;IACpB,UAAU,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IACnD,YAAY,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/D,SAAS,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAkB,EAClB,IAAc,EACd,UAA0B,EACM,EAAE;IAClC,MAAM,cAAc,GAAG,CAAC,OAAe,EAAkC,EAAE,CACzE,MAAM,CAAC,IAAI,CACT,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,CACtF,CAAC;IACJ,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,cAAc,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CACpD,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAC1C,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,cAAc,CAAC,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAC3C,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,cAAc,CAAC,0BAA0B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC,CAAC"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../src/instance/references.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { ConfigParser } from "./parser.ts";
6
6
  declare const InstanceFolder_base: Context.ServiceClass<InstanceFolder, "@usine/config/InstanceFolder", {
7
7
  readonly load: (root: InstanceDirectory) => Effect.Effect<LoadedInstance, FactoryConfigError>;
8
8
  }>;
9
- /** Loads an instance folder; an invalid `usine.yaml` fails the load, an invalid loop is quarantined and its siblings still load. */
9
+ /** The service that loads an instance folder. An invalid `usine.yaml` fails the load; an invalid loop is quarantined. */
10
10
  export declare class InstanceFolder extends InstanceFolder_base {
11
11
  static readonly layer: Layer.Layer<InstanceFolder, never, ConfigParser | FileSystem.FileSystem | Path.Path>;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"instance-folder.d.ts","sourceRoot":"","sources":["../src/instance-folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAU,IAAI,EAAU,MAAM,QAAQ,CAAC;AAElF,OAAO,EAAmB,kBAAkB,EAAgB,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;;mBAoBxB,CAAC,IAAI,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;;AAJjG,oIAAoI;AACpI,qBAAa,cAAe,SAAQ,mBAKD;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,uFA0JnB;CACH"}
1
+ {"version":3,"file":"instance-folder.d.ts","sourceRoot":"","sources":["../src/instance-folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAU,IAAI,EAAU,MAAM,QAAQ,CAAC;AAElF,OAAO,EAAmB,kBAAkB,EAAgB,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;;mBAoBxB,CAAC,IAAI,EAAE,iBAAiB,KAAK,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,kBAAkB,CAAC;;AAJjG,yHAAyH;AACzH,qBAAa,cAAe,SAAQ,mBAKD;IACjC,MAAM,CAAC,QAAQ,CAAC,KAAK,uFAmLnB;CACH"}
@@ -12,7 +12,7 @@ const factoryError = (error) => new FactoryConfigError({
12
12
  stage: error.stage,
13
13
  message: error.message,
14
14
  });
15
- /** Loads an instance folder; an invalid `usine.yaml` fails the load, an invalid loop is quarantined and its siblings still load. */
15
+ /** The service that loads an instance folder. An invalid `usine.yaml` fails the load; an invalid loop is quarantined. */
16
16
  export class InstanceFolder extends Context.Service()("@usine/config/InstanceFolder") {
17
17
  static layer = Layer.effect(InstanceFolder, Effect.gen(function* () {
18
18
  const fileSystem = yield* FileSystem.FileSystem;
@@ -71,6 +71,18 @@ export class InstanceFolder extends Context.Service()("@usine/config/InstanceFol
71
71
  else
72
72
  loops.push(entry.result.success);
73
73
  }
74
+ yield* Effect.forEach(invalidAgents, ({ file, error }) => Effect.logWarning("Agent file left out of the roster; Loops that use it are quarantined", { file, stage: error.stage, message: error.message }), { discard: true });
75
+ yield* Effect.forEach(quarantinedLoops, ({ file, error }) => Effect.logWarning("Loop quarantined; it opens no Runs until its file is fixed", {
76
+ file,
77
+ stage: error.stage,
78
+ message: error.message,
79
+ expression: Option.getOrUndefined(error.expression),
80
+ }), { discard: true });
81
+ yield* Effect.annotateCurrentSpan({
82
+ loops: loops.length,
83
+ quarantinedLoops: quarantinedLoops.length,
84
+ invalidAgents: invalidAgents.length,
85
+ });
74
86
  const warnings = yield* parser.configWarnings(config, loops).pipe(Effect.catch((error) => Effect.logError("Config warning analysis failed; loaded the valid instance without warnings", {
75
87
  errorTag: error._tag,
76
88
  expression: error.source,
@@ -1 +1 @@
1
- {"version":3,"file":"instance-folder.js","sourceRoot":"","sources":["../src/instance-folder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAClF,OAAO,EAAkB,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAiB,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAO5B,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAsB,EAAE,CAClE,IAAI,kBAAkB,CAAC;IACrB,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,KAAK,EAAE,KAAK,CAAC,KAAK;IAClB,OAAO,EAAE,KAAK,CAAC,OAAO;CACvB,CAAC,CAAC;AAEL,oIAAoI;AACpI,MAAM,OAAO,cAAe,SAAQ,OAAO,CAAC,OAAO,EAKhD,CAAC,8BAA8B,CAAC;IACjC,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,MAAM,CAClC,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;QAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC;QAEnC,MAAM,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,yBAAyB,CAAC,CACnD,CAAC,YAAoB,EAAE,IAAkB,EAA0C,EAAE,CACnF,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,IAAI,CAC1C,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,eAAe,CAAC;YAClB,IAAI;YACJ,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE;YACzB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CACL,CACF,CACJ,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAC7D,CACE,IAAuB,EACvB,SAA6B,EAC6B,EAAE,CAC5D,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAC1E,MAAM,CAAC,QAAQ,CACb,CAAC,KAAK,EAAE,EAAE,CACR,IAAI,kBAAkB,CAAC;YACrB,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC;YAClC,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC,CACL,CACF,CACJ,CAAC;QAEF,MAAM,iBAAiB,GAAG,CACxB,IAAuB,EACvB,SAA6B,EAC7B,SAAoF,EACnB,EAAE,CACnE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAC1B,KAAK,EACL,CAAC,IAAI,EAAE,EAAE;gBACP,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;gBACvD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,CAC/C,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EACnD,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAiB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAC1D,CAAC;YACJ,CAAC,EACD,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAClC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEL,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,qBAAqB,CAAC,CACpC,CAAC,IAAuB,EAAqD,EAAE,CAC7E,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAClB,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAChF,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC9B,CAAC;gBACF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM;qBACzB,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC;qBACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAC9B;oBACE,MAAM,EAAE,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC;oBAChE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC;iBAC9D,EACD,EAAE,WAAW,EAAE,CAAC,EAAE,CACnB,CAAC;gBAEF,MAAM,MAAM,GAAqB,EAAE,CAAC;gBACpC,MAAM,aAAa,GAAwB,EAAE,CAAC;gBAC9C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;oBAClC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC;wBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;yBACjE,CAAC;wBACJ,aAAa,CAAC,IAAI,CAChB,IAAI,YAAY,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACpE,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAElD,MAAM,KAAK,GAAoB,EAAE,CAAC;gBAClC,MAAM,gBAAgB,GAA2B,EAAE,CAAC;gBACpD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBACjC,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;wBACnC,gBAAgB,CAAC,IAAI,CACnB,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CACvE,CAAC;wBACF,SAAS;oBACX,CAAC;oBACD,MAAM,gBAAgB,GAAG,oBAAoB,CAC3C,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,MAAM,CAAC,OAAO,EACpB,UAAU,CACX,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;wBACpC,gBAAgB,CAAC,IAAI,CACnB,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,CAAC,CACzE,CAAC;oBACJ,CAAC;;wBAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,IAAI,CAC/D,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,MAAM,CAAC,QAAQ,CACb,4EAA4E,EAC5E;oBACE,QAAQ,EAAE,KAAK,CAAC,IAAI;oBACpB,UAAU,EAAE,KAAK,CAAC,MAAM;oBACxB,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,CACF,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACtB,CACF,CAAC;gBACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CACnB,QAAQ,EACR,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,IAAI,KAAK,4BAA4B;oBAC3C,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,kDAAkD,EAAE;wBACpE,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAC;oBACJ,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,oDAAoD,EAAE;wBACtE,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAC,EACR,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAC;gBAEF,OAAO,IAAI,cAAc,CAAC;oBACxB,MAAM;oBACN,MAAM;oBACN,aAAa;oBACb,KAAK;oBACL,gBAAgB;oBAChB,QAAQ;iBACT,CAAC,CAAC;YACL,CAAC,CAAC,CACL;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;CACH"}
1
+ {"version":3,"file":"instance-folder.js","sourceRoot":"","sources":["../src/instance-folder.ts"],"names":[],"mappings":"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"}
package/dist/label.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  import { Schema } from "effect";
2
2
  /**
3
- * GitHub trims label names and caps them at 50 characters. A name outside that
4
- * contract never matches the catalog and would be re-created every cycle.
3
+ * A trimmed label name of at most 50 characters, as GitHub stores it. Any other name never
4
+ * matches the GitHub label and is re-created every cycle.
5
5
  */
6
6
  export declare const GitHubLabelName: Schema.brand<Schema.String, "GitHubLabelName">;
7
7
  export type GitHubLabelName = typeof GitHubLabelName.Type;
8
- /** Compare label names on this key: GitHub matches them case-insensitively. */
8
+ /** Returns the comparison key for a label name; GitHub compares label names case-insensitively. */
9
9
  export declare const canonicalLabelName: (name: string) => string;
10
- /** Six hex digits without a leading hash, as GitHub stores label colors. */
10
+ /** A label color as six hex digits without a leading `#`, as GitHub stores it. */
11
11
  export declare const GitHubLabelColor: Schema.brand<Schema.String, "GitHubLabelColor">;
12
12
  export type GitHubLabelColor = typeof GitHubLabelColor.Type;
13
13
  declare const DeclaredLabel_base: Schema.Class<DeclaredLabel, Schema.Struct<{
@@ -15,7 +15,7 @@ declare const DeclaredLabel_base: Schema.Class<DeclaredLabel, Schema.Struct<{
15
15
  readonly color: Schema.OptionFromOptionalKey<Schema.brand<Schema.String, "GitHubLabelColor">>;
16
16
  readonly description: Schema.OptionFromOptionalKey<Schema.String>;
17
17
  }>, {}>;
18
- /** A label the factory creates in every managed repository. */
18
+ /** A label created in every managed repository. */
19
19
  export declare class DeclaredLabel extends DeclaredLabel_base {
20
20
  }
21
21
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,eAAe,gDAKW,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,+EAA+E;AAC/E,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAA4B,CAAC;AAE/E,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,iDAIW,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;;;;;;AAQ5D,+DAA+D;AAC/D,qBAAa,aAAc,SAAQ,kBAIjC;CAAG"}
1
+ {"version":3,"file":"label.d.ts","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,eAAO,MAAM,eAAe,gDAKW,CAAC;AAExC,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAC;AAE1D,mGAAmG;AACnG,eAAO,MAAM,kBAAkB,SAAU,MAAM,KAAG,MAA4B,CAAC;AAE/E,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,iDAIW,CAAC;AAEzC,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC;;;;;;AAQ5D,mDAAmD;AACnD,qBAAa,aAAc,SAAQ,kBAIjC;CAAG"}
package/dist/label.js CHANGED
@@ -1,21 +1,21 @@
1
1
  import { Schema } from "effect";
2
2
  /**
3
- * GitHub trims label names and caps them at 50 characters. A name outside that
4
- * contract never matches the catalog and would be re-created every cycle.
3
+ * A trimmed label name of at most 50 characters, as GitHub stores it. Any other name never
4
+ * matches the GitHub label and is re-created every cycle.
5
5
  */
6
6
  export const GitHubLabelName = Schema.String.check(Schema.isPattern(/^\S(?:.*\S)?$/u, {
7
7
  message: "Expected a GitHub label name without surrounding whitespace",
8
8
  }), Schema.isMaxLength(50, { message: "Expected a GitHub label name of at most 50 characters" })).pipe(Schema.brand("GitHubLabelName"));
9
- /** Compare label names on this key: GitHub matches them case-insensitively. */
9
+ /** Returns the comparison key for a label name; GitHub compares label names case-insensitively. */
10
10
  export const canonicalLabelName = (name) => name.toLowerCase();
11
- /** Six hex digits without a leading hash, as GitHub stores label colors. */
11
+ /** A label color as six hex digits without a leading `#`, as GitHub stores it. */
12
12
  export const GitHubLabelColor = Schema.String.check(Schema.isPattern(/^[0-9a-fA-F]{6}$/u, {
13
13
  message: "Expected a six-digit hex GitHub label color without #",
14
14
  })).pipe(Schema.brand("GitHubLabelColor"));
15
15
  const GitHubLabelDescription = Schema.String.check(Schema.isMaxLength(100, {
16
16
  message: "Expected a GitHub label description of at most 100 characters",
17
17
  }));
18
- /** A label the factory creates in every managed repository. */
18
+ /** A label created in every managed repository. */
19
19
  export class DeclaredLabel extends Schema.Class("@usine/config/DeclaredLabel")({
20
20
  name: GitHubLabelName,
21
21
  color: Schema.OptionFromOptionalKey(GitHubLabelColor),
package/dist/label.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAChD,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;IACjC,OAAO,EAAE,6DAA6D;CACvE,CAAC,EACF,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAC7F,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAIxC,+EAA+E;AAC/E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAE/E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACjD,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;IACpC,OAAO,EAAE,uDAAuD;CACjE,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAIzC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAChD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACtB,OAAO,EAAE,+DAA+D;CACzE,CAAC,CACH,CAAC;AAEF,+DAA+D;AAC/D,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,KAAK,CAAgB,6BAA6B,CAAC,CAAC;IAC5F,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;CAClE,CAAC;CAAG"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../src/label.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAChD,MAAM,CAAC,SAAS,CAAC,gBAAgB,EAAE;IACjC,OAAO,EAAE,6DAA6D;CACvE,CAAC,EACF,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,uDAAuD,EAAE,CAAC,CAC7F,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAIxC,mGAAmG;AACnG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAE/E,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CACjD,MAAM,CAAC,SAAS,CAAC,mBAAmB,EAAE;IACpC,OAAO,EAAE,uDAAuD;CACjE,CAAC,CACH,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAIzC,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAChD,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;IACtB,OAAO,EAAE,+DAA+D;CACzE,CAAC,CACH,CAAC;AAEF,mDAAmD;AACnD,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,KAAK,CAAgB,6BAA6B,CAAC,CAAC;IAC5F,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC;IACrD,WAAW,EAAE,MAAM,CAAC,qBAAqB,CAAC,sBAAsB,CAAC;CAClE,CAAC;CAAG"}
package/dist/loop.d.ts CHANGED
@@ -4,6 +4,12 @@ import { InstancePath, ConfigFileError } from "./file.ts";
4
4
  /** The Loop's Markdown task template, with CEL expressions inside `{{ ... }}`. */
5
5
  export declare const PromptTemplate: Schema.brand<Schema.String, "PromptTemplate">;
6
6
  export type PromptTemplate = typeof PromptTemplate.Type;
7
+ /**
8
+ * The rank of a Loop's queued Runs for a free Worker slot, a positive integer. Runs of Loops with a
9
+ * priority go before Runs that lane order ranks, higher first.
10
+ */
11
+ export declare const LoopPriority: Schema.brand<Schema.Int, "LoopPriority">;
12
+ export type LoopPriority = typeof LoopPriority.Type;
7
13
  declare const LoopFile_base: Schema.Class<LoopFile, Schema.Struct<{
8
14
  readonly name: Schema.brand<Schema.NonEmptyString, "LoopName">;
9
15
  readonly trigger: Schema.Union<readonly [typeof import("./trigger.ts").IssueTrigger, typeof import("./trigger.ts").PullRequestTrigger, typeof import("./trigger.ts").ScheduleTrigger]>;
@@ -22,21 +28,24 @@ declare const LoopFile_base: Schema.Class<LoopFile, Schema.Struct<{
22
28
  }>, never, never>>;
23
29
  readonly approval: Schema.Literals<readonly ["none", "required"]>;
24
30
  readonly maxCycles: Schema.withConstructorDefault<Schema.withDecodingDefaultKey<Schema.brand<Schema.Int, "CycleLimit">, never>>;
31
+ /** The repository access of the Loop's Attempts. */
32
+ readonly permissions: Schema.withConstructorDefault<Schema.withDecodingDefaultKey<Schema.Literals<readonly ["write", "read"]>, never>>;
33
+ /** The Loop's queue priority, or `None` to rank its Runs by lane. */
34
+ readonly priority: Schema.withConstructorDefault<Schema.Option<Schema.brand<Schema.Int, "LoopPriority">>>;
25
35
  readonly step: Schema.brand<Schema.NonEmptyString, "StepName">;
26
36
  readonly agent: Schema.brand<Schema.String, "AgentName">;
27
37
  readonly body: Schema.brand<Schema.String, "PromptTemplate">;
28
38
  }>, {}>;
29
- /** A Loop parsed from `loops/<name>.md`; the filename defines its identity. */
39
+ /** A Loop parsed from `loops/<name>.md`. */
30
40
  export declare class LoopFile extends LoopFile_base {
31
41
  }
32
42
  declare const QuarantinedLoop_base: Schema.Class<QuarantinedLoop, Schema.Struct<{
33
43
  readonly file: Schema.brand<Schema.NonEmptyString, "InstancePath">;
34
44
  readonly error: typeof ConfigFileError;
35
45
  }>, {}>;
36
- /** A Loop excluded from execution because its file could not be loaded or its references resolved. */
46
+ /** A Loop that isn't run because its file failed to load or a reference didn't resolve. */
37
47
  export declare class QuarantinedLoop extends QuarantinedLoop_base {
38
48
  }
39
- /** The file a loop name refers to. */
40
49
  export declare const loopPath: (name: LoopName) => InstancePath;
41
50
  export {};
42
51
  //# sourceMappingURL=loop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAuB,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAW1D,kFAAkF;AAClF,eAAO,MAAM,cAAc,+CAE1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;AAExD,+EAA+E;AAC/E,qBAAa,QAAS,SAAQ,aAY5B;CAAG;;;;;AAEL,sGAAsG;AACtG,qBAAa,eAAgB,SAAQ,oBAKpC;CAAG;AAEJ,sCAAsC;AACtC,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,YAAqD,CAAC"}
1
+ {"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAwC,MAAM,kBAAkB,CAAC;AAElF,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAW1D,kFAAkF;AAClF,eAAO,MAAM,cAAc,+CAE1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,cAAc,CAAC,IAAI,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,YAAY,0CAEW,CAAC;AAErC,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;IAYlD,oDAAoD;;IAKpD,qEAAqE;;;;;;AAfvE,4CAA4C;AAC5C,qBAAa,QAAS,SAAQ,aAqB5B;CAAG;;;;;AAEL,2FAA2F;AAC3F,qBAAa,eAAgB,SAAQ,oBAKpC;CAAG;AAEJ,eAAO,MAAM,QAAQ,SAAU,QAAQ,KAAG,YAAqD,CAAC"}
package/dist/loop.js CHANGED
@@ -1,36 +1,44 @@
1
1
  import { AgentName } from "@usine/core/agent";
2
2
  import { CycleLimit, DEFAULT_CYCLE_LIMIT } from "@usine/core/cycle-budget";
3
- import { LoopName, ApprovalRequirement } from "@usine/core/loop";
3
+ import { LoopName, ApprovalRequirement, LoopPermissions } from "@usine/core/loop";
4
4
  import { StepName } from "@usine/core/step";
5
- import { Effect, Schema } from "effect";
5
+ import { Effect, Option, Schema } from "effect";
6
6
  import { InstancePath, ConfigFileError } from "./file.js";
7
7
  import { nonBlankString } from "./checks.js";
8
8
  import { ValidSelector } from "./selector.js";
9
9
  import { Trigger } from "./trigger.js";
10
10
  const KebabCase = Schema.isPattern(/^[a-z0-9]+(?:-[a-z0-9]+)*$/u, {
11
- message: "Expected a kebab-case filename identity",
11
+ message: "Expected a kebab-case file name",
12
12
  });
13
13
  const LoopFileName = LoopName.check(KebabCase);
14
14
  /** The Loop's Markdown task template, with CEL expressions inside `{{ ... }}`. */
15
15
  export const PromptTemplate = nonBlankString("Expected a non-blank Markdown prompt").pipe(Schema.brand("PromptTemplate"));
16
- /** A Loop parsed from `loops/<name>.md`; the filename defines its identity. */
16
+ /**
17
+ * The rank of a Loop's queued Runs for a free Worker slot, a positive integer. Runs of Loops with a
18
+ * priority go before Runs that lane order ranks, higher first.
19
+ */
20
+ export const LoopPriority = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1, { message: "Expected a priority of at least 1" })).pipe(Schema.brand("LoopPriority"));
21
+ /** A Loop parsed from `loops/<name>.md`. */
17
22
  export class LoopFile extends Schema.Class("@usine/config/LoopFile")({
18
23
  name: LoopFileName,
19
24
  trigger: Trigger,
20
25
  selector: Schema.Option(ValidSelector),
21
26
  approval: ApprovalRequirement,
22
27
  maxCycles: CycleLimit.pipe(Schema.withDecodingDefaultKey(Effect.succeed(DEFAULT_CYCLE_LIMIT)), Schema.withConstructorDefault(Effect.succeed(DEFAULT_CYCLE_LIMIT))),
28
+ /** The repository access of the Loop's Attempts. */
29
+ permissions: LoopPermissions.pipe(Schema.withDecodingDefaultKey(Effect.succeed("write")), Schema.withConstructorDefault(Effect.succeed("write"))),
30
+ /** The Loop's queue priority, or `None` to rank its Runs by lane. */
31
+ priority: Schema.Option(LoopPriority).pipe(Schema.withConstructorDefault(Effect.succeed(Option.none()))),
23
32
  step: StepName,
24
33
  agent: AgentName,
25
34
  body: PromptTemplate,
26
35
  }) {
27
36
  }
28
- /** A Loop excluded from execution because its file could not be loaded or its references resolved. */
37
+ /** A Loop that isn't run because its file failed to load or a reference didn't resolve. */
29
38
  export class QuarantinedLoop extends Schema.Class("@usine/config/QuarantinedLoop")({
30
39
  file: InstancePath,
31
40
  error: ConfigFileError,
32
41
  }) {
33
42
  }
34
- /** The file a loop name refers to. */
35
43
  export const loopPath = (name) => InstancePath.make(`loops/${name}.md`);
36
44
  //# sourceMappingURL=loop.js.map
package/dist/loop.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,6BAA6B,EAAE;IAChE,OAAO,EAAE,yCAAyC;CACnD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE/C,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,sCAAsC,CAAC,CAAC,IAAI,CACvF,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAC/B,CAAC;AAIF,+EAA+E;AAC/E,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,KAAK,CAAW,wBAAwB,CAAC,CAAC;IAC7E,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACtC,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,UAAU,CAAC,IAAI,CACxB,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAClE,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CACnE;IACD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,cAAc;CACrB,CAAC;CAAG;AAEL,sGAAsG;AACtG,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,+BAA+B,CAAC,CACjG;IACE,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CACF;CAAG;AAEJ,sCAAsC;AACtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAgB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"loop.js","sourceRoot":"","sources":["../src/loop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,6BAA6B,EAAE;IAChE,OAAO,EAAE,iCAAiC;CAC3C,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAE/C,kFAAkF;AAClF,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,sCAAsC,CAAC,CAAC,IAAI,CACvF,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAC/B,CAAC;AAIF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAC1C,MAAM,CAAC,sBAAsB,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CACnF,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;AAIrC,4CAA4C;AAC5C,MAAM,OAAO,QAAS,SAAQ,MAAM,CAAC,KAAK,CAAW,wBAAwB,CAAC,CAAC;IAC7E,IAAI,EAAE,YAAY;IAClB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACtC,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,UAAU,CAAC,IAAI,CACxB,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,EAClE,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CACnE;IACD,oDAAoD;IACpD,WAAW,EAAE,eAAe,CAAC,IAAI,CAC/B,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAC,EAC/D,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAgB,CAAC,CAAC,CAChE;IACD,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CACxC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAC7D;IACD,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,cAAc;CACrB,CAAC;CAAG;AAEL,2FAA2F;AAC3F,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,+BAA+B,CAAC,CACjG;IACE,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CACF;CAAG;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAgB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,CAAC"}
package/dist/parser.d.ts CHANGED
@@ -6,18 +6,18 @@ import { type ConfigWarning } from "./instance/diagnostics.ts";
6
6
  import { LoopFile } from "./loop.ts";
7
7
  import { UsineConfig } from "./factory.ts";
8
8
  declare const ConfigParser_base: Context.ServiceClass<ConfigParser, "@usine/config/ConfigParser", {
9
- /** Reads registry and factory settings from `source`; `file` identifies the source in diagnostics. */
9
+ /** Parses `usine.yaml` contents; `file` is used only in diagnostics. */
10
10
  readonly parseUsineYaml: (file: InstancePath, source: string) => Effect.Effect<UsineConfig, ConfigFileError>;
11
- /** Reads an Agent's brain and standing instructions; `file` supplies its filename-derived identity. */
11
+ /** Parses an Agent file, taking the Agent name from `file`. */
12
12
  readonly parseAgentFile: (file: InstancePath, source: string) => Effect.Effect<AgentFile, ConfigFileError>;
13
- /** Reads a Loop and checks its selection and prompt expressions; `file` supplies its identity. */
13
+ /** Parses a Loop file and checks its `if` and prompt expressions, taking the Loop name from `file`. */
14
14
  readonly parseLoopFile: (file: InstancePath, source: string) => Effect.Effect<LoopFile, ConfigFileError>;
15
- /** Reports undeclared labels used by Board lanes or Loop conditions without rejecting otherwise valid configuration. */
15
+ /** Returns warnings for undeclared labels used by Board lanes or Loop conditions. */
16
16
  readonly configWarnings: (config: UsineConfig, loops: ReadonlyArray<LoopFile>) => Effect.Effect<ReadonlyArray<ConfigWarning>, ExpressionCheckError>;
17
- /** Renders the Loop's `{{ ... }}` expressions using `context.item` for the trigger payload and `context.repo` for the repository. */
17
+ /** Evaluates the Loop's `{{ ... }}` expressions with `context.item` as the trigger payload and `context.repo` as the repository. */
18
18
  readonly renderPrompt: (loop: LoopFile, context: Schema.JsonObject) => Effect.Effect<string, ConfigFileError>;
19
19
  }>;
20
- /** Parses supplied instance-file contents and checks the expressions that select Items and render task prompts. */
20
+ /** The service that parses instance file contents and checks their CEL expressions. */
21
21
  export declare class ConfigParser extends ConfigParser_base {
22
22
  static readonly layer: Layer.Layer<ConfigParser, never, ExpressionEngine>;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAEhB,KAAK,oBAAoB,EAG1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,EAAe,MAAM,QAAQ,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAA4B,MAAM,WAAW,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;;IA+QvC,sGAAsG;6BAC7E,CACvB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC;IAChD,uGAAuG;6BAC9E,CACvB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;IAC9C,kGAAkG;4BAC1E,CACtB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC7C,wHAAwH;6BAC/F,CACvB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACtE,qIAAqI;2BAC9G,CACrB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,UAAU,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;AA5B/C,mHAAmH;AACnH,qBAAa,YAAa,SAAQ,iBA6BD;IAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,qDAcnB;CACH"}
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gBAAgB,EAEhB,KAAK,oBAAoB,EAG1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAU,MAAM,EAAqC,MAAM,QAAQ,CAAC;AAEnG,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EACL,KAAK,aAAa,EAGnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,QAAQ,EAA0C,MAAM,WAAW,CAAC;AAG7E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;;IA+SvC,wEAAwE;6BAC/C,CACvB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC;IAChD,+DAA+D;6BACtC,CACvB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;IAC9C,uGAAuG;4BAC/E,CACtB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,KACX,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC;IAC7C,qFAAqF;6BAC5D,CACvB,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE,aAAa,CAAC,QAAQ,CAAC,KAC3B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACtE,oIAAoI;2BAC7G,CACrB,IAAI,EAAE,QAAQ,EACd,OAAO,EAAE,MAAM,CAAC,UAAU,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;;AA5B/C,uFAAuF;AACvF,qBAAa,YAAa,SAAQ,iBA6BD;IAC/B,MAAM,CAAC,QAAQ,CAAC,KAAK,qDAcnB;CACH"}
package/dist/parser.js CHANGED
@@ -1,28 +1,44 @@
1
1
  import { StepName } from "@usine/core/step";
2
2
  import { ApprovalRequirement, LoopName } from "@usine/core/loop";
3
3
  import { ExpressionEngine, Source, } from "@usine/expression/expression-engine";
4
- import { Context, Effect, Layer, Option, Schema, SchemaIssue } from "effect";
4
+ import { Context, Effect, Layer, Option, Schema, SchemaGetter, SchemaIssue, Struct } from "effect";
5
5
  import { splitMarkdown } from "./frontmatter.js";
6
6
  import { AgentFile } from "./agent.js";
7
7
  import { canonicalLabelName, GitHubLabelName } from "./label.js";
8
8
  import { ConfigFileError, InstancePath } from "./file.js";
9
9
  import { UndeclaredLaneLabelWarning, UndeclaredTriggerLabelWarning, } from "./instance/diagnostics.js";
10
- import { LoopFile, loopPath, PromptTemplate } from "./loop.js";
10
+ import { LoopFile, loopPath, LoopPriority, PromptTemplate } from "./loop.js";
11
11
  import { AgentPersona, AgentName } from "@usine/core/agent";
12
- import { Trigger } from "./trigger.js";
12
+ import { IssueTrigger, PullRequestTrigger, ScheduleTrigger } from "./trigger.js";
13
13
  import { UsineConfig } from "./factory.js";
14
14
  import { ValidSelector } from "./selector.js";
15
15
  import { Effort, Harness, ModelId } from "@usine/core/agent/brain";
16
16
  import { environmentFor } from "./payload-slices.js";
17
17
  import { parseYamlDocument } from "./yaml/document.js";
18
18
  const formatIssue = SchemaIssue.makeFormatterDefault();
19
+ // YAML reads an unquoted `if: true` as a boolean; it decodes to the same CEL literal.
20
+ const ConditionFromYaml = Schema.Union([Schema.String, Schema.Boolean])
21
+ .annotate({
22
+ message: "Expected a CEL expression. Quote the value so that YAML reads it as a string.",
23
+ })
24
+ .pipe(Schema.decodeTo(Source, {
25
+ decode: SchemaGetter.transform((condition) => String(condition)),
26
+ encode: SchemaGetter.transform((condition) => condition),
27
+ }));
28
+ const TriggerFromYaml = Schema.Union([
29
+ IssueTrigger.mapFields(Struct.assign({ if: ConditionFromYaml })).pipe(Schema.decodeTo(IssueTrigger)),
30
+ PullRequestTrigger.mapFields(Struct.assign({ if: ConditionFromYaml })).pipe(Schema.decodeTo(PullRequestTrigger)),
31
+ ScheduleTrigger.mapFields(Struct.assign({ if: ConditionFromYaml })).pipe(Schema.decodeTo(ScheduleTrigger)),
32
+ ]);
19
33
  class LoopFrontmatter extends Schema.Class("@usine/config/LoopFrontmatter")({
20
- trigger: Trigger,
34
+ trigger: TriggerFromYaml,
21
35
  selector: Schema.OptionFromOptionalKey(ValidSelector),
22
36
  approval: ApprovalRequirement.pipe(Schema.withDecodingDefaultKey(Effect.succeed("none"))),
23
37
  step: StepName.pipe(Schema.withDecodingDefaultKey(Effect.succeed("run"))),
24
38
  agent: AgentName,
25
39
  maxCycles: LoopFile.fields.maxCycles,
40
+ permissions: LoopFile.fields.permissions,
41
+ priority: Schema.OptionFromOptionalKey(LoopPriority),
26
42
  }) {
27
43
  }
28
44
  const AuthoredLoopFrontmatter = LoopFrontmatter.pipe(Schema.encodeKeys({ maxCycles: "max_cycles" }));
@@ -30,10 +46,11 @@ class AgentFrontmatter extends Schema.Class("@usine/config/AgentFrontmatter")({
30
46
  harness: Harness,
31
47
  model: ModelId,
32
48
  effort: Effort,
33
- parent_model: Schema.OptionFromOptionalKey(ModelId),
34
- parent_effort: Schema.OptionFromOptionalKey(Effort),
49
+ parentModel: Schema.OptionFromOptionalKey(ModelId),
50
+ parentEffort: Schema.OptionFromOptionalKey(Effort),
35
51
  }) {
36
52
  }
53
+ const AuthoredAgentFrontmatter = AgentFrontmatter.pipe(Schema.encodeKeys({ parentModel: "parent_model", parentEffort: "parent_effort" }));
37
54
  const schemaError = (file, error) => new ConfigFileError({
38
55
  file,
39
56
  stage: "schema",
@@ -83,7 +100,7 @@ const interpolations = (file, body) => Effect.gen(function* () {
83
100
  file,
84
101
  stage: "expression",
85
102
  expression: Option.none(),
86
- message: `Unclosed prompt interpolation at character ${start}`,
103
+ message: `The prompt has an unclosed {{ at character ${start}. Close it with }}.`,
87
104
  });
88
105
  }
89
106
  const expression = body.slice(start + 2, end).trim();
@@ -119,7 +136,7 @@ const parseAgentFile = Effect.fn("ConfigParser.parseAgentFile")((file, source) =
119
136
  const name = yield* agentName(file);
120
137
  const markdown = yield* splitMarkdown(file, source);
121
138
  const yaml = yield* parseYaml(file, markdown.yaml);
122
- const frontmatter = yield* Schema.decodeUnknownEffect(AgentFrontmatter)(yaml, {
139
+ const frontmatter = yield* Schema.decodeUnknownEffect(AuthoredAgentFrontmatter)(yaml, {
123
140
  onExcessProperty: "error",
124
141
  }).pipe(Effect.mapError((error) => schemaError(file, error)));
125
142
  const persona = yield* Schema.decodeUnknownEffect(AgentPersona)(markdown.body).pipe(Effect.mapError((error) => schemaError(file, error)));
@@ -128,8 +145,8 @@ const parseAgentFile = Effect.fn("ConfigParser.parseAgentFile")((file, source) =
128
145
  harness: frontmatter.harness,
129
146
  model: frontmatter.model,
130
147
  effort: frontmatter.effort,
131
- parentModel: frontmatter.parent_model,
132
- parentEffort: frontmatter.parent_effort,
148
+ parentModel: frontmatter.parentModel,
149
+ parentEffort: frontmatter.parentEffort,
133
150
  persona,
134
151
  });
135
152
  }));
@@ -155,6 +172,8 @@ const makeParseLoopFile = (engine) => Effect.fn("ConfigParser.parseLoopFile")((f
155
172
  selector: frontmatter.selector,
156
173
  approval: frontmatter.approval,
157
174
  maxCycles: frontmatter.maxCycles,
175
+ permissions: frontmatter.permissions,
176
+ priority: frontmatter.priority,
158
177
  step: frontmatter.step,
159
178
  agent: frontmatter.agent,
160
179
  body,
@@ -188,7 +207,7 @@ const makeConfigWarnings = (engine) => Effect.fn("ConfigParser.configWarnings")(
188
207
  }
189
208
  return warnings;
190
209
  });
191
- /** Parses supplied instance-file contents and checks the expressions that select Items and render task prompts. */
210
+ /** The service that parses instance file contents and checks their CEL expressions. */
192
211
  export class ConfigParser extends Context.Service()("@usine/config/ConfigParser") {
193
212
  static layer = Layer.effect(ConfigParser, Effect.gen(function* () {
194
213
  const engine = yield* ExpressionEngine;
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
@@ -2,16 +2,13 @@ import { Environment } from "@usine/expression/expression-engine";
2
2
  import { Schema } from "effect";
3
3
  import type { ManagedRepo } from "./factory.ts";
4
4
  import type { Stream } from "./trigger.ts";
5
- /** The CEL environment for issue triggers: the `item` type mirrors the issue payload slice. */
5
+ /** The CEL environment for issue triggers, with the issue payload slice as `item`. */
6
6
  export declare const issueEnvironment: Environment;
7
- /** The CEL environment for pull-request triggers: the `item` type mirrors the pull-request payload slice. */
7
+ /** The CEL environment for pull-request triggers, with the pull-request payload slice as `item`. */
8
8
  export declare const pullRequestEnvironment: Environment;
9
- /** The CEL environment for schedule triggers: `item.tick` has `scheduledAt`, `scheduledAtLocal`, `cron`, and `tz`. */
9
+ /** The CEL environment for schedule triggers; `item.tick` has `scheduledAt`, `scheduledAtLocal`, `cron`, and `tz`. */
10
10
  export declare const scheduleEnvironment: Environment;
11
11
  export declare const environmentFor: (stream: Stream) => Environment;
12
- /**
13
- * The value of the CEL `repo` variable. A field added here must also be added
14
- * to the `RepoContext` type, and the reverse.
15
- */
12
+ /** Returns the value of the CEL `repo` variable; its fields must match the `RepoContext` type. */
16
13
  export declare const repositoryContext: (repository: ManagedRepo) => Schema.JsonObject;
17
14
  //# sourceMappingURL=payload-slices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload-slices.d.ts","sourceRoot":"","sources":["../src/payload-slices.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAKZ,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAyK3C,+FAA+F;AAC/F,eAAO,MAAM,gBAAgB,aAe5B,CAAC;AAEF,6GAA6G;AAC7G,eAAO,MAAM,sBAAsB,aAuBlC,CAAC;AAEF,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,aAAmD,CAAC;AAEpF,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,WAS/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,eAAgB,WAAW,KAAG,MAAM,CAAC,UAOlE,CAAC"}
1
+ {"version":3,"file":"payload-slices.d.ts","sourceRoot":"","sources":["../src/payload-slices.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAKZ,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAmL3C,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,aAe5B,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,sBAAsB,aAuBlC,CAAC;AAEF,sHAAsH;AACtH,eAAO,MAAM,mBAAmB,aAAmD,CAAC;AAEpF,eAAO,MAAM,cAAc,WAAY,MAAM,KAAG,WAS/C,CAAC;AAEF,kGAAkG;AAClG,eAAO,MAAM,iBAAiB,eAAgB,WAAW,KAAG,MAAM,CAAC,UAOlE,CAAC"}