crewly 1.20.260 → 1.20.261

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 (61) hide show
  1. package/dist/backend/backend/src/constants.d.ts +5 -0
  2. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  3. package/dist/backend/backend/src/constants.js +5 -0
  4. package/dist/backend/backend/src/constants.js.map +1 -1
  5. package/dist/backend/backend/src/controllers/team/team.controller.d.ts.map +1 -1
  6. package/dist/backend/backend/src/controllers/team/team.controller.js +49 -15
  7. package/dist/backend/backend/src/controllers/team/team.controller.js.map +1 -1
  8. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  9. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js +2 -1
  10. package/dist/backend/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  11. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  12. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +7 -3
  13. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  14. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  15. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +4 -4
  16. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  17. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  18. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +6 -5
  19. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  20. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts +2 -1
  21. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js +5 -2
  23. package/dist/backend/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
  24. package/dist/backend/backend/src/services/agent/runtime-startup-screen.d.ts +57 -0
  25. package/dist/backend/backend/src/services/agent/runtime-startup-screen.d.ts.map +1 -0
  26. package/dist/backend/backend/src/services/agent/runtime-startup-screen.js +91 -0
  27. package/dist/backend/backend/src/services/agent/runtime-startup-screen.js.map +1 -0
  28. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts +5 -2
  29. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  30. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +15 -6
  31. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  32. package/dist/backend/backend/src/services/reconciler/stalled-agent-recovery.d.ts +23 -7
  33. package/dist/backend/backend/src/services/reconciler/stalled-agent-recovery.d.ts.map +1 -1
  34. package/dist/backend/backend/src/services/reconciler/stalled-agent-recovery.js +91 -24
  35. package/dist/backend/backend/src/services/reconciler/stalled-agent-recovery.js.map +1 -1
  36. package/dist/backend/build-info.json +2 -2
  37. package/dist/cli/backend/src/constants.d.ts +5 -0
  38. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  39. package/dist/cli/backend/src/constants.js +5 -0
  40. package/dist/cli/backend/src/constants.js.map +1 -1
  41. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.d.ts.map +1 -1
  42. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js +2 -1
  43. package/dist/cli/backend/src/services/agent/antigravity-runtime.service.js.map +1 -1
  44. package/dist/cli/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  45. package/dist/cli/backend/src/services/agent/claude-runtime.service.js +7 -3
  46. package/dist/cli/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  47. package/dist/cli/backend/src/services/agent/gemini-runtime.service.d.ts.map +1 -1
  48. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js +4 -4
  49. package/dist/cli/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  50. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  51. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js +6 -5
  52. package/dist/cli/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  53. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts +2 -1
  54. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.d.ts.map +1 -1
  55. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js +5 -2
  56. package/dist/cli/backend/src/services/agent/runtime-startup-blocked.error.js.map +1 -1
  57. package/dist/cli/backend/src/services/agent/runtime-startup-screen.d.ts +57 -0
  58. package/dist/cli/backend/src/services/agent/runtime-startup-screen.d.ts.map +1 -0
  59. package/dist/cli/backend/src/services/agent/runtime-startup-screen.js +91 -0
  60. package/dist/cli/backend/src/services/agent/runtime-startup-screen.js.map +1 -0
  61. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Where on a start-up screen a runtime error may be read from.
3
+ *
4
+ * A runtime's start-up check used to search the WHOLE captured pane for its
5
+ * error patterns ("No such file or directory", "Permission denied", ...).
6
+ * With `claude --resume` (and `codex resume`) the CLI re-renders the
7
+ * conversation history, and any bash output in that history that contained
8
+ * one of those words killed a perfectly good resume as a "startup error"
9
+ * (ce-nova incident, 2026-10-07).
10
+ *
11
+ * The rule here: an error counts only when the SHELL or the launcher
12
+ * printed it, never when it is text inside the runtime's own UI.
13
+ *
14
+ * - The runtime UI spans from its first UI line (box drawing, logo, tool
15
+ * bullets) to its last one. Lines inside that span belong to the UI —
16
+ * including a re-rendered transcript — and are ignored. Lines before it
17
+ * (the launch command and anything the shell printed) and after it (the
18
+ * UI exited and the shell is back) are shell output.
19
+ * - Shell/launcher failures (`permission denied`, `no such file or
20
+ * directory`, `command not found`) count only on a line that starts at
21
+ * column 0 with a `name:` prefix the way shells print them:
22
+ * `zsh: command not found: claude`, `bash: cd: /x: No such file or
23
+ * directory`, `cd: no such file or directory: /x`, `env: node: No such file
24
+ * or directory`, `/path/run.sh: line 3: ...`. A runtime indents the tool
25
+ * output it renders, so a transcript line never qualifies.
26
+ * - Runtime-specific patterns (e.g. "Invalid API key") count anywhere in the
27
+ * shell output, but not inside the UI.
28
+ */
29
+ /**
30
+ * Whether a pattern describes a shell/launcher failure (as opposed to a
31
+ * runtime-specific message such as "Invalid API key").
32
+ *
33
+ * @param pattern - Error pattern from a runtime's getRuntimeErrorPatterns()
34
+ * @returns True for permission-denied / no-such-file / command-not-found
35
+ */
36
+ export declare function isShellFailurePattern(pattern: string): boolean;
37
+ /**
38
+ * The lines of a captured screen that the shell printed, i.e. everything
39
+ * outside the runtime UI span (see module docs).
40
+ *
41
+ * @param output - Captured pane text
42
+ * @returns The shell-output lines, in screen order
43
+ */
44
+ export declare function shellOutputLines(output: string): string[];
45
+ /**
46
+ * Find the first error pattern that a start-up screen really shows.
47
+ *
48
+ * @param output - Captured pane text
49
+ * @param patterns - The runtime's error patterns
50
+ * @param options.includes - How a runtime-specific pattern is searched in the shell output
51
+ * (defaults to a plain substring match; Antigravity also matches across wrapped lines)
52
+ * @returns The matching pattern, or undefined when the screen shows no start-up error
53
+ */
54
+ export declare function findStartupErrorPattern(output: string, patterns: readonly string[], options?: {
55
+ includes?: (text: string, pattern: string) => boolean;
56
+ }): string | undefined;
57
+ //# sourceMappingURL=runtime-startup-screen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-startup-screen.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/runtime-startup-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAWH;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAWzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACtC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;CAAO,GACrE,MAAM,GAAG,SAAS,CAapB"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Where on a start-up screen a runtime error may be read from.
3
+ *
4
+ * A runtime's start-up check used to search the WHOLE captured pane for its
5
+ * error patterns ("No such file or directory", "Permission denied", ...).
6
+ * With `claude --resume` (and `codex resume`) the CLI re-renders the
7
+ * conversation history, and any bash output in that history that contained
8
+ * one of those words killed a perfectly good resume as a "startup error"
9
+ * (ce-nova incident, 2026-10-07).
10
+ *
11
+ * The rule here: an error counts only when the SHELL or the launcher
12
+ * printed it, never when it is text inside the runtime's own UI.
13
+ *
14
+ * - The runtime UI spans from its first UI line (box drawing, logo, tool
15
+ * bullets) to its last one. Lines inside that span belong to the UI —
16
+ * including a re-rendered transcript — and are ignored. Lines before it
17
+ * (the launch command and anything the shell printed) and after it (the
18
+ * UI exited and the shell is back) are shell output.
19
+ * - Shell/launcher failures (`permission denied`, `no such file or
20
+ * directory`, `command not found`) count only on a line that starts at
21
+ * column 0 with a `name:` prefix the way shells print them:
22
+ * `zsh: command not found: claude`, `bash: cd: /x: No such file or
23
+ * directory`, `cd: no such file or directory: /x`, `env: node: No such file
24
+ * or directory`, `/path/run.sh: line 3: ...`. A runtime indents the tool
25
+ * output it renders, so a transcript line never qualifies.
26
+ * - Runtime-specific patterns (e.g. "Invalid API key") count anywhere in the
27
+ * shell output, but not inside the UI.
28
+ */
29
+ /** A character only a runtime TUI draws (borders, logos, tool bullets). */
30
+ const RUNTIME_UI_LINE = /[╭╮╰╯│┃━═⏺⎿✻✳▐▛▜▝▘█░]/;
31
+ /** A pattern that describes a shell or launcher failure. */
32
+ const SHELL_FAILURE_PATTERN = /permission denied|no such file or directory|command not found/i;
33
+ /** A line printed by a shell, a builtin or a script: `zsh: ...`, `cd: ...`, `/x/run.sh: ...`. */
34
+ const SHELL_PREFIXED_LINE = /^-?[\w.~@+/-]+:\s/;
35
+ /**
36
+ * Whether a pattern describes a shell/launcher failure (as opposed to a
37
+ * runtime-specific message such as "Invalid API key").
38
+ *
39
+ * @param pattern - Error pattern from a runtime's getRuntimeErrorPatterns()
40
+ * @returns True for permission-denied / no-such-file / command-not-found
41
+ */
42
+ export function isShellFailurePattern(pattern) {
43
+ return SHELL_FAILURE_PATTERN.test(pattern);
44
+ }
45
+ /**
46
+ * The lines of a captured screen that the shell printed, i.e. everything
47
+ * outside the runtime UI span (see module docs).
48
+ *
49
+ * @param output - Captured pane text
50
+ * @returns The shell-output lines, in screen order
51
+ */
52
+ export function shellOutputLines(output) {
53
+ const lines = output.split(/\r?\n/);
54
+ let first = -1;
55
+ let last = -1;
56
+ for (let i = 0; i < lines.length; i++) {
57
+ if (!RUNTIME_UI_LINE.test(lines[i]))
58
+ continue;
59
+ if (first === -1)
60
+ first = i;
61
+ last = i;
62
+ }
63
+ if (first === -1)
64
+ return lines;
65
+ return [...lines.slice(0, first), ...lines.slice(last + 1)];
66
+ }
67
+ /**
68
+ * Find the first error pattern that a start-up screen really shows.
69
+ *
70
+ * @param output - Captured pane text
71
+ * @param patterns - The runtime's error patterns
72
+ * @param options.includes - How a runtime-specific pattern is searched in the shell output
73
+ * (defaults to a plain substring match; Antigravity also matches across wrapped lines)
74
+ * @returns The matching pattern, or undefined when the screen shows no start-up error
75
+ */
76
+ export function findStartupErrorPattern(output, patterns, options = {}) {
77
+ if (patterns.length === 0)
78
+ return undefined;
79
+ const lines = shellOutputLines(output);
80
+ const shellLines = lines.filter((l) => SHELL_PREFIXED_LINE.test(l)).map((l) => l.toLowerCase());
81
+ const shellText = lines.join('\n');
82
+ const includes = options.includes ?? ((text, p) => text.includes(p));
83
+ return patterns.find((p) => {
84
+ if (isShellFailurePattern(p)) {
85
+ const needle = p.toLowerCase();
86
+ return shellLines.some((l) => l.includes(needle));
87
+ }
88
+ return includes(shellText, p);
89
+ });
90
+ }
91
+ //# sourceMappingURL=runtime-startup-screen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-startup-screen.js","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/runtime-startup-screen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,2EAA2E;AAC3E,MAAM,eAAe,GAAG,uBAAuB,CAAC;AAEhD,4DAA4D;AAC5D,MAAM,qBAAqB,GAAG,gEAAgE,CAAC;AAE/F,iGAAiG;AACjG,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACpD,OAAO,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IACf,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAE,SAAS;QAC9C,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,KAAK,GAAG,CAAC,CAAC;QAC5B,IAAI,GAAG,CAAC,CAAC;IACV,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACtC,MAAc,EACd,QAA2B,EAC3B,UAAqE,EAAE;IAEvE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAChG,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAY,EAAE,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1B,IAAI,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crewly",
3
- "version": "1.20.260",
3
+ "version": "1.20.261",
4
4
  "type": "module",
5
5
  "description": "Multi-agent orchestration platform for AI coding teams — coordinates Claude Code, Gemini CLI, and Codex agents with a real-time web dashboard",
6
6
  "workspaces": [