crewly 1.20.290 → 1.20.291

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/config/domain-sops/expert-distillation.sop.md +45 -45
  2. package/dist/backend/backend/src/constants.d.ts +4 -4
  3. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  4. package/dist/backend/backend/src/constants.js +21 -21
  5. package/dist/backend/backend/src/constants.js.map +1 -1
  6. package/dist/backend/backend/src/controllers/bundle/bundle.controller.js +1 -1
  7. package/dist/backend/backend/src/controllers/bundle/bundle.controller.js.map +1 -1
  8. package/dist/backend/backend/src/services/bundle/bundle-apply.service.js +45 -45
  9. package/dist/backend/backend/src/services/bundle/bundle-apply.service.js.map +1 -1
  10. package/dist/backend/backend/src/services/bundle/bundle-placeholders.js +7 -7
  11. package/dist/backend/backend/src/services/bundle/bundle-placeholders.js.map +1 -1
  12. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +3 -3
  13. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -19
  14. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  15. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +1 -1
  16. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +1 -1
  17. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js +2 -2
  18. package/dist/backend/backend/src/services/messaging/owner-message-watchdog.wiring.js.map +1 -1
  19. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js +1 -1
  20. package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +1 -1
  22. package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  23. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js +1 -1
  24. package/dist/backend/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  25. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +2 -2
  27. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  28. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.d.ts +3 -3
  29. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js +7 -7
  30. package/dist/backend/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  31. package/dist/backend/backend/src/services/v3/ticket-intake.service.d.ts +2 -2
  32. package/dist/backend/backend/src/services/v3/ticket-intake.service.js +1 -1
  33. package/dist/backend/backend/src/services/v3/ticket-review.service.js +5 -5
  34. package/dist/backend/backend/src/services/v3/ticket-review.service.js.map +1 -1
  35. package/dist/backend/backend/src/utils/incomplete-turn.utils.js +6 -6
  36. package/dist/backend/backend/src/utils/incomplete-turn.utils.js.map +1 -1
  37. package/dist/backend/build-info.json +2 -2
  38. package/dist/cli/backend/src/constants.d.ts +4 -4
  39. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  40. package/dist/cli/backend/src/constants.js +21 -21
  41. package/dist/cli/backend/src/constants.js.map +1 -1
  42. package/dist/cli/backend/src/services/bundle/bundle-apply.service.js +45 -45
  43. package/dist/cli/backend/src/services/bundle/bundle-apply.service.js.map +1 -1
  44. package/dist/cli/backend/src/services/bundle/bundle-placeholders.js +7 -7
  45. package/dist/cli/backend/src/services/bundle/bundle-placeholders.js.map +1 -1
  46. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +3 -3
  47. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +19 -19
  48. package/dist/cli/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  49. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.d.ts +1 -1
  50. package/dist/cli/backend/src/services/chat-v2/sqlite/message.store.js +1 -1
  51. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js +1 -1
  52. package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
  53. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +1 -1
  54. package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
  55. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js +1 -1
  56. package/dist/cli/backend/src/services/slack/slack-thread-context.service.js.map +1 -1
  57. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  58. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +2 -2
  59. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  60. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.d.ts +3 -3
  61. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js +7 -7
  62. package/dist/cli/backend/src/services/v3/ticket-channel-hooks.js.map +1 -1
  63. package/dist/cli/backend/src/services/v3/ticket-intake.service.d.ts +2 -2
  64. package/dist/cli/backend/src/services/v3/ticket-intake.service.js +1 -1
  65. package/dist/cli/backend/src/services/v3/ticket-review.service.js +5 -5
  66. package/dist/cli/backend/src/services/v3/ticket-review.service.js.map +1 -1
  67. package/dist/cli/backend/src/utils/incomplete-turn.utils.js +6 -6
  68. package/dist/cli/backend/src/utils/incomplete-turn.utils.js.map +1 -1
  69. package/dist/cli/cli/src/commands/deploy-bundle.js +4 -4
  70. package/dist/cli/cli/src/commands/deploy-bundle.js.map +1 -1
  71. package/dist/cli/cli/src/commands/onboard.js +1 -1
  72. package/dist/cli/cli/src/commands/onboard.js.map +1 -1
  73. package/package.json +1 -1
  74. package/packages/crewly-agent/src/runtime/reply-tool-calls.ts +0 -3
@@ -1696,10 +1696,10 @@ export const SLACK_NOTIFICATION_FALLBACK_MAX_CANDIDATES = 4;
1696
1696
  * before the work, so the owner is not left with only "is working on it…".
1697
1697
  * `{cmd}` is the interim form of the agent's reply skill.
1698
1698
  */
1699
- export const CHAT_REPLY_PACING_HINT = '回复节奏: 动手前先判断工作量。一两分钟内能做完的(查一下、答一句、改一处)→ 直接做,做完一次性回复。' +
1700
- '要花更久的(多个步骤、要跑命令/开浏览器/查很多资料、预计超过约 3 分钟)→ **先**用一两句话回复({cmd}):你理解的需求、打算怎么做、大概多久,有要对方确认的就一并问;' +
1701
- '发完再开始做,做完发最终回复。中间不要刷进度,除非遇到阻塞或计划变了。' +
1702
- '对方是在回答你问的问题、或给了你新信息/决定时,至少回一句简短确认(例如「收到,按 X 来」)——不回会让对方以为没人看;只有「好」「ok」「谢谢」这类收尾可以不回。';
1699
+ export const CHAT_REPLY_PACING_HINT = 'Reply pacing: size the job before you start. If you can finish it in a minute or two (a quick lookup, a one-line answer, a single edit) → just do it and send one reply when done. ' +
1700
+ 'If it takes longer (several steps, running commands, opening a browser, reading a lot of material, expected to take more than about 3 minutes) → **first** reply with a sentence or two ({cmd}): what you understand the ask to be, how you plan to do it, roughly how long it will take, and anything you need them to confirm; ' +
1701
+ 'then start, and send the final reply when done. Do not post progress updates in between unless you hit a blocker or the plan changes. ' +
1702
+ 'When the person is answering a question you asked, or gave you new information or a decision, reply with at least a short acknowledgement (e.g. "Got it, going with X") — silence makes them think nobody saw it; only closers like "ok" or "thanks" may go unanswered.';
1703
1703
  /** Unassigned work goes to a decider and moves up when not taken (owner, 2026-09-24). */
1704
1704
  export const UNASSIGNED_ROUTE_CONSTANTS = {
1705
1705
  /** A decider has this long to take an item before it moves one level up (ms) */
@@ -2300,8 +2300,8 @@ export const OWNER_MESSAGE_WATCHDOG_CONSTANTS = {
2300
2300
  '👍', '🙏', '👌', '✅', '❤️', '🙂', '😊', '👍👍',
2301
2301
  ],
2302
2302
  /** Nudge delivered to the responsible agent ({waited} = minutes) */
2303
- NUDGE_TEXT: '[REMINDER] 这条来自 owner 的消息已经 {waited} 分钟没有回复了。现在回复它:`{replyCmd}`——会自动发回这条消息来的地方。' +
2304
- '如果已经在别处回答过,或者确实不需要回复,运行 `{noneCmd}`。',
2303
+ NUDGE_TEXT: '[REMINDER] This message from the owner has gone {waited} minutes without a reply. Reply to it now: `{replyCmd}` — it is sent automatically back to where the message came from. ' +
2304
+ 'If you already answered elsewhere, or it genuinely needs no reply, run `{noneCmd}`.',
2305
2305
  /**
2306
2306
  * Note texts (from Crewly's own bot), English like the rest of the
2307
2307
  * owner-facing UI. {name} = agent display name. The login note names the
@@ -5483,17 +5483,17 @@ export const TICKET_CONSTANTS = {
5483
5483
  SLACK_DISMISS_ACTION_ID: 'ticket_dismiss',
5484
5484
  /** Receipt texts */
5485
5485
  RECEIPT: {
5486
- RECORDED: (tkt) => `已记成 ${tkt}`,
5487
- DISMISSED: (tkt) => `${tkt} 已取消记录`,
5486
+ RECORDED: (tkt) => `Recorded as ${tkt}`,
5487
+ DISMISSED: (tkt) => `${tkt} is no longer tracked`,
5488
5488
  /** chat-v2 receipt once the ticket is accepted */
5489
- DONE: (tkt) => `${tkt} 已完成`,
5489
+ DONE: (tkt) => `${tkt} is done`,
5490
5490
  /** Slack receipt: this reaction on the owner's message (no reply, no notification) */
5491
5491
  REACTION: 'ticket',
5492
5492
  /** Slack: the 🎫 becomes this once the ticket is accepted */
5493
5493
  DONE_REACTION: 'white_check_mark',
5494
5494
  /**
5495
5495
  * Receipts are off (owner, 2026-09-24): tickets are Crewly's own record
5496
- * of the work — no 🎫 / ✅ / 「已记成 TKT-…」 in the owner's conversations.
5496
+ * of the work — no 🎫 / ✅ / "Recorded as TKT-…" in the owner's conversations.
5497
5497
  */
5498
5498
  ENABLED: false,
5499
5499
  },
@@ -5572,9 +5572,9 @@ export const TICKET_CONSTANTS = {
5572
5572
  /** 「打回 <reason>」 — send it back; group 2 is the reason */
5573
5573
  REJECT_PATTERN: /^\s*(打回|退回|重做|不通过|reject(ed)?|redo)\s*[::,,。.\-—]*\s*([\s\S]*)$/i,
5574
5574
  /** Reason recorded when 打回 came without one */
5575
- REJECT_NO_REASON: '(未写原因)',
5575
+ REJECT_NO_REASON: '(no reason given)',
5576
5576
  /** WorkItem title for a rework sent from the board */
5577
- REWORK_TITLE: (tkt) => `打回 ${tkt}`,
5577
+ REWORK_TITLE: (tkt) => `Sent back ${tkt}`,
5578
5578
  },
5579
5579
  /**
5580
5580
  * Follow-ups vs new tickets (owner, 2026-09-28): an answer to an agent's
@@ -5938,7 +5938,7 @@ export const ONBOARDING_CONSTANTS = {
5938
5938
  /** Longest first task accepted */
5939
5939
  FIRST_TASK_MAX_LENGTH: 4000,
5940
5940
  /** First line of the message the orchestrator receives for a first task */
5941
- FIRST_TASK_HEADER: '[初始设置 · 第一件事]',
5941
+ FIRST_TASK_HEADER: '[Initial setup · first task]',
5942
5942
  /** Chat metadata `source` of a first task sent from setup */
5943
5943
  FIRST_TASK_SOURCE: 'onboarding_first_task',
5944
5944
  /** Query parameter that opens `/setup` at a step (e.g. `/setup?step=cloud`) */
@@ -5987,13 +5987,13 @@ export const BUNDLE_CONSTANTS = {
5987
5987
  STEP_ORDER: ['team', 'norms', 'skills', 'connectors', 'slack', 'schedules', 'first_week'],
5988
5988
  /** Owner-facing step labels */
5989
5989
  STEP_LABELS: {
5990
- team: '建团队',
5991
- norms: '写团队规范和 SOP',
5992
- skills: '装技能',
5993
- connectors: '检查要接的服务',
5994
- slack: '建 Slack 频道',
5995
- schedules: '排定时任务',
5996
- first_week: '安排第一周的工作',
5990
+ team: 'Set up the team',
5991
+ norms: 'Write team norms and SOPs',
5992
+ skills: 'Install skills',
5993
+ connectors: 'Check the services to connect',
5994
+ slack: 'Create Slack channels',
5995
+ schedules: 'Schedule recurring tasks',
5996
+ first_week: 'Plan the first week of work',
5997
5997
  },
5998
5998
  /** Why a step is waiting (status `pending`) */
5999
5999
  PENDING_REASONS: {
@@ -6015,7 +6015,7 @@ export const BUNDLE_CONSTANTS = {
6015
6015
  /** Chat metadata `source` of a first-week task */
6016
6016
  FIRST_WEEK_SOURCE: 'bundle_first_week',
6017
6017
  /** First line of a first-week task the orchestrator receives */
6018
- FIRST_WEEK_HEADER: '[成套方案 · 第一周]',
6018
+ FIRST_WEEK_HEADER: '[Solution bundle · week one]',
6019
6019
  /** How often the backend delivers due first-week tasks and resumes waiting deployments */
6020
6020
  TICK_INTERVAL_MS: 5 * 60 * 1000,
6021
6021
  /** How often `crewly deploy-bundle` polls a running backend's job */