crewly 1.20.34 → 1.20.40

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 (78) hide show
  1. package/config/skills/_common/lib.sh +6 -0
  2. package/config/skills/agent/core/calendar-create/SKILL.md +10 -0
  3. package/config/skills/agent/core/calendar-create/execute.sh +6 -0
  4. package/config/skills/agent/core/calendar-list/SKILL.md +10 -0
  5. package/config/skills/agent/core/calendar-list/execute.sh +6 -0
  6. package/config/skills/agent/core/docs-read/SKILL.md +10 -0
  7. package/config/skills/agent/core/docs-read/execute.sh +6 -1
  8. package/config/skills/agent/core/docs-write/SKILL.md +10 -0
  9. package/config/skills/agent/core/docs-write/execute.sh +6 -1
  10. package/config/skills/agent/core/drive-read/SKILL.md +10 -0
  11. package/config/skills/agent/core/drive-read/execute.sh +6 -1
  12. package/config/skills/agent/core/drive-search/SKILL.md +10 -0
  13. package/config/skills/agent/core/drive-search/execute.sh +6 -1
  14. package/config/skills/agent/core/drive-upload/SKILL.md +10 -0
  15. package/config/skills/agent/core/drive-upload/execute.sh +6 -1
  16. package/config/skills/agent/core/gmail-read/SKILL.md +10 -0
  17. package/config/skills/agent/core/gmail-read/execute.sh +6 -0
  18. package/config/skills/agent/core/gmail-search/SKILL.md +10 -0
  19. package/config/skills/agent/core/gmail-search/execute.sh +6 -0
  20. package/config/skills/agent/core/gmail-send/SKILL.md +10 -0
  21. package/config/skills/agent/core/gmail-send/execute.sh +6 -0
  22. package/config/skills/agent/core/sheets-read/SKILL.md +10 -0
  23. package/config/skills/agent/core/sheets-read/execute.sh +6 -1
  24. package/config/skills/agent/core/sheets-write/SKILL.md +10 -0
  25. package/config/skills/agent/core/sheets-write/execute.sh +6 -1
  26. package/config/skills/agent/core/slides-create/SKILL.md +10 -0
  27. package/config/skills/agent/core/slides-create/execute.sh +6 -1
  28. package/config/skills/agent/core/slides-read/SKILL.md +10 -0
  29. package/config/skills/agent/core/slides-read/execute.sh +6 -1
  30. package/config/slack-app-manifest.json +16 -9
  31. package/dist/backend/backend/src/constants.d.ts +18 -4
  32. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  33. package/dist/backend/backend/src/constants.js +16 -4
  34. package/dist/backend/backend/src/constants.js.map +1 -1
  35. package/dist/backend/backend/src/controllers/google/google.controller.d.ts +8 -0
  36. package/dist/backend/backend/src/controllers/google/google.controller.d.ts.map +1 -1
  37. package/dist/backend/backend/src/controllers/google/google.controller.js +137 -37
  38. package/dist/backend/backend/src/controllers/google/google.controller.js.map +1 -1
  39. package/dist/backend/backend/src/controllers/google/google.routes.d.ts +2 -1
  40. package/dist/backend/backend/src/controllers/google/google.routes.d.ts.map +1 -1
  41. package/dist/backend/backend/src/controllers/google/google.routes.js +4 -2
  42. package/dist/backend/backend/src/controllers/google/google.routes.js.map +1 -1
  43. package/dist/backend/backend/src/controllers/slack/slack-error.utils.d.ts +46 -0
  44. package/dist/backend/backend/src/controllers/slack/slack-error.utils.d.ts.map +1 -0
  45. package/dist/backend/backend/src/controllers/slack/slack-error.utils.js +54 -0
  46. package/dist/backend/backend/src/controllers/slack/slack-error.utils.js.map +1 -0
  47. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  48. package/dist/backend/backend/src/controllers/slack/slack.controller.js +5 -12
  49. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  50. package/dist/backend/backend/src/services/google/google-api.client.d.ts +23 -2
  51. package/dist/backend/backend/src/services/google/google-api.client.d.ts.map +1 -1
  52. package/dist/backend/backend/src/services/google/google-api.client.js +5 -2
  53. package/dist/backend/backend/src/services/google/google-api.client.js.map +1 -1
  54. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts +61 -11
  55. package/dist/backend/backend/src/services/google/google-workspace-token.service.d.ts.map +1 -1
  56. package/dist/backend/backend/src/services/google/google-workspace-token.service.js +108 -31
  57. package/dist/backend/backend/src/services/google/google-workspace-token.service.js.map +1 -1
  58. package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  59. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +27 -4
  60. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  61. package/dist/backend/build-info.json +2 -2
  62. package/dist/cli/backend/src/constants.d.ts +18 -4
  63. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  64. package/dist/cli/backend/src/constants.js +16 -4
  65. package/dist/cli/backend/src/constants.js.map +1 -1
  66. package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
  67. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +27 -4
  68. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  69. package/frontend/dist/assets/{index-e079a375.js → index-e7785269.js} +267 -267
  70. package/frontend/dist/index.html +1 -1
  71. package/package.json +1 -1
  72. package/packages/crewly-agent/src/runtime/agent-runner.service.test.ts +10 -1
  73. package/packages/crewly-agent/src/runtime/agent-runner.service.ts +321 -1
  74. package/packages/crewly-agent/src/runtime/finish-recovery.test.ts +177 -0
  75. package/packages/crewly-agent/src/runtime/text-tool-calls.test.ts +144 -0
  76. package/packages/crewly-agent/src/runtime/text-tool-calls.ts +316 -0
  77. package/packages/crewly-agent/src/runtime/text-tool-salvage.test.ts +190 -0
  78. package/packages/crewly-agent/src/runtime/types.ts +38 -0
@@ -203,6 +203,34 @@ export interface AgentRunResult {
203
203
  * See P0-1 design-review gate for I2.5 reasoning-pipe routing.
204
204
  */
205
205
  reasoning?: string | null;
206
+ /**
207
+ * Set when the turn did NOT run to a natural end: the model was cut off,
208
+ * the provider bailed, or the step budget ran out. The text is then a
209
+ * fragment of an answer, not an answer.
210
+ */
211
+ incomplete?: IncompleteRun;
212
+ }
213
+
214
+ /** Why a turn ended early. */
215
+ export type IncompleteReason =
216
+ /** Ran out of output tokens and continuation attempts. */
217
+ | 'truncated'
218
+ /** Provider returned an unmapped/error finish (`other`, `error`, `unknown`). */
219
+ | 'abnormal-finish'
220
+ /** Hit `maxSteps` with work still outstanding. */
221
+ | 'steps-exhausted'
222
+ /** Provider refused on content grounds. */
223
+ | 'content-filter';
224
+
225
+ /** Describes a turn that ended early. */
226
+ export interface IncompleteRun {
227
+ reason: IncompleteReason;
228
+ /** One line a human can act on. */
229
+ detail: string;
230
+ /** Raw provider finish reason of the final attempt. */
231
+ finishReason: string;
232
+ /** Recovery attempts made before giving up. */
233
+ recoveryAttempts: number;
206
234
  }
207
235
 
208
236
  /**
@@ -524,6 +552,16 @@ export interface SecurityGuardrailConfig {
524
552
  export const CREWLY_AGENT_DEFAULTS = {
525
553
  /** Default max reasoning steps per generateText call (high to mimic unlimited like Claude Code) */
526
554
  MAX_STEPS: 500,
555
+ /** Continuations allowed for a turn cut off by the output-token limit. */
556
+ MAX_CONTINUATIONS: 3,
557
+ /** Re-runs allowed after the provider ended a turn abnormally. */
558
+ MAX_ABNORMAL_RETRIES: 1,
559
+ /** Rounds allowed for executing tool calls a model wrote as text instead of calling. */
560
+ MAX_TEXT_TOOL_SALVAGES: 3,
561
+ /** Tool calls executed per salvage round, so one confused turn cannot fan out. */
562
+ MAX_SALVAGED_CALLS_PER_ROUND: 5,
563
+ /** Characters of a salvaged tool result fed back to the model. */
564
+ SALVAGED_RESULT_MAX_CHARS: 4000,
527
565
  /** Maximum tool calls allowed per single response to prevent polling dead-loops */
528
566
  MAX_TOOL_CALLS_PER_RESPONSE: 15,
529
567
  /** Consecutive identical tool calls before aborting (loop detection) */