neo.mjs 11.7.0 → 11.9.0

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 (77) hide show
  1. package/.github/.sync-metadata.json +391 -12
  2. package/README.md +6 -0
  3. package/ROADMAP.md +36 -35
  4. package/ServiceWorker.mjs +2 -2
  5. package/ai/examples/db-backup.mjs +33 -0
  6. package/ai/examples/db-restore.mjs +81 -0
  7. package/ai/examples/debug_session_state.mjs +208 -0
  8. package/ai/examples/migrate_timestamps.mjs +117 -0
  9. package/ai/examples/self-healing.mjs +123 -0
  10. package/ai/examples/smart-search.mjs +110 -0
  11. package/ai/examples/test-safety.mjs +63 -0
  12. package/ai/mcp/server/github-workflow/Server.mjs +217 -0
  13. package/ai/mcp/server/github-workflow/mcp-stdio.mjs +15 -167
  14. package/ai/mcp/server/github-workflow/openapi.yaml +31 -17
  15. package/ai/mcp/server/github-workflow/services/HealthService.mjs +145 -138
  16. package/ai/mcp/server/github-workflow/services/IssueService.mjs +250 -151
  17. package/ai/mcp/server/github-workflow/services/LocalFileService.mjs +30 -30
  18. package/ai/mcp/server/github-workflow/services/PullRequestService.mjs +47 -117
  19. package/ai/mcp/server/github-workflow/services/queries/issueQueries.mjs +83 -23
  20. package/ai/mcp/server/github-workflow/services/queries/mutations.mjs +138 -99
  21. package/ai/mcp/server/github-workflow/services/queries/pullRequestQueries.mjs +32 -73
  22. package/ai/mcp/server/github-workflow/services/sync/MetadataManager.mjs +1 -1
  23. package/ai/mcp/server/github-workflow/services/toolService.mjs +1 -1
  24. package/ai/mcp/server/knowledge-base/Server.mjs +237 -0
  25. package/ai/mcp/server/knowledge-base/config.mjs +27 -7
  26. package/ai/mcp/server/knowledge-base/mcp-stdio.mjs +15 -182
  27. package/ai/mcp/server/knowledge-base/services/ChromaManager.mjs +6 -4
  28. package/ai/mcp/server/knowledge-base/services/DatabaseLifecycleService.mjs +29 -11
  29. package/ai/mcp/server/knowledge-base/services/DatabaseService.mjs +12 -13
  30. package/ai/mcp/server/knowledge-base/services/HealthService.mjs +1 -1
  31. package/ai/mcp/server/memory-core/Server.mjs +238 -0
  32. package/ai/mcp/server/memory-core/config.mjs +39 -8
  33. package/ai/mcp/server/memory-core/mcp-stdio.mjs +15 -204
  34. package/ai/mcp/server/memory-core/openapi.yaml +8 -0
  35. package/ai/mcp/server/memory-core/services/ChromaManager.mjs +6 -4
  36. package/ai/mcp/server/memory-core/services/DatabaseLifecycleService.mjs +91 -55
  37. package/ai/mcp/server/memory-core/services/DatabaseService.mjs +76 -52
  38. package/ai/mcp/server/memory-core/services/HealthService.mjs +48 -37
  39. package/ai/mcp/server/memory-core/services/MemoryService.mjs +123 -93
  40. package/ai/mcp/server/memory-core/services/SessionService.mjs +219 -34
  41. package/ai/mcp/server/memory-core/services/SummaryService.mjs +115 -87
  42. package/ai/mcp/server/toolService.mjs +6 -171
  43. package/ai/mcp/validation/OpenApiValidator.mjs +170 -0
  44. package/ai/sdk-manifest.md +105 -0
  45. package/ai/services.mjs +196 -0
  46. package/apps/portal/index.html +123 -43
  47. package/apps/portal/llms.txt +5 -0
  48. package/apps/portal/sitemap.xml +22 -2
  49. package/apps/portal/view/home/FooterContainer.mjs +1 -1
  50. package/apps/portal/view/learn/ContentComponent.mjs +4 -3
  51. package/apps/portal/view/learn/MainContainerStateProvider.mjs +2 -2
  52. package/apps/shareddialog/view/MainContainerController.mjs +1 -1
  53. package/buildScripts/buildAll.mjs +8 -8
  54. package/buildScripts/buildHighlightJs.mjs +21 -1
  55. package/learn/guides/mcp/CodeExecution.md +375 -0
  56. package/learn/guides/mcp/GitHubWorkflow.md +209 -0
  57. package/learn/guides/mcp/Introduction.md +95 -0
  58. package/learn/guides/mcp/KnowledgeBase.md +204 -0
  59. package/learn/guides/mcp/MemoryCore.md +146 -0
  60. package/learn/tree.json +6 -0
  61. package/package.json +15 -7
  62. package/src/DefaultConfig.mjs +2 -2
  63. package/src/controller/Application.mjs +0 -2
  64. package/src/core/Base.mjs +6 -0
  65. package/src/main/addon/Stylesheet.mjs +12 -10
  66. package/src/manager/Component.mjs +1 -1
  67. package/src/manager/Window.mjs +100 -0
  68. package/src/table/header/Button.mjs +4 -4
  69. package/src/util/Css.mjs +2 -2
  70. package/src/util/HashHistory.mjs +4 -4
  71. package/src/util/HighlightJs.mjs +4 -4
  72. package/src/util/HighlightJsLineNumbers.mjs +1 -1
  73. package/src/util/Json.mjs +57 -0
  74. package/src/util/Rectangle.mjs +1 -12
  75. package/src/util/_export.mjs +2 -1
  76. package/src/worker/App.mjs +26 -21
  77. package/src/worker/Manager.mjs +3 -3
@@ -1,6 +1,6 @@
1
1
  {
2
- "lastSync": "2025-11-20T13:11:28.076Z",
3
- "releasesLastFetched": "2025-11-20T13:11:28.088Z",
2
+ "lastSync": "2025-11-23T12:14:51.832Z",
3
+ "releasesLastFetched": "2025-11-23T12:14:51.836Z",
4
4
  "pushFailures": [],
5
5
  "issues": {
6
6
  "3789": {
@@ -6641,45 +6641,416 @@
6641
6641
  },
6642
6642
  "7817": {
6643
6643
  "state": "CLOSED",
6644
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7817.md",
6644
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.7.0/issue-7817.md",
6645
6645
  "closedAt": "2025-11-19T18:17:37Z",
6646
6646
  "updatedAt": "2025-11-19T18:17:37Z",
6647
6647
  "contentHash": "71c9a696998f95cd1e356cb0c0ea76ff6d0d92f2f8a704b08d0484fe10ae8e48"
6648
6648
  },
6649
6649
  "7818": {
6650
6650
  "state": "CLOSED",
6651
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7818.md",
6651
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.7.0/issue-7818.md",
6652
6652
  "closedAt": "2025-11-20T01:03:35Z",
6653
6653
  "updatedAt": "2025-11-20T01:03:35Z",
6654
6654
  "contentHash": "c01fa0275da61ba7fc12e4cf6e0d46596f85fdbc98a4d790657489c806a76a38"
6655
6655
  },
6656
6656
  "7819": {
6657
6657
  "state": "CLOSED",
6658
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7819.md",
6658
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.7.0/issue-7819.md",
6659
6659
  "closedAt": "2025-11-20T09:38:58Z",
6660
6660
  "updatedAt": "2025-11-20T09:38:58Z",
6661
6661
  "contentHash": "67ad93d3a2aa24e7cd570075290aaf081a921648852ef1664a38edf5365a4b71"
6662
6662
  },
6663
6663
  "7820": {
6664
6664
  "state": "CLOSED",
6665
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7820.md",
6665
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.7.0/issue-7820.md",
6666
6666
  "closedAt": "2025-11-20T11:38:36Z",
6667
6667
  "updatedAt": "2025-11-20T11:38:36Z",
6668
6668
  "contentHash": "e4486d796a3dfe09e8dab2b3fb2181f688f3d9d36c35f6abbeb0ada7b5d57fad"
6669
6669
  },
6670
6670
  "7821": {
6671
- "state": "OPEN",
6672
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7821.md",
6673
- "closedAt": null,
6674
- "updatedAt": "2025-11-20T11:17:33Z",
6675
- "contentHash": "64c6045cd19ce7537426a255ab2187da281300259eda1aeb28647781bc55ca94"
6671
+ "state": "CLOSED",
6672
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7821.md",
6673
+ "closedAt": "2025-11-20T15:19:02Z",
6674
+ "updatedAt": "2025-11-20T15:19:02Z",
6675
+ "contentHash": "3b72224d49c12aed46c913133ecea3d82e2edc65747d3876bad8723920fcdce7"
6676
6676
  },
6677
6677
  "7822": {
6678
6678
  "state": "CLOSED",
6679
- "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7822.md",
6679
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.7.0/issue-7822.md",
6680
6680
  "closedAt": "2025-11-20T13:09:13Z",
6681
6681
  "updatedAt": "2025-11-20T13:09:13Z",
6682
6682
  "contentHash": "068d57a5d1d1b0994fab8e3c56203bd3af841a1e6f4ddd4750a674779eafd52f"
6683
+ },
6684
+ "7823": {
6685
+ "state": "CLOSED",
6686
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7823.md",
6687
+ "closedAt": "2025-11-20T14:15:33Z",
6688
+ "updatedAt": "2025-11-20T14:15:33Z",
6689
+ "contentHash": "a699450f3a1dbf68836875bed7db7327b4ce080ebcc6d9da63f3c44f60e23d99"
6690
+ },
6691
+ "7824": {
6692
+ "state": "CLOSED",
6693
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7824.md",
6694
+ "closedAt": "2025-11-20T15:41:37Z",
6695
+ "updatedAt": "2025-11-20T15:41:37Z",
6696
+ "contentHash": "a9c350a3a9de6c12479a82f9e82d911cb7c6b41692a593efa9bff18a16da2d0a"
6697
+ },
6698
+ "7825": {
6699
+ "state": "CLOSED",
6700
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7825.md",
6701
+ "closedAt": "2025-11-20T19:49:56Z",
6702
+ "updatedAt": "2025-11-20T19:49:56Z",
6703
+ "contentHash": "63568805b3d7d58de4eab355c29fd23fcf9183378b7471182e362eb327064f09"
6704
+ },
6705
+ "7826": {
6706
+ "state": "CLOSED",
6707
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7826.md",
6708
+ "closedAt": "2025-11-20T19:59:40Z",
6709
+ "updatedAt": "2025-11-20T19:59:40Z",
6710
+ "contentHash": "efd0332c072ed87ced4d001228d0dbfd21e32b407b4800973a324f875a5ae451"
6711
+ },
6712
+ "7827": {
6713
+ "state": "CLOSED",
6714
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7827.md",
6715
+ "closedAt": "2025-11-20T20:36:45Z",
6716
+ "updatedAt": "2025-11-20T20:36:45Z",
6717
+ "contentHash": "924d0b9dcac96c47b018ca48da2bd646e89ab90430e8ea0a882a9c41b4327d4c"
6718
+ },
6719
+ "7828": {
6720
+ "state": "CLOSED",
6721
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7828.md",
6722
+ "closedAt": "2025-11-20T20:54:28Z",
6723
+ "updatedAt": "2025-11-20T20:54:28Z",
6724
+ "contentHash": "34e415adfa5f3377d33acdb2bda07dead40e21d36b2ee56b2a73511cfcc08eb3"
6725
+ },
6726
+ "7829": {
6727
+ "state": "CLOSED",
6728
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7829.md",
6729
+ "closedAt": "2025-11-20T21:06:42Z",
6730
+ "updatedAt": "2025-11-20T21:06:42Z",
6731
+ "contentHash": "1034e606c1ff95cddcc2d9bf52c9b634f67385937f03b1cbb4d8a931e63f9929"
6732
+ },
6733
+ "7831": {
6734
+ "state": "CLOSED",
6735
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7831.md",
6736
+ "closedAt": "2025-11-21T00:45:39Z",
6737
+ "updatedAt": "2025-11-21T00:45:39Z",
6738
+ "contentHash": "a3718a3a45aee9f50a10887fe778e372eedcfb73026aceed25de34fae47ced50"
6739
+ },
6740
+ "7832": {
6741
+ "state": "CLOSED",
6742
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7832.md",
6743
+ "closedAt": "2025-11-21T00:56:40Z",
6744
+ "updatedAt": "2025-11-21T00:56:40Z",
6745
+ "contentHash": "fbd4a3edb300d1f42f5a65293a3786e3d6b8b265041037bb52ccf4a2cc47df57"
6746
+ },
6747
+ "7833": {
6748
+ "state": "CLOSED",
6749
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7833.md",
6750
+ "closedAt": "2025-11-21T01:16:31Z",
6751
+ "updatedAt": "2025-11-21T01:16:31Z",
6752
+ "contentHash": "993c0db0bc1202a7a5aa28d693cecb2b295194e31d6fcf608f9ba925815920a0"
6753
+ },
6754
+ "7834": {
6755
+ "state": "OPEN",
6756
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7834.md",
6757
+ "closedAt": null,
6758
+ "updatedAt": "2025-11-22T16:53:22Z",
6759
+ "contentHash": "263d712428c459ace1625eea7157fae71015d3b15cf91efbe87649030fa5d6c2"
6760
+ },
6761
+ "7836": {
6762
+ "state": "CLOSED",
6763
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7836.md",
6764
+ "closedAt": "2025-11-21T02:14:24Z",
6765
+ "updatedAt": "2025-11-21T02:14:24Z",
6766
+ "contentHash": "aadc19fb6dd47f77f6c038ac8bb3a5cacd6b196b9cbc7066b3f1ace960790796"
6767
+ },
6768
+ "7837": {
6769
+ "state": "CLOSED",
6770
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7837.md",
6771
+ "closedAt": "2025-11-21T09:16:22Z",
6772
+ "updatedAt": "2025-11-21T09:16:22Z",
6773
+ "contentHash": "06fff55200a19805fc1fa90eb3bc0bee904f50473e47344abca8cbafa0ab2374"
6774
+ },
6775
+ "7838": {
6776
+ "state": "CLOSED",
6777
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7838.md",
6778
+ "closedAt": "2025-11-21T10:19:00Z",
6779
+ "updatedAt": "2025-11-21T10:19:00Z",
6780
+ "contentHash": "b2d5e8fe955395548cf29bbafb0f201abf882d911a7f908d311ddd2e332a8170"
6781
+ },
6782
+ "7839": {
6783
+ "state": "CLOSED",
6784
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7839.md",
6785
+ "closedAt": "2025-11-21T10:18:15Z",
6786
+ "updatedAt": "2025-11-21T10:18:15Z",
6787
+ "contentHash": "dfe129dcdea080a6a80636853f906a7a30ca83e1ee17a420b473b5ad8d938d8e"
6788
+ },
6789
+ "7840": {
6790
+ "state": "CLOSED",
6791
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7840.md",
6792
+ "closedAt": "2025-11-21T13:00:34Z",
6793
+ "updatedAt": "2025-11-21T13:00:34Z",
6794
+ "contentHash": "4213e43b1e848f61fdba176407fc6cac0f81846e3981413579953386e2fed0bb"
6795
+ },
6796
+ "7841": {
6797
+ "state": "CLOSED",
6798
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7841.md",
6799
+ "closedAt": "2025-11-21T13:35:47Z",
6800
+ "updatedAt": "2025-11-21T13:35:47Z",
6801
+ "contentHash": "afcbd5acd09c5617458c92fa48116ec00dbe4d6ad0b3bf15c972d7e19c429313"
6802
+ },
6803
+ "7842": {
6804
+ "state": "CLOSED",
6805
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7842.md",
6806
+ "closedAt": "2025-11-21T14:56:31Z",
6807
+ "updatedAt": "2025-11-21T14:56:31Z",
6808
+ "contentHash": "251fdd872486632ff3e0c85e8d27d51ba2e7dbe35a991db4047aa22f7d1f4d71"
6809
+ },
6810
+ "7843": {
6811
+ "state": "CLOSED",
6812
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE_ARCHIVE/11.8.0/issue-7843.md",
6813
+ "closedAt": "2025-11-21T14:31:51Z",
6814
+ "updatedAt": "2025-11-21T14:31:52Z",
6815
+ "contentHash": "0100c9fbb6d34f79940ecf1482797eaece3a66c4477c3072cbbb94d6845ab655"
6816
+ },
6817
+ "7844": {
6818
+ "state": "CLOSED",
6819
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7844.md",
6820
+ "closedAt": "2025-11-21T16:18:44Z",
6821
+ "updatedAt": "2025-11-21T16:18:44Z",
6822
+ "contentHash": "00eac48fd0b950b947405205399e36900644337b23790ed205d5f16920bd5783"
6823
+ },
6824
+ "7845": {
6825
+ "state": "CLOSED",
6826
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7845.md",
6827
+ "closedAt": "2025-11-21T20:54:34Z",
6828
+ "updatedAt": "2025-11-21T20:54:34Z",
6829
+ "contentHash": "cdcd89fcfb58fc7564f853e69c41344ef1f118e13e842b48879aa144a0246119"
6830
+ },
6831
+ "7847": {
6832
+ "state": "OPEN",
6833
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7847.md",
6834
+ "closedAt": null,
6835
+ "updatedAt": "2025-11-21T19:29:35Z",
6836
+ "contentHash": "ac8b6c0b83393300228ff488084c1b1892a426d1ca54fdfe898f2a6067072f74"
6837
+ },
6838
+ "7848": {
6839
+ "state": "CLOSED",
6840
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7848.md",
6841
+ "closedAt": "2025-11-22T08:35:35Z",
6842
+ "updatedAt": "2025-11-22T08:35:35Z",
6843
+ "contentHash": "b3b0c528754cf02bab544139d6a9c68af81dcf0a0d06c4eb7dc6b11e7fe21c73"
6844
+ },
6845
+ "7849": {
6846
+ "state": "CLOSED",
6847
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7849.md",
6848
+ "closedAt": "2025-11-22T08:30:01Z",
6849
+ "updatedAt": "2025-11-22T08:30:01Z",
6850
+ "contentHash": "f8d0c05653a386e0bfd73c17013f8696b96271e69fcca6053f3c3135ae2b4ead"
6851
+ },
6852
+ "7850": {
6853
+ "state": "CLOSED",
6854
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7850.md",
6855
+ "closedAt": "2025-11-22T08:31:05Z",
6856
+ "updatedAt": "2025-11-22T08:35:04Z",
6857
+ "contentHash": "8404012786c0e8f9b5adf5008e862a9750734aa15310db81ace8a8eedfd773e8"
6858
+ },
6859
+ "7851": {
6860
+ "state": "CLOSED",
6861
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7851.md",
6862
+ "closedAt": "2025-11-22T08:32:03Z",
6863
+ "updatedAt": "2025-11-22T08:32:03Z",
6864
+ "contentHash": "51be904c7188a7856236103242b6a9cbdf67c06e8128e2adf229bc18a4725183"
6865
+ },
6866
+ "7852": {
6867
+ "state": "CLOSED",
6868
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7852.md",
6869
+ "closedAt": "2025-11-22T08:33:11Z",
6870
+ "updatedAt": "2025-11-22T08:33:11Z",
6871
+ "contentHash": "6a81fd18cbebdfb960811a5c076c070f8e22422f937d7cf5657bd346b88ef33e"
6872
+ },
6873
+ "7853": {
6874
+ "state": "CLOSED",
6875
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7853.md",
6876
+ "closedAt": "2025-11-22T08:34:14Z",
6877
+ "updatedAt": "2025-11-22T08:34:14Z",
6878
+ "contentHash": "05d5be7a7d3723c12daff4145a279faa7acf83a4020a1e6030de2c01e81133e4"
6879
+ },
6880
+ "7854": {
6881
+ "state": "CLOSED",
6882
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7854.md",
6883
+ "closedAt": "2025-11-22T09:05:55Z",
6884
+ "updatedAt": "2025-11-22T09:05:56Z",
6885
+ "contentHash": "75f7d6086dc66ad951c26ec50a586de3c5b504c6c8cad372b05d6fdaff4e41a1"
6886
+ },
6887
+ "7855": {
6888
+ "state": "CLOSED",
6889
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7855.md",
6890
+ "closedAt": "2025-11-22T09:09:53Z",
6891
+ "updatedAt": "2025-11-22T09:09:53Z",
6892
+ "contentHash": "e2c93e3807618e63a04c01c1a3719185e33c7550ae9121b95666bdbd122ab99a"
6893
+ },
6894
+ "7856": {
6895
+ "state": "CLOSED",
6896
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7856.md",
6897
+ "closedAt": "2025-11-22T09:23:43Z",
6898
+ "updatedAt": "2025-11-22T09:23:43Z",
6899
+ "contentHash": "410c1d60b3c7a0009135b08a5c8764b840226c567c532e9dad19548ef5dbd98c"
6900
+ },
6901
+ "7857": {
6902
+ "state": "CLOSED",
6903
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7857.md",
6904
+ "closedAt": "2025-11-22T09:55:26Z",
6905
+ "updatedAt": "2025-11-22T09:55:26Z",
6906
+ "contentHash": "94ff785af502eaa7a870700403c6e479b7a7382d504a74d2dae69a742e81b6cb"
6907
+ },
6908
+ "7858": {
6909
+ "state": "CLOSED",
6910
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7858.md",
6911
+ "closedAt": "2025-11-22T16:07:20Z",
6912
+ "updatedAt": "2025-11-22T16:07:20Z",
6913
+ "contentHash": "225d77cb45116c5578ac405cae661657bc403187fa91500ed2fb6463105a8f5e"
6914
+ },
6915
+ "7859": {
6916
+ "state": "CLOSED",
6917
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7859.md",
6918
+ "closedAt": "2025-11-22T16:59:32Z",
6919
+ "updatedAt": "2025-11-22T16:59:40Z",
6920
+ "contentHash": "fd8c023f8637795e348b1a57d71f091379edafc3988eb62ec08e062d9b019e21"
6921
+ },
6922
+ "7860": {
6923
+ "state": "CLOSED",
6924
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7860.md",
6925
+ "closedAt": "2025-11-22T17:10:31Z",
6926
+ "updatedAt": "2025-11-22T17:10:31Z",
6927
+ "contentHash": "d610924631128cffebf625620020680c73b706ebd19abcd2472d5b113381a63d"
6928
+ },
6929
+ "7861": {
6930
+ "state": "CLOSED",
6931
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7861.md",
6932
+ "closedAt": "2025-11-22T18:32:33Z",
6933
+ "updatedAt": "2025-11-22T18:32:33Z",
6934
+ "contentHash": "b22cd9852551d2c4f8bf11a1c000c5c1f42eb393fa53a2cd9ab8930d07956c38"
6935
+ },
6936
+ "7862": {
6937
+ "state": "CLOSED",
6938
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7862.md",
6939
+ "closedAt": "2025-11-22T18:53:11Z",
6940
+ "updatedAt": "2025-11-22T18:53:12Z",
6941
+ "contentHash": "cf95926e4ea03a6caa04287798f0755a5cf5eb34b42de8196a0825693087da32"
6942
+ },
6943
+ "7864": {
6944
+ "state": "CLOSED",
6945
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7864.md",
6946
+ "closedAt": "2025-11-22T19:17:05Z",
6947
+ "updatedAt": "2025-11-22T19:17:05Z",
6948
+ "contentHash": "8c277f5f782ab9ae49655d62b351e20192e3f8fbf6c80e759239f22ee1b349fd"
6949
+ },
6950
+ "7865": {
6951
+ "state": "CLOSED",
6952
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7865.md",
6953
+ "closedAt": "2025-11-22T20:05:57Z",
6954
+ "updatedAt": "2025-11-22T20:05:58Z",
6955
+ "contentHash": "67f0d70de9c569fe747b094ca252257dc6501541ddc68d713ef2ddd89561cc54"
6956
+ },
6957
+ "7866": {
6958
+ "state": "CLOSED",
6959
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7866.md",
6960
+ "closedAt": "2025-11-22T21:04:12Z",
6961
+ "updatedAt": "2025-11-22T21:04:12Z",
6962
+ "contentHash": "061b5f9037a068d2865e243a93797e1192baca7575d29a273113922c83e79b55"
6963
+ },
6964
+ "7867": {
6965
+ "state": "CLOSED",
6966
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7867.md",
6967
+ "closedAt": "2025-11-22T21:09:10Z",
6968
+ "updatedAt": "2025-11-22T21:09:10Z",
6969
+ "contentHash": "890101a47fb2e25f5b0d880d3ef0a2df5052c5414456d2ad970de36c3eb0a7cd"
6970
+ },
6971
+ "7868": {
6972
+ "state": "CLOSED",
6973
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7868.md",
6974
+ "closedAt": "2025-11-22T21:20:22Z",
6975
+ "updatedAt": "2025-11-22T21:20:22Z",
6976
+ "contentHash": "5f7fab12a47530e5238970aa98ea779080080dff1981d9227b25859f76bc0d1b"
6977
+ },
6978
+ "7869": {
6979
+ "state": "CLOSED",
6980
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7869.md",
6981
+ "closedAt": "2025-11-23T10:14:49Z",
6982
+ "updatedAt": "2025-11-23T10:14:49Z",
6983
+ "contentHash": "3a4ef05a1776c6a1cc677ba2ad5958bb1b4dcd2bdd108511fc3a86a667dd2ad8"
6984
+ },
6985
+ "7870": {
6986
+ "state": "CLOSED",
6987
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7870.md",
6988
+ "closedAt": "2025-11-23T10:31:16Z",
6989
+ "updatedAt": "2025-11-23T10:31:16Z",
6990
+ "contentHash": "3120a8b161486849c658a014847b205f18bac7d301099d7adfe5035047bbff55"
6991
+ },
6992
+ "7871": {
6993
+ "state": "CLOSED",
6994
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7871.md",
6995
+ "closedAt": "2025-11-23T10:38:35Z",
6996
+ "updatedAt": "2025-11-23T10:38:44Z",
6997
+ "contentHash": "dd24b3cb889e89de54801dbb5656cc4a2c769cb0ff95bd8b27fc305829019e54"
6998
+ },
6999
+ "7872": {
7000
+ "state": "CLOSED",
7001
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7872.md",
7002
+ "closedAt": "2025-11-23T10:58:55Z",
7003
+ "updatedAt": "2025-11-23T10:58:55Z",
7004
+ "contentHash": "e90a4845a21fe82c954857204ac5743a5d2042b58dd570df3be91c8a16854421"
7005
+ },
7006
+ "7873": {
7007
+ "state": "CLOSED",
7008
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7873.md",
7009
+ "closedAt": "2025-11-23T11:01:42Z",
7010
+ "updatedAt": "2025-11-23T11:01:42Z",
7011
+ "contentHash": "93a932ae5f6d5a2c2b0c72550c6fdbca5d567c908bf62d33be6381f00fbc36d8"
7012
+ },
7013
+ "7874": {
7014
+ "state": "CLOSED",
7015
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7874.md",
7016
+ "closedAt": "2025-11-23T11:13:57Z",
7017
+ "updatedAt": "2025-11-23T11:13:57Z",
7018
+ "contentHash": "b99b4719cbcb90e1b712e253664a2c37da9713750a32de42285930146e9f122a"
7019
+ },
7020
+ "7875": {
7021
+ "state": "CLOSED",
7022
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7875.md",
7023
+ "closedAt": "2025-11-23T11:25:10Z",
7024
+ "updatedAt": "2025-11-23T11:25:10Z",
7025
+ "contentHash": "fd59f42b28175208c7db695ef7bbc7fd6adf37cdb0f4023cdf6f156b1f31bb80"
7026
+ },
7027
+ "7876": {
7028
+ "state": "CLOSED",
7029
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7876.md",
7030
+ "closedAt": "2025-11-23T11:42:44Z",
7031
+ "updatedAt": "2025-11-23T11:42:44Z",
7032
+ "contentHash": "7e350d8bca8968c75a7826cf627c684bb9b7b6b9c714586515f3ab5a6ce5de75"
7033
+ },
7034
+ "7877": {
7035
+ "state": "CLOSED",
7036
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7877.md",
7037
+ "closedAt": "2025-11-23T11:53:46Z",
7038
+ "updatedAt": "2025-11-23T11:53:46Z",
7039
+ "contentHash": "7fe6d3439d08f0f2b0aa893891281cb7216db33e9d12baf380eaa4ab40623bf5"
7040
+ },
7041
+ "7878": {
7042
+ "state": "CLOSED",
7043
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7878.md",
7044
+ "closedAt": "2025-11-23T11:57:34Z",
7045
+ "updatedAt": "2025-11-23T11:57:34Z",
7046
+ "contentHash": "f85f58620164ed82bf65952598274defd39fdff9ace9f8753b14e4e9247b811e"
7047
+ },
7048
+ "7879": {
7049
+ "state": "CLOSED",
7050
+ "path": "/Users/Shared/github/neomjs/neo/.github/ISSUE/issue-7879.md",
7051
+ "closedAt": "2025-11-23T12:14:47Z",
7052
+ "updatedAt": "2025-11-23T12:14:47Z",
7053
+ "contentHash": "f338123e8dbfb4e367b9d3d3f1c26dabb4b550848ec881714ac54f71f877b625"
6683
7054
  }
6684
7055
  },
6685
7056
  "releases": {
@@ -6858,6 +7229,14 @@
6858
7229
  "11.6.1": {
6859
7230
  "publishedAt": "2025-11-19T17:38:22Z",
6860
7231
  "contentHash": "e55586ac67982eaae3cf90ff87d019e1df737cb7ee9494c4887637da854fac54"
7232
+ },
7233
+ "11.7.0": {
7234
+ "publishedAt": "2025-11-20T13:32:40Z",
7235
+ "contentHash": "4b57f29e22e6b77a204e2f00493d82117088c3beda7bf6614ae08b4fa59c0764"
7236
+ },
7237
+ "11.8.0": {
7238
+ "publishedAt": "2025-11-21T15:10:30Z",
7239
+ "contentHash": "cb4816af26ce5f4752b39651f9e943465a63ef26fc104f7e215b008ef12f5077"
6861
7240
  }
6862
7241
  }
6863
7242
  }
package/README.md CHANGED
@@ -47,10 +47,16 @@ This isn't just about generating code; it's about creating a self-aware developm
47
47
  </p>
48
48
 
49
49
  1. **🧠 The Knowledge Base Server**: Gives agents a deep, semantic understanding of your project. Powered by ChromaDB and Gemini embeddings, it allows agents to perform semantic searches across your entire codebase, documentation, and historical tickets. An agent can ask, "How does VDOM diffing work?" and get the exact source files and architectural guides relevant to the *currently checked-out version*.
50
+ * **[📘 Read the Guide](https://github.com/neomjs/neo/blob/dev/learn/guides/mcp/KnowledgeBase.md)**
50
51
 
51
52
  2. **💾 The Memory Core Server**: Provides agents with persistent, long-term memory. Every interaction—prompt, thought process, and response—is stored, allowing the agent to learn from experience, recall past decisions, and maintain context across multiple sessions. This transforms the agent from a stateless tool into a true collaborator that grows with your project.
53
+ * **[📘 Read the Guide](https://github.com/neomjs/neo/blob/dev/learn/guides/mcp/MemoryCore.md)**
52
54
 
53
55
  3. **🤖 The GitHub Workflow Server**: Closes the loop by enabling agents to participate directly in your project's lifecycle. It provides tools for autonomous PR reviews, issue management, and bi-directional synchronization of GitHub issues into a local, queryable set of markdown files. This removes the human bottleneck in code review and project management.
56
+ * **[📘 Read the Guide](https://github.com/neomjs/neo/blob/dev/learn/guides/mcp/GitHubWorkflow.md)**
57
+
58
+ 4. **⚡️ Code Execution (The "Thick Client")**: Empower your agents to act as autonomous developers. Instead of passively asking for information, agents can write and execute complex scripts using the **Neo.mjs AI SDK**. This enables advanced workflows like self-healing code, automated refactoring, and data migration—running locally at machine speed.
59
+ * **[📘 Read the Guide](https://github.com/neomjs/neo/blob/dev/learn/guides/mcp/CodeExecution.md)**
54
60
 
55
61
  This powerful tooling, co-created with AI agents, resulted in **resolving 388 tickets in just 6 weeks**. To learn more about this paradigm shift, read our blog post: **[388 Tickets in 6 Weeks: Context Engineering Done Right](./learn/blog/context-engineering-done-right.md)**.
56
62
 
package/ROADMAP.md CHANGED
@@ -2,51 +2,52 @@
2
2
 
3
3
  This document outlines the high-level strategic direction and priorities for the Neo.mjs framework.
4
4
 
5
- ## Vision: The AI-Native Development Environment
5
+ ## Vision: The "Thick Client" for AI Agents
6
6
 
7
- Our core vision is to create a truly **AI-native development environment**. We are evolving the framework and its surrounding tooling to empower both human developers and AI agents to collaborate seamlessly on building complex, high-performance web applications.
7
+ Our core vision is to position Neo.mjs not just as a frontend framework, but as the **Operating System for AI Agents**. By leveraging our Node.js compatibility, robust class system, and "batteries included" architecture, we provide the structured "brain" (Context Engineering) that powers Anthropic's "Code Execution" pattern.
8
8
 
9
- ## Current Focus: Mastering Context Engineering
9
+ ## Current Focus: The Agent OS (v11.x)
10
10
 
11
- As framed in our blog post, "[AI-Native, Not AI-Assisted](learn/blog/ai-native-platform-answers-questions.md)", our current development focus is not on the UI framework itself, but on the **tooling and infrastructure** that powers our AI-native workflows.
11
+ We are currently evolving our AI infrastructure to move beyond simple "tool use" and into full **Code Execution**. This means transforming our internal tools into a robust SDK that agents can import and script against directly.
12
12
 
13
- We are focused on **Context Engineering**: the practice of building systems that provide AI agents with the most relevant, accurate, and comprehensive context to perform their tasks. This is the key to unlocking meaningful AI contributions and creating a smooth onboarding experience where agents can teach newcomers.
13
+ ### 1. Architectural Enhancements (Code Execution Readiness)
14
14
 
15
- Our work in this area is organized around several key initiatives:
15
+ **Goal:** Enable agents to import and use our intelligent services directly as libraries, without the MCP protocol overhead.
16
16
 
17
- ### 1. The AI Knowledge & Memory Foundation
18
- - **Goal:** To provide agents with comprehensive technical and historical context.
19
- - **Initiatives:**
20
- - **Knowledge Base:** Following the v10.9 release, our RAG system has been enhanced to include all tickets and release notes, providing even deeper project insight.
21
- - **Memory Core:** The initial implementation of the agent's long-term memory is complete, allowing it to learn from past interactions. ([Epic: AI Knowledge Evolution](https://github.com/neomjs/neo/issues/7316))
17
+ - **Decouple Services (Completed):** Refactored `ai/mcp/server/*/services/*.mjs` to be importable as a standalone "AI SDK" (`ai/services.mjs`).
18
+ - **Standardize Lifecycle (Completed):** Enforced the `initAsync()` and `ready()` pattern across AI services, ensuring robust handling of hybrid database states (managed vs. external) and eliminating race conditions.
19
+ - **The "Neo Sandbox":** Create a lightweight boilerplate/config that sets up the Neo.mjs core in a Node.js script (handling `globalThis`, `Worker` mocks if needed) so agents can instantly start scripting.
22
20
 
23
- ### 2. Professionalizing AI Tooling (The 3 MCP Servers)
24
- - **Goal:** To migrate our script-based tools into a robust, professional-grade server architecture.
25
- - **Initiatives:**
26
- - We are building **three distinct Model Context Protocol (MCP) servers**:
27
- 1. A **Knowledge Base Server** for querying project-specific source code and documentation.
28
- 2. A **Memory Core Server** for providing agents with long-term conversational memory.
29
- 3. A **GitHub Sync Server** to manage the 2-way synchronization of issues and PRs.
30
- - This involves moving the logic from the original scripts into a formal server architecture, making our tools more reliable and accessible to any AI agent. ([Epic: Architect AI Tooling as MCP](https://github.com/neomjs/neo/issues/7399))
21
+ ### 2. New "Code Execution" Capabilities
31
22
 
32
- ### 3. Expanding Agent Capabilities
33
- - **Goal:** To give agents powerful new ways to interact with the development environment.
34
- - **Initiatives:**
35
- - **Sighted Agent:** A major initiative to empower agents with the ability to "see" and interact with web pages via Chrome DevTools, enabling automated UI/UX testing and validation. ([Epic: Sighted Agent & DevTools Integration](https://github.com/neomjs/neo/issues/7385))
36
- - **GitHub CLI Integration:** Deeply integrating the GitHub CLI to allow agents to automate PR reviews, issue creation, and other crucial repository interactions. ([Epic: Integrate GitHub CLI Workflow](https://github.com/neomjs/neo/issues/7364))
23
+ **Goal:** Empower agents to write "smart" scripts that perform logic on the client side, reducing token usage and increasing accuracy.
37
24
 
38
- ### 4. Ensuring Code Quality & Stability
39
- - **Goal:** To maintain a stable and reliable codebase by enabling automated, scriptable testing for all contributors.
40
- - **Initiatives:**
41
- - **Mandatory Unit Testing:** We are migrating our entire test suite from a browser-based harness (Siesta) to a Node.js-based runner (Playwright). The primary benefit is that tests can be run with a simple `npm test` command. This empowers AI agents to verify their own changes, and it unlocks future CI/CD integration (e.g., pre-commit hooks) to automatically prevent regressions. ([Epic: Enhance Workflow with Mandatory Unit Testing](https://github.com/neomjs/neo/issues/7262))
25
+ - **"Smart" Search Scripts (Completed):** Verified with `ai/examples/smart-search.mjs`.
26
+ - **Automated Refactoring Agents:** Expose the `Neo.mjs` core (Component system, Config system) to the agent sandbox. Agents can instantiate components in Node.js to verify config validity using `Neo.create()` before committing code.
27
+ - **AI SDK Testing:** Implement a dedicated test suite for `ai/services.mjs` to ensure the stability of the Agent OS infrastructure, treating it as a first-class framework component.
42
28
 
43
- ### 5. Decoupling the AI Tooling Ecosystem
44
- - **Goal:** To evolve our general-purpose AI tools into standalone, reusable packages.
45
- - **Initiatives:**
46
- - **Publish MCP Servers to npm (v11.1):** Following the initial implementation for v11, the **Memory Core** and **GitHub Sync** MCP servers will be published as independent packages to npm. This will be achieved by adding dedicated `package.json` files to their sub-folders within the `neo` repository. The Knowledge Base server will remain internal as it is tightly coupled with this project's source code. This strategy allows the general-purpose servers to be consumed via `npx` by the broader AI development community.
29
+ ### 3. Visibility & Marketing ("Get Visibility")
47
30
 
48
- ---
31
+ **Goal:** Establish Neo.mjs as the premier framework for AI-Native development.
49
32
 
50
- ## The Path to v11.0.0
33
+ - **"Context Engineering" Case Study:** Publish technical content comparing raw file dumping (Context Tax) vs. our semantic inheritance chain injection.
34
+ - **"The Agent OS" Branding:** Update documentation to explicitly highlight "AI-Native" capabilities and "Architecture designed for Agent Code Execution."
35
+ - **"Self-Healing" Repository (Completed):** Developed `ai/examples/self-healing.mjs` where an agent uses `GitHubWorkflow` + `KnowledgeBase` to autonomously read a bug report, query context, plan, and propose a fix.
36
+
37
+ ## 4. Future: Decoupling the AI Tooling Ecosystem
38
+
39
+ **Goal:** Evolve our general-purpose AI tools into standalone, reusable packages.
40
+
41
+ - **Publish MCP Servers to npm:** The **Memory Core** and **GitHub Sync** MCP servers will be published as independent packages to npm. This will allow the general-purpose servers to be consumed via `npx` by the broader AI development community. The Knowledge Base server will remain internal as it is tightly coupled with this project's source code.
42
+ - **Sighted Agent Service:** Evolve the "Sighted Agent" concept into a `VisualService` within the AI SDK, allowing agents to programmatically capture screenshots, inspect the A11y tree, and run visual regression tests via Chrome DevTools.
43
+ - **Multi-Agent Coordination:** Explore patterns for multiple agents to collaborate on complex tasks using the Memory Core as a shared blackboard state.
44
+
45
+ ## 5. Architectural Evolution: Hybrid Distribution Model
46
+
47
+ **Goal:** Solve the tension between "Agent OS" (Direct SDK access) and "Standalone Tooling" (npx execution).
48
+
49
+ - **Strategy:** Split future AI capabilities into "Core" vs. "Server" packages.
50
+ - **Core (`@neomjs/ai-*-core`):** Pure logic libraries (Services) that can be imported directly by the Agent SDK for high-performance "Code Execution".
51
+ - **Server (`@neomjs/ai-*-server`):** MCP wrappers around the Core libraries for external consumption via `npx`.
52
+ - **Execution:** We will maintain the current monorepo structure to iterate quickly on the "Agent OS" SDK. Extraction into separate packages will occur only once the service APIs are stable. This ensures we don't lose the "Thick Client" performance advantage while eventually enabling broader ecosystem adoption.
51
53
 
52
- The completion of these foundational infrastructure projects will culminate in the `v11.0.0` release. The timing of this release is dependent on the progress made during Hacktoberfest and subsequent community contributions. After the event, we will assess the state of these epics to define a more concrete release schedule.
package/ServiceWorker.mjs CHANGED
@@ -20,9 +20,9 @@ class ServiceWorker extends ServiceBase {
20
20
  */
21
21
  singleton: true,
22
22
  /**
23
- * @member {String} version='11.7.0'
23
+ * @member {String} version='11.9.0'
24
24
  */
25
- version: '11.7.0'
25
+ version: '11.9.0'
26
26
  }
27
27
 
28
28
  /**
@@ -0,0 +1,33 @@
1
+ import {
2
+ Memory_DatabaseService,
3
+ Memory_LifecycleService,
4
+ Memory_ChromaManager
5
+ } from '../services.mjs';
6
+
7
+ async function main() {
8
+ console.log('💾 Starting Memory Core Backup...');
9
+
10
+ // 1. Initialize Services
11
+ console.log(' - Initializing Memory Core...');
12
+ await Memory_ChromaManager.ready();
13
+
14
+ // 2. Perform Export
15
+ console.log(' - Exporting memories and summaries...');
16
+ try {
17
+ const result = await Memory_DatabaseService.exportDatabase({
18
+ include: ['memories', 'summaries']
19
+ });
20
+ console.log(` ✅ ${result.message}`);
21
+ } catch (error) {
22
+ console.error(` ❌ Export failed: ${error.message}`);
23
+ process.exit(1);
24
+ }
25
+
26
+ console.log('✅ Backup complete.');
27
+ process.exit(0);
28
+ }
29
+
30
+ main().catch(err => {
31
+ console.error('Fatal Error:', err);
32
+ process.exit(1);
33
+ });