玉澜
e705012011
feat(schema): migrate parameter overlays into code declarations
...
Move 121/210 parameter-level Schema field overlays from
schema_hints/metadata JSON into in-code ParamDecl declarations on
DeclareLeafMetadata commands. The declared values are emitted as
dws.schema.* annotations at assembly time via ApplyParamDecls,
outranking tool_schema_hint (rank 620 > 500) so the hint overlay
becomes redundant once the declaration is in place.
Key mechanism changes:
- Add SchemaDecl.Parameters []ParamDecl with property/required/
interface_type/description/required_when/enum fields
- Add cli.ParamDecl type carried inside ContractFinalPayload
- ApplyParamDecls emits dws.schema.* annotations from the payload
at assembly time (no sync.Map, no tree-rebuild key issue)
- Add cli.AnnotateRuntimeFlagInterfaceType (41 overlays needed it)
- Add cli.AnnotateRuntimeFlagRequiredValue for explicit true/false
- Compatibility alias check tolerates dws.schema.* annotation
differences between primary and alias commands
- Remove runtime source_hash recomputation (87ms/997k allocs saved;
enforced by check-generated-drift.sh at build time instead)
- Add shortcut.Flag.RequiredWhen and wire through FromShortcut
- Add boolFlag OR semantics to fix confirmationBypass disagreement
- Add bindKey default kebab-to-camel for forgotten Bind
- Add schema consumption benchmarks (catalog decode 1.5s/817MB,
shortcut load 1.9ms/3MB — three orders of magnitude apart)
- Add catalog codegen feasibility probe (34 tools: 0.06s compile,
31ns access, 87KB linked — extrapolates to 2.1MB for 845 tools)
Migrated products (29 tools, 121 fields):
aisearch(1), chat(12), contact(4), doc(3), drive(1),
hrbrain(10), mail(2), report(1), sheet(3), todo(6)
Remaining 89 fields across 11 products blocked by:
- RPCName not found as string literal (19 tools, shortcut/variable)
- No matching DeclareLeafMetadata near callMCPTool (11 tools)
- No single RPCName for multi-step commands (drive.upload etc.)
All tests green: corecmd, cli, helpers. Generation and drift clean.
2026-08-01 09:25:40 +08:00
..
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-08-01 09:25:40 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 15:19:25 +08:00
2026-07-17 10:23:40 +08:00
2026-07-31 19:28:57 +08:00
2026-07-31 14:13:46 +08:00
2026-07-15 23:38:37 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:02:20 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 08:11:27 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 12:04:31 +08:00
2026-07-31 14:13:46 +08:00
2026-07-29 09:46:00 +08:00
2026-07-23 00:18:46 +08:00
2026-07-29 14:20:39 +08:00
2026-07-14 08:11:27 +08:00
2026-07-23 00:03:58 +08:00
2026-07-29 13:29:53 +08:00
2026-07-23 13:00:05 +08:00
2026-07-23 13:00:05 +08:00
2026-07-30 16:55:46 +08:00
2026-07-29 15:51:04 +08:00
2026-07-10 21:40:36 +08:00
2026-07-29 14:36:41 +08:00
2026-07-29 15:34:59 +08:00
2026-08-01 09:25:40 +08:00
2026-08-01 09:25:40 +08:00
2026-07-16 10:58:56 +08:00
2026-07-28 12:09:57 +08:00
2026-07-07 19:07:03 +08:00
2026-07-13 20:33:56 +08:00
2026-06-11 12:18:25 +08:00
2026-06-11 12:18:25 +08:00
2026-07-15 23:14:16 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-06-13 23:34:37 +08:00
2026-06-13 23:34:37 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 17:07:51 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-06-13 23:25:04 +08:00
2026-06-13 23:25:04 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-06-24 10:30:04 +08:00
2026-06-24 10:30:04 +08:00
2026-06-24 10:30:04 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:02:20 +08:00
2026-07-16 10:58:56 +08:00
2026-07-12 23:11:08 +08:00
2026-07-12 23:11:08 +08:00
2026-07-12 23:11:08 +08:00
2026-07-31 14:13:46 +08:00
2026-07-15 23:02:20 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-07-06 00:46:47 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-15 23:02:20 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-15 12:08:39 +08:00
2026-06-11 12:18:25 +08:00
2026-07-15 22:19:49 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-14 22:31:21 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 22:19:49 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 22:19:49 +08:00
2026-07-15 23:14:16 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 12:08:39 +08:00
2026-07-09 21:28:35 +08:00
2026-07-09 21:28:35 +08:00
2026-06-14 10:41:37 +08:00
2026-06-15 17:22:45 +08:00
2026-07-16 10:58:56 +08:00
2026-06-13 21:39:45 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 23:14:16 +08:00
2026-07-15 17:07:51 +08:00
2026-07-16 10:58:56 +08:00
2026-06-24 20:36:26 +08:00
2026-07-15 12:08:39 +08:00
2026-07-15 15:19:25 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 12:38:05 +08:00
2026-07-31 14:13:46 +08:00
2026-08-01 09:25:40 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-31 11:56:57 +08:00
2026-07-31 16:58:11 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 16:34:45 +08:00
2026-07-15 12:08:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-30 20:32:08 +08:00
2026-07-31 22:15:45 +08:00
2026-07-16 10:58:56 +08:00
2026-06-18 18:34:12 +08:00
2026-06-18 18:34:12 +08:00
2026-07-06 00:46:47 +08:00
2026-07-30 23:03:32 +08:00
2026-07-31 22:15:45 +08:00
2026-07-31 22:15:45 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-23 17:43:12 +08:00
2026-07-23 17:43:12 +08:00
2026-07-23 17:43:12 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-23 17:43:12 +08:00
2026-07-23 17:43:12 +08:00
2026-07-29 15:34:59 +08:00
2026-07-31 14:13:46 +08:00
2026-07-07 20:48:39 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-07 19:07:03 +08:00
2026-08-01 09:25:40 +08:00
2026-07-31 14:13:46 +08:00
2026-07-29 15:34:59 +08:00
2026-07-29 15:34:59 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-29 15:34:59 +08:00
2026-07-13 21:09:27 +08:00
2026-07-31 15:46:48 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-29 13:29:53 +08:00
2026-07-29 09:46:00 +08:00
2026-07-16 10:58:56 +08:00
2026-07-29 00:21:26 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 22:15:45 +08:00
2026-07-22 16:31:10 +08:00
2026-08-01 09:25:40 +08:00
2026-07-07 19:07:03 +08:00
2026-07-23 00:03:58 +08:00
2026-07-14 19:04:05 +08:00
2026-07-16 10:58:56 +08:00
2026-07-17 15:04:13 +08:00
2026-03-28 17:51:22 +08:00
2026-07-15 12:08:39 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-30 23:03:32 +08:00
2026-07-31 22:15:45 +08:00
2026-08-01 09:25:40 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 22:51:38 +08:00
2026-07-14 00:06:37 +08:00
2026-08-01 09:25:40 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-14 08:11:27 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-29 11:57:57 +08:00
2026-07-07 19:07:03 +08:00
2026-07-21 15:07:59 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:41:59 +08:00
2026-07-23 17:43:12 +08:00
2026-07-24 09:43:16 +08:00
2026-07-31 22:15:45 +08:00
2026-07-16 10:58:56 +08:00
2026-07-16 10:58:56 +08:00
2026-08-01 09:25:40 +08:00
2026-07-07 19:07:03 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 22:15:45 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-15 11:41:30 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-29 15:34:59 +08:00
2026-07-31 14:13:46 +08:00
2026-07-17 15:04:13 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-29 15:34:59 +08:00
2026-07-16 10:24:58 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-13 21:09:27 +08:00
2026-07-31 14:13:46 +08:00
2026-07-29 15:34:59 +08:00
2026-07-16 10:58:56 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-17 15:04:13 +08:00
2026-07-31 14:13:46 +08:00
2026-07-13 21:09:27 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-03-27 17:55:57 +08:00
2026-03-27 17:55:57 +08:00
2026-07-16 10:58:56 +08:00
2026-07-07 19:07:03 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00
2026-07-13 22:51:38 +08:00
2026-07-28 12:09:57 +08:00
2026-08-01 09:25:40 +08:00
2026-07-31 14:13:46 +08:00
2026-07-31 14:13:46 +08:00
2026-07-15 15:31:08 +08:00
2026-07-31 14:13:46 +08:00
2026-07-16 10:58:56 +08:00