Charles Yao and Claude Opus 5
f1bf2fb318
feat(dify-builder): say when the workspace cannot cover the plan
...
Add assess_capability_gap: one plain sentence naming a plan step nothing
installed can perform, or "" when the plan is covered. Grounded only in
installed resources -- there is no marketplace lookup, so it names a missing
CAPABILITY, never a product to install. A missing_config tool (installed but
unauthorized, from the prior task's real readiness) doesn't count as
covering a step either, since the model is shown each option's readiness
alongside its label and kind.
Wired through the full agent seam: the DifyBuilderAgent protocol, the real
LlmBuilderAgent (delegates to build.assess_capability_gap), and the
PlaceholderAgent test double (returns ""). handlers_build.py calls it
after discover_resources and, when non-empty, appends a NoticeItem beside
the existing empty-resources notice -- the two are independent and can
both fire.
Like its sibling cognition functions, it degrades to "" (never raises) on
no model, an LLM error, or an unparseable reply: a gap that can't be
assessed isn't a gap worth inventing. The sentence is LLM-generated prose
already in the user's language (json_language_instruction), not a
catalogue entry, so no static string was added.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-09-20 16:13:02 -07:00
..
2026-09-18 08:59:54 +00:00
2026-09-02 06:54:47 +00:00
2026-09-18 09:17:36 +00:00
2026-09-20 16:13:02 -07:00
2026-09-07 08:29:57 +00:00
2026-09-07 04:39:43 +00:00
2026-09-17 17:01:34 +08:00
2026-09-04 02:01:35 +00:00
2026-09-18 08:42:53 +00:00
2026-08-07 09:21:13 +00:00
2026-09-18 05:10:25 +00:00
2026-09-19 07:54:35 +00:00
2026-09-18 09:17:36 +00:00
2026-09-09 09:02:04 +00:00
2026-08-21 11:55:25 +00:00
2026-09-04 07:38:01 +00:00
2026-08-27 08:51:05 +00:00
2026-09-07 15:54:53 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 05:56:30 +00:00
2026-08-21 08:13:23 +00:00
2026-08-21 08:13:23 +00:00
2026-08-21 08:46:06 +00:00
2026-08-21 08:05:43 +00:00
2026-09-09 04:38:50 +00:00
2026-08-31 03:22:01 +00:00
2026-08-31 03:22:01 +00:00
2026-09-11 02:41:35 +00:00
2026-09-04 07:38:01 +00:00
2026-09-03 01:38:59 +00:00
2026-09-03 01:38:59 +00:00
2026-09-02 06:54:47 +00:00
2026-08-21 05:56:30 +00:00
2026-09-07 15:54:53 +00:00
2026-09-03 06:20:21 +00:00
2026-09-03 08:47:14 +00:00
2026-09-03 08:47:14 +00:00
2026-09-03 01:38:59 +00:00
2026-08-21 05:56:30 +00:00
2026-09-04 07:38:01 +00:00
2026-08-20 05:03:08 +00:00
2026-09-03 01:38:59 +00:00
2026-09-20 02:01:55 +00:00
2026-07-08 03:07:27 +00:00
2026-09-08 03:31:01 +00:00
2026-09-17 07:05:02 +00:00
2026-08-25 10:21:32 +00:00
2026-07-24 11:35:12 +00:00
2026-07-08 03:07:27 +00:00
2026-09-12 04:55:53 +00:00
2026-07-08 03:07:27 +00:00
2026-09-02 10:30:42 +00:00
2026-09-17 07:28:18 +00:00
2026-08-20 05:05:31 +00:00
2026-09-18 08:59:54 +00:00
2026-08-31 09:30:52 +00:00
2026-09-17 12:54:40 +00:00
2026-07-15 06:48:28 +00:00
2026-07-15 09:31:09 +00:00
2026-09-20 09:45:05 +08:00
2026-09-02 06:54:47 +00:00
2026-09-04 09:15:51 +00:00
2026-09-07 02:47:00 +00:00
2026-09-07 02:47:00 +00:00
2026-08-11 07:39:01 +00:00
2026-08-25 10:21:32 +00:00
2026-09-02 06:54:47 +00:00
2026-09-08 05:42:22 +00:00
2026-08-11 07:39:01 +00:00
2026-09-02 06:54:47 +00:00
2026-09-08 03:31:01 +00:00
2026-07-08 03:07:27 +00:00
2026-08-25 10:21:32 +00:00
2026-09-02 06:54:47 +00:00
2026-09-02 10:30:42 +00:00
2026-07-15 09:31:09 +00:00
2026-09-11 07:43:16 +00:00
2026-08-17 02:41:26 +00:00
2026-08-19 06:57:47 +00:00
2026-09-11 17:07:04 +00:00
2026-09-04 06:03:46 +00:00
2026-09-16 07:45:48 +00:00
2026-09-02 06:54:47 +00:00
2026-09-01 11:50:52 +00:00
2026-09-09 15:55:44 +08:00
2026-08-10 03:27:56 +00:00
2026-09-04 02:01:35 +00:00
2026-09-04 02:01:35 +00:00
2026-08-04 13:14:02 +00:00
2026-09-18 05:10:25 +00:00
2026-07-15 06:48:28 +00:00
2026-09-07 03:21:33 +00:00
2026-09-09 02:56:40 +00:00
2026-08-12 08:42:09 +00:00
2026-09-01 11:50:52 +00:00
2026-09-01 11:50:52 +00:00
2026-07-24 07:11:48 +00:00
2026-07-23 01:48:36 +00:00
2026-09-18 02:16:47 +00:00
2026-09-07 08:59:18 +00:00
2026-09-03 05:02:09 +00:00
2026-08-11 16:37:14 +00:00
2026-08-07 00:42:13 +00:00
2026-09-18 09:17:35 +00:00
2026-08-31 04:37:07 +00:00
2026-09-04 01:52:30 +00:00
2026-08-26 07:33:37 +00:00
2026-09-18 08:42:53 +00:00
2026-08-26 07:33:37 +00:00
2026-08-24 01:55:48 +00:00
2026-09-08 03:42:32 +00:00
2026-09-08 03:42:32 +00:00
2026-08-15 00:56:09 +00:00
2026-09-07 04:39:43 +00:00
2026-09-15 12:45:34 +00:00
2026-08-20 13:13:43 +00:00
2026-09-04 06:03:46 +00:00
2026-09-03 06:00:13 +00:00
2026-07-08 03:07:27 +00:00
2026-08-08 11:52:15 +00:00
2026-08-24 01:57:17 +00:00
2026-08-08 11:52:15 +00:00
2026-09-17 09:52:25 +00:00
2026-09-07 10:59:09 +00:00
2026-07-15 06:48:28 +00:00
2026-09-08 09:31:08 +00:00
2026-09-02 06:54:47 +00:00
2026-09-07 08:31:08 +00:00
2026-09-01 11:50:52 +00:00
2026-09-02 06:54:47 +00:00
2026-09-18 03:22:44 +00:00
2026-08-11 07:39:01 +00:00
2026-09-08 02:51:11 +00:00
2026-08-20 13:13:42 +00:00
2026-08-19 06:57:47 +00:00
2026-09-08 02:03:24 +00:00
2026-07-27 02:12:57 +00:00
2026-08-25 10:21:32 +00:00
2026-09-07 08:29:57 +00:00
2026-09-09 02:56:40 +00:00
2026-07-08 03:07:27 +00:00
2026-09-04 02:01:35 +00:00
2026-09-01 11:50:52 +00:00
2026-08-20 02:27:49 +00:00
2026-09-01 11:50:52 +00:00
2026-08-02 02:49:17 +00:00
2026-09-04 10:06:46 +00:00
2026-08-21 00:52:39 +00:00
2026-07-21 02:07:47 +00:00
2026-08-03 02:24:18 +00:00
2026-08-25 10:21:32 +00:00
2026-09-08 09:31:08 +00:00
2026-09-08 09:31:08 +00:00
2026-09-01 11:50:52 +00:00
2026-09-02 06:54:47 +00:00
2026-08-12 01:55:36 +00:00
2026-09-02 06:54:47 +00:00
2026-08-06 01:08:39 +00:00
2026-08-11 07:39:01 +00:00
2026-08-11 07:39:01 +00:00
2026-09-07 08:29:57 +00:00