monoco-toolkit 0.3.5__py3-none-any.whl → 0.3.9__py3-none-any.whl

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 (59) hide show
  1. monoco/cli/workspace.py +1 -1
  2. monoco/core/config.py +51 -0
  3. monoco/core/hooks/__init__.py +19 -0
  4. monoco/core/hooks/base.py +104 -0
  5. monoco/core/hooks/builtin/__init__.py +11 -0
  6. monoco/core/hooks/builtin/git_cleanup.py +266 -0
  7. monoco/core/hooks/builtin/logging_hook.py +78 -0
  8. monoco/core/hooks/context.py +131 -0
  9. monoco/core/hooks/registry.py +222 -0
  10. monoco/core/integrations.py +6 -0
  11. monoco/core/registry.py +2 -0
  12. monoco/core/setup.py +1 -1
  13. monoco/core/skills.py +226 -42
  14. monoco/features/{scheduler → agent}/__init__.py +4 -2
  15. monoco/features/{scheduler → agent}/cli.py +134 -80
  16. monoco/features/{scheduler → agent}/config.py +17 -3
  17. monoco/features/agent/defaults.py +55 -0
  18. monoco/features/agent/flow_skills.py +281 -0
  19. monoco/features/{scheduler → agent}/manager.py +39 -2
  20. monoco/features/{scheduler → agent}/models.py +6 -3
  21. monoco/features/{scheduler → agent}/reliability.py +1 -1
  22. monoco/features/agent/resources/skills/flow_engineer/SKILL.md +94 -0
  23. monoco/features/agent/resources/skills/flow_manager/SKILL.md +88 -0
  24. monoco/features/agent/resources/skills/flow_reviewer/SKILL.md +114 -0
  25. monoco/features/{scheduler → agent}/session.py +39 -5
  26. monoco/features/{scheduler → agent}/worker.py +2 -2
  27. monoco/features/i18n/resources/skills/i18n_scan_workflow/SKILL.md +105 -0
  28. monoco/features/issue/commands.py +427 -21
  29. monoco/features/issue/core.py +104 -0
  30. monoco/features/issue/criticality.py +553 -0
  31. monoco/features/issue/domain/models.py +28 -2
  32. monoco/features/issue/engine/machine.py +65 -37
  33. monoco/features/issue/git_service.py +185 -0
  34. monoco/features/issue/linter.py +291 -62
  35. monoco/features/issue/models.py +91 -14
  36. monoco/features/issue/resources/en/SKILL.md +48 -0
  37. monoco/features/issue/resources/skills/issue_lifecycle_workflow/SKILL.md +159 -0
  38. monoco/features/issue/resources/zh/SKILL.md +50 -0
  39. monoco/features/issue/test_priority_integration.py +1 -0
  40. monoco/features/issue/validator.py +185 -65
  41. monoco/features/memo/__init__.py +4 -0
  42. monoco/features/memo/adapter.py +32 -0
  43. monoco/features/memo/cli.py +112 -0
  44. monoco/features/memo/core.py +146 -0
  45. monoco/features/memo/resources/skills/note_processing_workflow/SKILL.md +140 -0
  46. monoco/features/memo/resources/zh/AGENTS.md +8 -0
  47. monoco/features/memo/resources/zh/SKILL.md +75 -0
  48. monoco/features/spike/resources/skills/research_workflow/SKILL.md +121 -0
  49. monoco/main.py +6 -3
  50. {monoco_toolkit-0.3.5.dist-info → monoco_toolkit-0.3.9.dist-info}/METADATA +1 -1
  51. {monoco_toolkit-0.3.5.dist-info → monoco_toolkit-0.3.9.dist-info}/RECORD +56 -35
  52. monoco/features/scheduler/defaults.py +0 -54
  53. monoco/features/skills/__init__.py +0 -0
  54. monoco/features/skills/core.py +0 -102
  55. /monoco/core/{hooks.py → githooks.py} +0 -0
  56. /monoco/features/{scheduler → agent}/engines.py +0 -0
  57. {monoco_toolkit-0.3.5.dist-info → monoco_toolkit-0.3.9.dist-info}/WHEEL +0 -0
  58. {monoco_toolkit-0.3.5.dist-info → monoco_toolkit-0.3.9.dist-info}/entry_points.txt +0 -0
  59. {monoco_toolkit-0.3.5.dist-info → monoco_toolkit-0.3.9.dist-info}/licenses/LICENSE +0 -0
@@ -1,24 +1,31 @@
1
- monoco/main.py,sha256=MscjwDCOT2DfZKpZMEZEn-M1INmqu4-4R200GEiBwrc,5562
1
+ monoco/main.py,sha256=JVrKvrd2U6lOJBu9O6bSvgsUXCPU6_8AFV_vgjiB8Iw,5616
2
2
  monoco/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  monoco/cli/project.py,sha256=FqLaDD3hiWxa0_TKzxEF7PYH9RPsvmLyjO3NYVckgGs,2737
4
- monoco/cli/workspace.py,sha256=1TVVS835XyirLDvBGQXSblIaYVhe2Pk9EpORDvcktyk,1538
4
+ monoco/cli/workspace.py,sha256=vcUHjSarRZk8k3SNjtLSVD2VUPhBIUyx5J1OPtGa7-Q,1541
5
5
  monoco/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- monoco/core/config.py,sha256=M9F5De2FUgaIxFwqZBoJUXsMsph31rNh-4U-k_9rUHA,13543
6
+ monoco/core/config.py,sha256=ftO_hKCpBnGXerEVVl6I2KQxLjz-qcB6GQbuZK9VSv8,15282
7
7
  monoco/core/execution.py,sha256=7522s7uVWiNdMKtWlIb8JHzbAcJgLVuxUFp_6VmhWNQ,1801
8
8
  monoco/core/feature.py,sha256=bcK0C1CaQgNLcdMF0RuniaaQRCYSA-0JdOpQz9W_1xM,1968
9
9
  monoco/core/git.py,sha256=d3A8L30nlEj0F1pwSHk_cOoRYi1dMCiZc7KD70ViMyw,8335
10
- monoco/core/hooks.py,sha256=QY4c74LIYDtcjtWYax1PrK5CtVNKYTfVVVBOj-SCulo,1826
10
+ monoco/core/githooks.py,sha256=QY4c74LIYDtcjtWYax1PrK5CtVNKYTfVVVBOj-SCulo,1826
11
11
  monoco/core/injection.py,sha256=zs9RpXaBfwP-fbwOU_X2nm-AH94tQN9tVWXNtV4tCYM,6887
12
- monoco/core/integrations.py,sha256=ifSz7I87DXHF-eHLyXRN3pY1-Kh8IjvMyIrG9iogGpw,7744
12
+ monoco/core/integrations.py,sha256=3RAx4OYgbKHWXR9AAFgXuk-Z_HlztK6kNDFWBJ6tlaA,7914
13
13
  monoco/core/lsp.py,sha256=GOrHzubkMWS3iBpP4H2fTFW-0JXa6D2YlU0ZEhp5zmY,2018
14
14
  monoco/core/output.py,sha256=ZlUydZ65FIP5a32_eESIIvMrhcSwghIqZ3N23OSx6Ss,3878
15
- monoco/core/registry.py,sha256=1m9wvkcqWqrTcARt-jUGHH1BEYMvp0NJGRkq-uduJeg,1167
16
- monoco/core/setup.py,sha256=YUIhzqZwjEeH7zGZm9SPA-OhgTISJtA6ByNFCGBznUU,11487
17
- monoco/core/skills.py,sha256=KeVN09KIcRiksjJ91AggJbN_EvjRQfMGqd_hUQfUjes,16168
15
+ monoco/core/registry.py,sha256=WF02zg_3StPTYupi5FxEndZyq-6rcKxajZOv1Ob4D1Y,1264
16
+ monoco/core/setup.py,sha256=CYADZjUF1tNu6OQ5oVZ_3X_HN7TxnyrvOWbQwluIA_E,11490
17
+ monoco/core/skills.py,sha256=OvvKViDw2GiuYHEANSNX_ry6VIdDvd4QPmExDUQv9iU,22546
18
18
  monoco/core/state.py,sha256=dfoTH1Sj_TSjtTEXuv4w0ZOp_Fd30XNymVSZo30Xshg,1820
19
19
  monoco/core/sync.py,sha256=1p37pTfGBanogzcLhdTfMTxDqq79B5iiwiPS4fiuQaA,8378
20
20
  monoco/core/telemetry.py,sha256=GQDbtgrZwAL1ZpjgbJZuawbTyH6J0NjMXMi4ogq-Ang,2915
21
21
  monoco/core/workspace.py,sha256=H_PHD5A0HZFq841u1JtLoFjkXdQg9D6x6I7QcFtJge4,3000
22
+ monoco/core/hooks/__init__.py,sha256=8dWjDSwJG9JdghWBxgk7zH1U1FlJCiRo66mfbWcDK3M,437
23
+ monoco/core/hooks/base.py,sha256=GQ59E_VX8RmtWezyg5sMFqmKRDsD7PJflcAb2TTy8S8,3276
24
+ monoco/core/hooks/context.py,sha256=A0xwwU6JcsBH3t4h9jlodAdEMuajU8QeW_3bSMTWfPY,4005
25
+ monoco/core/hooks/registry.py,sha256=O_IO1c7R9NbHk3F-xtLowQQkzPBs6qM1Xii398ZfbNU,7100
26
+ monoco/core/hooks/builtin/__init__.py,sha256=R_e04bOLnBKy7pX5QVBkDjgUNeQ82o1IHq--CKgIX_I,177
27
+ monoco/core/hooks/builtin/git_cleanup.py,sha256=PTrc9Ud1P4MCY-zpptBWqlv7e618uPuaODIFgJi4eIw,9700
28
+ monoco/core/hooks/builtin/logging_hook.py,sha256=F5iN3zeczEeoumK0nUXf6ZVrO4_5gcA9dne8y4KSiXo,2796
22
29
  monoco/core/resources/en/AGENTS.md,sha256=vf9z43UU-LPwYKPWCrtw8TpWrmkeZ6zfMyHP4Q9JqdQ,1178
23
30
  monoco/core/resources/en/SKILL.md,sha256=wBXNpPqATOxO8TGiOM8S091gMNZ8du_WhQubO6TfNyg,3504
24
31
  monoco/core/resources/zh/AGENTS.md,sha256=KBNZSCPBIals6jDdvG5wJgjZuswi_1nKljggJSMtfy8,1156
@@ -31,6 +38,20 @@ monoco/daemon/reproduce_stats.py,sha256=LghJ8o1jTeDpA1zVPI2vF0okGU3h4esEI1thNa6s
31
38
  monoco/daemon/services.py,sha256=jkkDwX5mBRiy4DZPNxWmHNe_EE-hiX53FoIlWGiCBoM,5070
32
39
  monoco/daemon/stats.py,sha256=XTtuFWx68O1OA44SmN0BGVa6sswts2ExmkiavUzCYiA,4800
33
40
  monoco/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
+ monoco/features/agent/__init__.py,sha256=DccKv_HfN51eHO5d03Irzy2lNlnxmohoE8BEEvceX1o,559
42
+ monoco/features/agent/cli.py,sha256=L4dyjz8q6dZcQCPLF0e-AmshTRCUU3VhWmN6E3jk7rU,10339
43
+ monoco/features/agent/config.py,sha256=fPClrGeBriQm4oD5HCpg0ePQ3eBIOOLkAaORPi_fS8U,2685
44
+ monoco/features/agent/defaults.py,sha256=sxUm3AHLCi_x0iq7pzWpctSPNA12cX6P4s7LcCBmOUQ,2519
45
+ monoco/features/agent/engines.py,sha256=ICKw4Kfme6UNl_JLJvT7hADKHo76Yr8wpFFEvtEV6z4,3799
46
+ monoco/features/agent/flow_skills.py,sha256=9YQZvhebS_J2oERsGMfWd6WjDKkAWGzlJ0guIrYgsMw,9079
47
+ monoco/features/agent/manager.py,sha256=0pm0t95uYTOqcMhQmwHhAM3GlHWsUYMa5sMMxnWDcyE,3009
48
+ monoco/features/agent/models.py,sha256=og2ptQvM2gNqattaPMyhaGKaO30wd9h6V3kB6X3xpgA,848
49
+ monoco/features/agent/reliability.py,sha256=zXC-WKYCo46a5w_i1RAsAb1rbcOEPuj7Cqpv4c9pDks,3846
50
+ monoco/features/agent/session.py,sha256=ILW0JGY6Nsi_-PqS25z63LqhuczEyZyleAbXfqEtZRo,4388
51
+ monoco/features/agent/worker.py,sha256=63Lllm01pNZncZRDEr2bYh8u8qEb3iNKP1oxIVhoEOI,4538
52
+ monoco/features/agent/resources/skills/flow_engineer/SKILL.md,sha256=wPIh9Tl6jCau2yKUeMZ4ZcvuVZ3XfToooNH7GyHtkUk,2643
53
+ monoco/features/agent/resources/skills/flow_manager/SKILL.md,sha256=GGx1OkhbaN6YIwxXERo_J91-SqIrSAtp96w-cdEm1sI,2582
54
+ monoco/features/agent/resources/skills/flow_reviewer/SKILL.md,sha256=waV-sXpPyO3ZKWvfsuQP8AA9ClzMtac-NZEVggQcuXc,2746
34
55
  monoco/features/config/commands.py,sha256=i6_fKhSGLeO8RCbWrYKxelFgaHWcPiQERS2uxUdq7H0,4894
35
56
  monoco/features/i18n/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
57
  monoco/features/i18n/adapter.py,sha256=-ifDKQ7UH8tDoOdB_fSKoIrNRJROIPNuzZor2FPJVfo,932
@@ -38,57 +59,57 @@ monoco/features/i18n/commands.py,sha256=NJ2lZRRjiTW-3UbqxhEKURdWSDxQPkfnBAUgnwoV
38
59
  monoco/features/i18n/core.py,sha256=bnEV9D7KgxbC5I3l-1RN1-H8hek1loDL6KFXzmdq0pQ,9658
39
60
  monoco/features/i18n/resources/en/AGENTS.md,sha256=zzuF7BW6x8Mj6LZZmeM6wTbG5CSCDMShf4rwtN7XITg,197
40
61
  monoco/features/i18n/resources/en/SKILL.md,sha256=Z8fAAqeMvpLDw1D_9AzZIykS5-HLVM9nnlRZLWBTPqM,2203
62
+ monoco/features/i18n/resources/skills/i18n_scan_workflow/SKILL.md,sha256=d7mS9i_xOHCaD-qugqnIoVer1Ei5h4VgE4NQGSGtJEE,2748
41
63
  monoco/features/i18n/resources/zh/AGENTS.md,sha256=lKkwLLCADRH7UDq9no4eQY2sRfJrb64JoZ_HNved8vA,175
42
64
  monoco/features/i18n/resources/zh/SKILL.md,sha256=Wynk7zVBW7CO0_6AEQNUvlD_3eMW_7EPnzEn9QUaiDs,1884
43
65
  monoco/features/issue/adapter.py,sha256=4dzKg4-0XH63uORoh8qcolvKxJR6McBDIYxYEcZJJkA,1204
44
- monoco/features/issue/commands.py,sha256=vaScb2J4qjUvO8DSlKhTrGDSfIyJ4zIUr14jhBlG6tE,37581
45
- monoco/features/issue/core.py,sha256=kRyUbYqEBno0Zoogq7dMIcQv5M0QIRSlptvzp0pfImE,51302
66
+ monoco/features/issue/commands.py,sha256=2iyjzRdtRiWcc6GeZHa-tDZHOHcsJqJhYnQKZ8tv54o,50578
67
+ monoco/features/issue/core.py,sha256=4RY4AKhc2vpP94JHk9WtnaVFdQt1E_spUmqviK_JnLQ,55522
68
+ monoco/features/issue/criticality.py,sha256=Bw0xH0vpx8z59bL-WQjfy4a5zmjXNM0f-aWBzQ5JZCA,18931
46
69
  monoco/features/issue/domain_commands.py,sha256=eatSF_uZp4nGpVr2PIgb00MWfEBm0OnyAd4JvUJEAAA,1535
47
70
  monoco/features/issue/domain_service.py,sha256=bEs_WXOWmotgIR-lGwyWekF4nonvjsgrK1YG3pyVfwk,2564
48
- monoco/features/issue/linter.py,sha256=LLtJEVIzoGTNm1liZARJHM3-V-EODkGRuw3ExCZtEjY,26115
71
+ monoco/features/issue/git_service.py,sha256=57FSWiY9qHzOWw_e-IOKinOsiqVJz-ycE1zRtRWuBw8,5956
72
+ monoco/features/issue/linter.py,sha256=EUVsnucLIo32adu2TNP6vFwlUvWrwj18cNN9viRr-7U,38697
49
73
  monoco/features/issue/migration.py,sha256=i0xlxZjrpmuHGHOAIN4iu31EwwVIvZn7yjveS-kU22c,4896
50
- monoco/features/issue/models.py,sha256=7oIMxvUEfe00n7wni9bZgKU2e9404flvArixbLQ95Dg,5902
74
+ monoco/features/issue/models.py,sha256=xkM4Bnot2iv8NnWNdfFopIlyWtR1bZK52IseUk_BsEo,8976
51
75
  monoco/features/issue/monitor.py,sha256=vZN0TbR3V5fHKHRGkIhimO6UwWcwYjDHQs2qzjEG174,3549
52
76
  monoco/features/issue/resolver.py,sha256=mAU9s7TNNHY9A2278JTwJvxU-jalGKTDJfJdjONev3E,5655
53
- monoco/features/issue/test_priority_integration.py,sha256=Kq3XMQYkQK62R-a_lmAeEpGlZr4nRBbG6WAyW430el8,2763
77
+ monoco/features/issue/test_priority_integration.py,sha256=pTBg3Wjv6lLYxWL6vjbo2NGVE-X0MRB3Ha8bqObZrU4,2791
54
78
  monoco/features/issue/test_resolver.py,sha256=luFhK37DUvh4a3TTcFYVO-oOIJljQVCSYicwSWyDleQ,2530
55
- monoco/features/issue/validator.py,sha256=GYqbx2-ZxXfk1HicgBXkpL__v83KK-jcOyo7eW-VRUs,27793
79
+ monoco/features/issue/validator.py,sha256=TgXg9MolCI8kPzjaqGVfXMIekaubOc_vTybfakGjteE,33127
56
80
  monoco/features/issue/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
57
81
  monoco/features/issue/domain/lifecycle.py,sha256=oIuLYTVy1RRHGngAzbNU4kTWOHMBhjuw_TuYCwNqMJw,4991
58
- monoco/features/issue/domain/models.py,sha256=2vuSAGaFrbAEkQapwkGG_T8cHlsmARN71fTA44PIVSM,5850
82
+ monoco/features/issue/domain/models.py,sha256=s4gezUIlSlKxwJ3Byfxtsemj2-qsu4wRiXTNfaesSYQ,6830
59
83
  monoco/features/issue/domain/parser.py,sha256=axfB9BjY-m4DQqYwTQBm_38plOidZaDqFtsIejW_kYI,9095
60
84
  monoco/features/issue/domain/workspace.py,sha256=nyTEFNmpLPuX7nssMCBiFI1XBhY9zbqG877Ppp_s0Fg,3658
61
85
  monoco/features/issue/engine/__init__.py,sha256=-SBvzjlZJz0O-IB1c95d9pbhr3lydJNLq2vhnfkZ8PQ,747
62
86
  monoco/features/issue/engine/config.py,sha256=7enjPW4J_fpuK08ov6LpfQ-9h2T1D4Hc5yIXOPuQvLs,5761
63
- monoco/features/issue/engine/machine.py,sha256=Bun_5jHlFRA7Duy7zG8f1GZIbZlPKt6C7RZ4vP7qJWc,7503
87
+ monoco/features/issue/engine/machine.py,sha256=iFZMZyD0rDAg3AMd9JtXZ0CuuQ6dPuv9wXLgvtudlTQ,8668
64
88
  monoco/features/issue/engine/models.py,sha256=595Sx3ncrpg_PhnbBLthohAvuhnjA-_9oXcrsT6Lv0k,574
65
89
  monoco/features/issue/lsp/__init__.py,sha256=8bl8-WzSj3C4SkPKgVGnCeyemmvHVWBsuMZsJuJggG8,77
66
90
  monoco/features/issue/lsp/definition.py,sha256=cF6Quw1OztuKMJ1zLvgA_ek7lTAdzHF0m4LVznpbAPw,3203
67
91
  monoco/features/issue/resources/en/AGENTS.md,sha256=eHHXjLRDAV7IKrYPQSilxu0X5D0SBCAFBXmlSoc9r48,1278
68
- monoco/features/issue/resources/en/SKILL.md,sha256=M5khTJdraQenX0tf7RHOVcqyKHC285qwDzWdsCJ7XPI,4032
92
+ monoco/features/issue/resources/en/SKILL.md,sha256=_soSTGcoHjwdv5N-X31uVsmdmvS4CUSfTqWNOHTZt_0,5556
93
+ monoco/features/issue/resources/skills/issue_lifecycle_workflow/SKILL.md,sha256=efaneBOYrEGlsk4egyf_KupLGf_meRDmIFLx3b9VYYk,4476
69
94
  monoco/features/issue/resources/zh/AGENTS.md,sha256=oRHHqeDYx6aEc5FfdL7a-zqT7uh4SYIYt8QBRKEKrYM,1351
70
- monoco/features/issue/resources/zh/SKILL.md,sha256=XFE33cCCos0U1IVNkMhU7fGuqVqfxo_FNKdp1aScaoM,5055
71
- monoco/features/scheduler/__init__.py,sha256=hvE9A14qFTeTYbWlK9iMRdXIFLMBuG8724GEZzFTHB8,483
72
- monoco/features/scheduler/cli.py,sha256=NgsGwCf615YA4VGd-mqMpGp5VCjdMUqoZqiHZFnDdLU,8325
73
- monoco/features/scheduler/config.py,sha256=69PTvKGHJ33fA2yhFJAq0WVq70Zbmdd5X8Wl0vIYAak,2336
74
- monoco/features/scheduler/defaults.py,sha256=4Ne3RpF7gZ46BmHtF0hC8wYkuCIkDSuKB7hGnHhGXms,2208
75
- monoco/features/scheduler/engines.py,sha256=ICKw4Kfme6UNl_JLJvT7hADKHo76Yr8wpFFEvtEV6z4,3799
76
- monoco/features/scheduler/manager.py,sha256=PmNKqfktgrdpUwE-jPE_WX3IvzZat0JKdEcmzse08-0,1680
77
- monoco/features/scheduler/models.py,sha256=rb8rx8t_TD5ilUC6xU3jvK0sud7YUZE_iEdes9Np8R0,877
78
- monoco/features/scheduler/reliability.py,sha256=zVwtnksug5wr0_tigC2Qjl_C8VNyrheN_34ItUceGoo,3846
79
- monoco/features/scheduler/session.py,sha256=V1xFXA65BaERhBwRYIecaye2TjDtFvAzuIy2gZ68ag8,2954
80
- monoco/features/scheduler/worker.py,sha256=4OU2Y7nG5EKadNIKDF5GWl5V7vgVl3OPlYHShfiEeBI,4538
81
- monoco/features/skills/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
- monoco/features/skills/core.py,sha256=BXVvMot8E457-pj9U19lPHypBVhdLQRsx0zEAXJxpGY,3436
95
+ monoco/features/issue/resources/zh/SKILL.md,sha256=Gx6nuGciNh63QiyZ8kXU8PhaNidM2oiKYAr5GulEmes,6866
96
+ monoco/features/memo/__init__.py,sha256=LC5vwsJw-kwzd5O5oeRo-FNSbnZnuFynanec-hA72nw,88
97
+ monoco/features/memo/adapter.py,sha256=XBOGkP66AMD6Pelz-heH_EhxkYoMRLaH8qsYnX9NSLk,1117
98
+ monoco/features/memo/cli.py,sha256=rw2nEJ3P0eJvjuv4WLOwV6aNM8Dt2J_2R2py_FgHlDg,3329
99
+ monoco/features/memo/core.py,sha256=wq4bf2uS3axoZ5Xsm-YhJZGL8bu1EjcrQuwXgQbPqOk,4193
100
+ monoco/features/memo/resources/skills/note_processing_workflow/SKILL.md,sha256=JE3LEhQYRuvU_GAQ_C6Oob4t-BEY7OWxGpBM6mkgato,4286
101
+ monoco/features/memo/resources/zh/AGENTS.md,sha256=AFlzvhGxAk77np-E8XLb-tkWJCo0bLGItCrV0IiXdHQ,292
102
+ monoco/features/memo/resources/zh/SKILL.md,sha256=9J_tAM-HuMEgOtZ7sVMp-Qjg2heVJvS2ovLro4Msh1M,2143
83
103
  monoco/features/spike/adapter.py,sha256=ZIpw-xNVoA2IIP18dbR-dmQGbQmK5ua_P-uGXuDjCeI,1021
84
104
  monoco/features/spike/commands.py,sha256=EuJ7trDaobIe7ae7pJ-ftpo_cO8-19R_fAZZCh2JcMg,3871
85
105
  monoco/features/spike/core.py,sha256=OuNWXQ-cBttP2oIF0B5iy0aEUH2MUMyGANG8ayEmjPo,4120
86
106
  monoco/features/spike/resources/en/AGENTS.md,sha256=NG3CMnlDk_0J8hnRUcueAM9lgIQr_dZ42R_31-LC48E,306
87
107
  monoco/features/spike/resources/en/SKILL.md,sha256=qKDcVh0D3pDRvfNLh1Bzo4oQU3obpl4tqdlzxeiWYMk,1911
108
+ monoco/features/spike/resources/skills/research_workflow/SKILL.md,sha256=tv9dIEfRNKrfxa3dI657QZDkMO-4-X_ZZRm6V3WS3VM,3333
88
109
  monoco/features/spike/resources/zh/AGENTS.md,sha256=5RHNl7fc3RdYYTFH483ojJl_arGPKkyYziOuGgFbqqg,290
89
110
  monoco/features/spike/resources/zh/SKILL.md,sha256=Q82e9lCQOAYIwBs5rGnvlVUDq7bp0pz8yvO10KTWFYQ,1710
90
- monoco_toolkit-0.3.5.dist-info/METADATA,sha256=UD0y77LYaDLy3ZoMUphV87XScSEg8G3kGxld1DhD8Wk,4732
91
- monoco_toolkit-0.3.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
92
- monoco_toolkit-0.3.5.dist-info/entry_points.txt,sha256=iYj7FWYBdtClU15-Du1skqD0s6SFSIhJvxJ29VWp8ng,43
93
- monoco_toolkit-0.3.5.dist-info/licenses/LICENSE,sha256=ACAGGjV6aod4eIlVUTx1q9PZbnZGN5bBwkSs9RHj83s,1071
94
- monoco_toolkit-0.3.5.dist-info/RECORD,,
111
+ monoco_toolkit-0.3.9.dist-info/METADATA,sha256=OgCaiDGMobCNpQTm5lksMX4VxxZmBmuuQUht5LBY4sc,4732
112
+ monoco_toolkit-0.3.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
113
+ monoco_toolkit-0.3.9.dist-info/entry_points.txt,sha256=iYj7FWYBdtClU15-Du1skqD0s6SFSIhJvxJ29VWp8ng,43
114
+ monoco_toolkit-0.3.9.dist-info/licenses/LICENSE,sha256=ACAGGjV6aod4eIlVUTx1q9PZbnZGN5bBwkSs9RHj83s,1071
115
+ monoco_toolkit-0.3.9.dist-info/RECORD,,
@@ -1,54 +0,0 @@
1
- from .models import RoleTemplate
2
-
3
- DEFAULT_ROLES = [
4
- RoleTemplate(
5
- name="crafter",
6
- description="Responsible for initial design, research, and drafting issues from descriptions.",
7
- trigger="task.received",
8
- goal="Produce a structured Issue file and/or detailed design document.",
9
- tools=[
10
- "create_issue_file",
11
- "read_file",
12
- "search_web",
13
- "view_file_outline",
14
- "write_to_file",
15
- ],
16
- system_prompt=(
17
- "You are a Crafter agent. Your goal is to turn vague ideas into structured engineering plans.\n"
18
- "If the user provides a description, use 'monoco issue create' and 'monoco issue update' to build the task.\n"
19
- "If the user provides an existing Issue, analyze the context and provide a detailed design or implementation plan."
20
- ),
21
- engine="gemini",
22
- ),
23
- RoleTemplate(
24
- name="builder",
25
- description="Responsible for implementation.",
26
- trigger="design.approved",
27
- goal="Implement code and tests",
28
- tools=["read_file", "write_to_file", "run_command", "git"],
29
- system_prompt="You are a Builder agent. Your job is to implement the code based on the design.",
30
- engine="gemini",
31
- ),
32
- RoleTemplate(
33
- name="auditor",
34
- description="Responsible for code review.",
35
- trigger="implementation.submitted",
36
- goal="Review code and provide feedback",
37
- tools=[
38
- "read_file",
39
- "read_terminal",
40
- "run_command",
41
- ], # Assumed read_diff and lint are via run_command
42
- system_prompt="You are an Auditor agent. Your job is to review the code for quality and correctness.",
43
- engine="gemini",
44
- ),
45
- RoleTemplate(
46
- name="coroner",
47
- description="Responsible for analyzing failure root causes (Autopsy).",
48
- trigger="session.crashed",
49
- goal="Produce a post-mortem report",
50
- tools=["read_file", "read_terminal", "git_log"],
51
- system_prompt="You are a Coroner agent. Your job is to analyze why the previous session failed and write a post-mortem report.",
52
- engine="gemini",
53
- ),
54
- ]
File without changes
@@ -1,102 +0,0 @@
1
- import re
2
- from pathlib import Path
3
- from typing import Dict, List, Any
4
- from rich.console import Console
5
-
6
- console = Console()
7
-
8
-
9
- def init(root: Path, resources: List[Dict[str, Any]]):
10
- """
11
- Initialize the Skills module.
12
-
13
- Args:
14
- root: Project root directory.
15
- resources: List of resource dicts from modules.
16
- Expected format:
17
- {
18
- "skills": { "name": "content" },
19
- "prompts": { "name": "content" }
20
- }
21
- """
22
- skills_root = root / "Toolkit" / "skills"
23
- skills_root.mkdir(parents=True, exist_ok=True)
24
-
25
- # 1. Write Skills
26
- for res in resources:
27
- if "skills" in res:
28
- for name, content in res["skills"].items():
29
- target_dir = skills_root / name
30
- target_dir.mkdir(exist_ok=True)
31
- target_file = target_dir / "SKILL.md"
32
- # Idempotency: Overwrite if content is different? Or just always overwrite?
33
- # User asked for "scaffold", implies creation.
34
- # Let's overwrite to ensure extensive "Repair" capability.
35
- target_file.write_text(content, encoding="utf-8")
36
- console.print(f"[dim] - Scaffolding skill:[/dim] {name}")
37
-
38
- # 2. Update Agent Docs
39
- update_agent_docs(root, resources)
40
-
41
-
42
- def update_agent_docs(root: Path, resources: List[Dict[str, Any]]):
43
- """
44
- Inject prompts into AGENTS.md, GEMINI.md, CLAUDE.md.
45
- """
46
- target_files = ["AGENTS.md", "GEMINI.md", "CLAUDE.md"]
47
-
48
- # Aggregate Prompts
49
- aggregated_prompt = "\n\n".join(
50
- [
51
- res["prompts"][name]
52
- for res in resources
53
- if "prompts" in res
54
- for name in res["prompts"]
55
- ]
56
- )
57
-
58
- injection_content = f"""
59
- ## Monoco Toolkit
60
-
61
- The following tools and skills are available in this environment.
62
-
63
- {aggregated_prompt}
64
- """
65
-
66
- for filename in target_files:
67
- _inject_section(root / filename, injection_content)
68
-
69
-
70
- def _inject_section(file_path: Path, content: str):
71
- if not file_path.exists():
72
- # Create if not exists? User said "Edit AGENTS.md...", implies existence.
73
- # But if we init in a fresh repo, maybe we should create them?
74
- # Let's create if missing.
75
- file_path.write_text(f"# Project Guidelines\n{content}", encoding="utf-8")
76
- console.print(f"[green]✔[/green] Created {file_path.name}")
77
- return
78
-
79
- original_content = file_path.read_text(encoding="utf-8")
80
-
81
- # Regex to find existing section
82
- # Matches ## Monoco Toolkit ... until next ## or End of String
83
- pattern = r"(## Monoco Toolkit.*?)(\n## |\Z)"
84
-
85
- # Check if section exists
86
- if re.search(pattern, original_content, re.DOTALL):
87
- # Replace
88
- new_content = re.sub(
89
- pattern, f"{content.strip()}\n\n\\2", original_content, flags=re.DOTALL
90
- )
91
- if new_content != original_content:
92
- file_path.write_text(new_content, encoding="utf-8")
93
- console.print(f"[green]✔[/green] Updated {file_path.name}")
94
- else:
95
- console.print(f"[dim] - {file_path.name} is up to date.[/dim]")
96
- else:
97
- # Append
98
- with open(file_path, "a", encoding="utf-8") as f:
99
- if not original_content.endswith("\n"):
100
- f.write("\n")
101
- f.write(content)
102
- console.print(f"[green]✔[/green] Appended to {file_path.name}")
File without changes
File without changes