crewly 1.20.349 → 1.20.350

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 (46) hide show
  1. package/config/skills/agent/core/complete-task/SKILL.md +6 -5
  2. package/config/skills/agent/core/complete-task/execute.sh +13 -4
  3. package/config/skills/agent/core/complete-task/execute.test.sh +7 -0
  4. package/config/skills/agent/core/report-status/SKILL.md +3 -3
  5. package/config/skills/agent/core/report-status/execute.sh +9 -5
  6. package/config/skills/orchestrator/complete-task/SKILL.md +1 -1
  7. package/config/skills/orchestrator/complete-task/execute.sh +3 -2
  8. package/config/skills/orchestrator/render-verdict/SKILL.md +2 -1
  9. package/config/skills/orchestrator/render-verdict/execute.sh +8 -4
  10. package/config/skills/team-leader/verify-output/SKILL.md +8 -3
  11. package/config/skills/team-leader/verify-output/execute.sh +4 -3
  12. package/config/skills/team-leader/verify-output/execute.test.sh +2 -0
  13. package/dist/backend/backend/src/constants.d.ts +30 -5
  14. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  15. package/dist/backend/backend/src/constants.js +32 -5
  16. package/dist/backend/backend/src/constants.js.map +1 -1
  17. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts +8 -5
  18. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.d.ts.map +1 -1
  19. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js +91 -16
  20. package/dist/backend/backend/src/controllers/task-pool/task-pool.controller.js.map +1 -1
  21. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.d.ts.map +1 -1
  22. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js +3 -1
  23. package/dist/backend/backend/src/services/event-bus/event-to-workitem-bridge.service.js.map +1 -1
  24. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts +74 -5
  25. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.d.ts.map +1 -1
  26. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js +187 -21
  27. package/dist/backend/backend/src/services/task-pool/completion-evidence.service.js.map +1 -1
  28. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts +16 -0
  29. package/dist/backend/backend/src/types/v2/completion-evidence.types.d.ts.map +1 -1
  30. package/dist/backend/backend/src/types/v2/completion-evidence.types.js.map +1 -1
  31. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +6 -0
  32. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  33. package/dist/backend/backend/src/types/v2/work-item.types.js +6 -0
  34. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  35. package/dist/backend/build-info.json +2 -2
  36. package/dist/cli/backend/src/constants.d.ts +30 -5
  37. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  38. package/dist/cli/backend/src/constants.js +32 -5
  39. package/dist/cli/backend/src/constants.js.map +1 -1
  40. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +6 -0
  41. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  42. package/dist/cli/backend/src/types/v2/work-item.types.js +6 -0
  43. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  44. package/package.json +1 -1
  45. package/packages/crewly-agent/src/runtime/tool-registry.test.ts +26 -0
  46. package/packages/crewly-agent/src/runtime/tool-registry.ts +31 -4
@@ -1413,12 +1413,20 @@ export const COMPLETION_EVIDENCE_CONSTANTS = {
1413
1413
  /** The two rollout modes for a completion that carries no evidence. */
1414
1414
  MODES: ['warn', 'enforce'],
1415
1415
  /**
1416
- * Default mode for a completion with no evidence. `warn` (this release):
1417
- * accepted, logged, and the response carries a `warning`. `enforce` (next
1418
- * release): 400. Malformed evidence, missing artifacts, failing commands and
1419
- * `blocked` entries are handled the same in both modes.
1416
+ * Default mode for a completion with no evidence. `enforce` (default since
1417
+ * #1312): 400 `evidence_required`. `warn` (the escape hatch, set with
1418
+ * {@link ENV_MODE}): accepted, logged, and the response carries a `warning`.
1419
+ * Malformed evidence, missing artifacts, failing commands and `blocked`
1420
+ * entries are handled the same in both modes.
1420
1421
  */
1421
- EVIDENCE_ENFORCEMENT_MODE: 'warn',
1422
+ EVIDENCE_ENFORCEMENT_MODE: 'enforce',
1423
+ /**
1424
+ * WorkItem types whose completion must carry evidence: a worker's
1425
+ * deliverable. Every other type is harness bookkeeping (triage, replans,
1426
+ * retros, reconciles, notifications) and may complete without it. An item
1427
+ * with no known type is treated as a deliverable.
1428
+ */
1429
+ REQUIRED_FOR_TYPES: ['delegate', 'project_task', 'review'],
1422
1430
  /** Env var that overrides {@link EVIDENCE_ENFORCEMENT_MODE} (`warn` | `enforce`). */
1423
1431
  ENV_MODE: 'CREWLY_EVIDENCE_MODE',
1424
1432
  /** Most evidence entries accepted on one completion. */
@@ -1434,8 +1442,27 @@ export const COMPLETION_EVIDENCE_CONSTANTS = {
1434
1442
  MISSING: 'evidence_required',
1435
1443
  ARTIFACT_NOT_FOUND: 'evidence_artifact_not_found',
1436
1444
  ARTIFACT_UNRESOLVABLE: 'evidence_artifact_relative_path',
1445
+ ARTIFACT_EMPTY: 'evidence_artifact_empty',
1446
+ ARTIFACT_STALE: 'evidence_artifact_stale',
1437
1447
  COMMAND_FAILED: 'evidence_command_failed',
1448
+ REVIEW_UNCHECKED: 'review_unchecked',
1449
+ REVIEW_CHECKS_MALFORMED: 'review_checks_malformed',
1450
+ REVIEW_CHECK_FAILED: 'review_check_failed',
1438
1451
  },
1452
+ /** Worker evidence entries listed, numbered, in a review item's description (#1314). */
1453
+ REVIEW_LISTED_ENTRIES: 10,
1454
+ /** Outcomes a reviewer records for one check (#1314). */
1455
+ CHECK_OUTCOMES: ['pass', 'fail'],
1456
+ /** The shape of a reviewer's check record, quoted in every refusal (#1314). */
1457
+ CHECKS_HINT: 'Send body.result.checks: an array of {"entry":<index in the worker\'s output.evidence, or null for a direct look at the work>,' +
1458
+ '"did":"<what you did: opened it and read X / re-ran it, exit 0 / looked at the page>","outcome":"pass"|"fail"}. ' +
1459
+ 'At least one check must name a worker evidence entry when there is any. A failed check cannot be accepted: send it back with {"verdict":"rejected","feedback":"..."}.',
1460
+ /**
1461
+ * A local file artifact last modified more than this before its WorkItem
1462
+ * was created is stale: it was not made for this task (#1313). The slack
1463
+ * covers clock skew and a file saved just before the item was filed.
1464
+ */
1465
+ STALE_GRACE_MS: 5 * 60_000,
1439
1466
  /** The shape a worker must send, quoted in every rejection and warning. */
1440
1467
  SHAPE_HINT: 'Send body.result.evidence: an array of {"type":"artifact","path":"<existing file or https URL>"}, ' +
1441
1468
  '{"type":"command","command":"<cmd>","exitCode":0,"outputTail":"<last lines>"}, ' +