@codyswann/lisa 4.76.0 → 4.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -1
- package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
- package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
- package/dist/core/upstream-evidence-manifest.js +3 -2
- package/dist/core/upstream-evidence-manifest.js.map +1 -1
- package/package.json +4 -4
- package/plugins/lisa/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa/.codex-plugin/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa-agy/plugin.json +1 -1
- package/plugins/lisa-agy/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-agy/plugin.json +1 -1
- package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-copilot/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-cursor/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-devin/skills/lisa-setup-automations/SKILL.md +12 -0
- package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-agy/plugin.json +1 -1
- package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-expo-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-harper-fabric-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-agy/plugin.json +1 -1
- package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-nestjs-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-agy/plugin.json +1 -1
- package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-openclaw-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-agy/plugin.json +1 -1
- package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-phaser-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-agy/plugin.json +1 -1
- package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-rails-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-agy/plugin.json +1 -1
- package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-typescript-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-agy/plugin.json +1 -1
- package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.claude-plugin/plugin.json +1 -1
- package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +1 -1
- package/plugins/src/base/skills/lisa-setup-automations/SKILL.md +12 -0
- package/scripts/plugin-routing-validate.mjs +6 -4
|
@@ -23,6 +23,18 @@ create them; invoke the runtime's automation tool with the spec below.
|
|
|
23
23
|
automation. Do not point recurring automations at hashed scratch worktrees or a checkout whose Git
|
|
24
24
|
metadata is broken.
|
|
25
25
|
- **Claude** → use **`/schedule`** to create local recurring routines, one per automation below.
|
|
26
|
+
- **Devin CLI** → there is no native scheduler (documented gap, CodySwannGT/lisa#4283 — decided
|
|
27
|
+
as a documented manual trigger, not a polyfill). State that Devin cannot schedule the loops and
|
|
28
|
+
stop without creating anything. Then tell the operator their two working options:
|
|
29
|
+
1. **Run a loop by hand.** For example `devin -p -- "/lisa:lisa-intake <queue>"`. The same
|
|
30
|
+
command can go in the operator's own cron, which then owns the clock.
|
|
31
|
+
2. **Run the loops unattended** through `scheduler: "github-actions"` with `executionEnv`
|
|
32
|
+
(next section). GitHub Actions only owns the clock: the loop itself runs on whichever
|
|
33
|
+
supported remote surface `executionEnv` names (for example `claude-web` or
|
|
34
|
+
`codex-cloud`). That surface is not Devin, and there is no Devin remote surface.
|
|
35
|
+
|
|
36
|
+
Devin runs Lisa's skills from the `lisa-devin` plugin, so each loop's prompt is the same skill
|
|
37
|
+
invocation a scheduled run would make.
|
|
26
38
|
- **Other runtimes** → use the runtime's native recurring-task mechanism. If the runtime has none,
|
|
27
39
|
state that scheduling is unavailable and stop.
|
|
28
40
|
|
|
@@ -52,7 +52,7 @@ const REPO_ROOT = path.resolve(
|
|
|
52
52
|
);
|
|
53
53
|
|
|
54
54
|
/** The non-Claude-native agents that every routing block must cover, exactly. */
|
|
55
|
-
const AGENTS = ["agy", "codex", "copilot", "cursor"];
|
|
55
|
+
const AGENTS = ["agy", "codex", "copilot", "cursor", "devin"];
|
|
56
56
|
|
|
57
57
|
/** The locked routing-outcome enum. */
|
|
58
58
|
const OUTCOMES = new Set([
|
|
@@ -244,7 +244,7 @@ function validateActions(agent, entry, plugin, upstreamVersion) {
|
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
/**
|
|
247
|
-
* Validate the routing block: exactly the
|
|
247
|
+
* Validate the routing block: exactly the five agent keys, each with a valid
|
|
248
248
|
* outcome, an actions array, a non-empty rationale, and clean actions.
|
|
249
249
|
*
|
|
250
250
|
* @param {unknown} routing - the artifact's `routing` object.
|
|
@@ -254,13 +254,15 @@ function validateActions(agent, entry, plugin, upstreamVersion) {
|
|
|
254
254
|
*/
|
|
255
255
|
function validateRouting(routing, plugin, upstreamVersion) {
|
|
256
256
|
if (routing === null || typeof routing !== "object") {
|
|
257
|
-
return [
|
|
257
|
+
return [
|
|
258
|
+
"routing must be an object covering agy,codex,copilot,cursor,devin",
|
|
259
|
+
];
|
|
258
260
|
}
|
|
259
261
|
const errors = [];
|
|
260
262
|
const keys = Object.keys(routing).sort();
|
|
261
263
|
if (keys.join(",") !== [...AGENTS].sort().join(",")) {
|
|
262
264
|
errors.push(
|
|
263
|
-
`routing must have exactly agy,codex,copilot,cursor (got ${keys.join(",") || "none"})`
|
|
265
|
+
`routing must have exactly agy,codex,copilot,cursor,devin (got ${keys.join(",") || "none"})`
|
|
264
266
|
);
|
|
265
267
|
}
|
|
266
268
|
for (const agent of AGENTS) {
|