aihand 0.0.1 → 0.1.1

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 (113) hide show
  1. package/README.md +152 -2
  2. package/dist/chunk-2NTK7H4W.js +10 -0
  3. package/dist/chunk-3X4FTHLC.cjs +369 -0
  4. package/dist/chunk-BXVNR4E2.js +399 -0
  5. package/dist/chunk-C7DGE6MY.cjs +1456 -0
  6. package/dist/chunk-DUUCVLC3.cjs +254 -0
  7. package/dist/chunk-FAHI53KO.cjs +125 -0
  8. package/dist/chunk-G7KVJ7NF.js +369 -0
  9. package/dist/chunk-GNEUSRGP.js +52 -0
  10. package/dist/chunk-IGNEAOLT.cjs +130 -0
  11. package/dist/chunk-IS5XFUDB.js +125 -0
  12. package/dist/chunk-JLYC76XL.js +2448 -0
  13. package/dist/chunk-KQOABC2O.cjs +52 -0
  14. package/dist/chunk-OVMK33AC.cjs +104 -0
  15. package/dist/chunk-OWYK2IGV.js +250 -0
  16. package/dist/chunk-PQSQN4CN.js +126 -0
  17. package/dist/chunk-QF6AG3M5.cjs +410 -0
  18. package/dist/chunk-QSAMLXML.js +1456 -0
  19. package/dist/chunk-VEKYRKPF.cjs +399 -0
  20. package/dist/chunk-Y6H7W7PI.cjs +2451 -0
  21. package/dist/chunk-YKSYW77R.js +410 -0
  22. package/dist/chunk-Z2Y65YOY.cjs +7 -0
  23. package/dist/chunk-ZJQRNIK7.js +104 -0
  24. package/dist/cli-3J7EYI6G.cjs +651 -0
  25. package/dist/cli-FIJLKAGI.js +649 -0
  26. package/dist/cli-JQEIE7RQ.js +120 -0
  27. package/dist/cli-K3OS2QQH.cjs +122 -0
  28. package/dist/cli-OSYG6LJD.cjs +89 -0
  29. package/dist/cli-TXRW5PG6.js +89 -0
  30. package/dist/cli.cjs +81 -0
  31. package/dist/cli.js +81 -0
  32. package/dist/config-5KEQLN6L.cjs +13 -0
  33. package/dist/config-PJPYKDLQ.js +13 -0
  34. package/dist/graph-IH56SCPK.js +8 -0
  35. package/dist/graph-ZUXXCJ5A.cjs +8 -0
  36. package/dist/index.cjs +481 -0
  37. package/dist/index.d.cts +461 -0
  38. package/dist/index.d.ts +461 -0
  39. package/dist/index.js +479 -0
  40. package/dist/locate-5XFSXJ5J.cjs +15 -0
  41. package/dist/locate-NKSUGL3A.js +15 -0
  42. package/dist/refactor-5FWSZIBN.cjs +19 -0
  43. package/dist/refactor-BOB3SZSA.js +19 -0
  44. package/dist/scan-4R7GQG2W.cjs +9 -0
  45. package/dist/scan-VF54GAAX.js +9 -0
  46. package/dist/ui/probe/server.cjs +505 -0
  47. package/dist/ui/probe/server.js +507 -0
  48. package/dist/vite.cjs +12 -0
  49. package/dist/vite.d.cts +12 -0
  50. package/dist/vite.d.ts +12 -0
  51. package/dist/vite.js +12 -0
  52. package/package.json +82 -9
  53. package/src/cli.ts +107 -0
  54. package/src/index.ts +54 -0
  55. package/src/read/cli.ts +650 -0
  56. package/src/read/compact.ts +286 -0
  57. package/src/read/config.ts +62 -0
  58. package/src/read/graph.ts +182 -0
  59. package/src/read/index.ts +12 -0
  60. package/src/read/inject.ts +121 -0
  61. package/src/read/locate.ts +104 -0
  62. package/src/read/panel.ts +335 -0
  63. package/src/read/pipeline.ts +78 -0
  64. package/src/read/refactor.ts +576 -0
  65. package/src/read/render.ts +1118 -0
  66. package/src/read/scan.ts +61 -0
  67. package/src/read/seam.ts +0 -0
  68. package/src/read/security.ts +171 -0
  69. package/src/read/signals.ts +333 -0
  70. package/src/read/state.ts +71 -0
  71. package/src/read/stategraph.ts +205 -0
  72. package/src/read/types.ts +162 -0
  73. package/src/read/vite.ts +77 -0
  74. package/src/ui/babel/line-profiler.ts +197 -0
  75. package/src/ui/babel/source-loc.ts +68 -0
  76. package/src/ui/bridge/cdp-bridge.ts +138 -0
  77. package/src/ui/bridge/compile-probe.ts +80 -0
  78. package/src/ui/bridge/transport.ts +26 -0
  79. package/src/ui/bridge/vite-bridge.ts +116 -0
  80. package/src/ui/client/client-patch.ts +899 -0
  81. package/src/ui/client/client.ts +2562 -0
  82. package/src/ui/core/action.ts +747 -0
  83. package/src/ui/core/candidates.ts +348 -0
  84. package/src/ui/core/canvas.ts +305 -0
  85. package/src/ui/core/check.ts +34 -0
  86. package/src/ui/core/compact.ts +314 -0
  87. package/src/ui/core/detail.ts +244 -0
  88. package/src/ui/core/diff.ts +253 -0
  89. package/src/ui/core/emit.ts +198 -0
  90. package/src/ui/core/knob-exec.ts +137 -0
  91. package/src/ui/core/perf.ts +254 -0
  92. package/src/ui/core/types.ts +164 -0
  93. package/src/ui/core/util.ts +221 -0
  94. package/src/ui/index.ts +5 -0
  95. package/src/ui/probe/cli.ts +139 -0
  96. package/src/ui/probe/server.ts +468 -0
  97. package/src/ui/self/act.ts +47 -0
  98. package/src/ui/self/discover.ts +101 -0
  99. package/src/ui/self/grow.ts +121 -0
  100. package/src/ui/self/install.ts +100 -0
  101. package/src/ui/self/probe.ts +105 -0
  102. package/src/ui/self/screen-hook.ts +44 -0
  103. package/src/ui/self/self.ts +48 -0
  104. package/src/ui/self/store-refs.ts +123 -0
  105. package/src/ui/self/store-schema.ts +65 -0
  106. package/src/ui/self/synth.ts +37 -0
  107. package/src/ui/server/cli.ts +102 -0
  108. package/src/ui/server/dispatch.ts +276 -0
  109. package/src/ui/server/help-text.ts +237 -0
  110. package/src/ui/server/knob-schema.ts +87 -0
  111. package/src/ui/server/plugin.ts +1151 -0
  112. package/src/vite.ts +39 -0
  113. package/index.js +0 -2
package/src/vite.ts ADDED
@@ -0,0 +1,39 @@
1
+ import type { Plugin } from 'vite'
2
+ import type { RepodexPluginOptions } from './read/vite.js'
3
+ import { resolve } from 'node:path'
4
+ import { loadConfig } from './read/config.js'
5
+ import { scan } from './read/scan.js'
6
+ import { repodexWatchPlugin } from './read/vite.js'
7
+ import { storeRefs } from './ui/self/store-refs.js'
8
+ import { storeSchema } from './ui/self/store-schema.js'
9
+ import { knobSchema } from './ui/server/knob-schema.js'
10
+ import { aihandPlugin } from './ui/server/plugin.js'
11
+
12
+ export type { RepodexPluginOptions } from './read/vite.js'
13
+
14
+ // One registration, full functionality. The two browser-facing modules mount only when their
15
+ // switch in aihand.config.ts is on — "off" here is the real thing, not decoration:
16
+ // - runtime on → aihandPlugin() (runtime probe /__aihand/*) + knobSchema() + storeSchema()
17
+ // - read on → repodexWatchPlugin() spawns `aihand read --watch`, keeps the codemap injected
18
+ // store discovery needs no config: `read` already defines WHERE the repo is (read.include).
19
+ // scan(config) resolves those globs (gitignore-filtered) to the file list; storeSchema runs the
20
+ // stategraph engine (ts-morph type checker) over the project and auto-keeps only the state nodes —
21
+ // a hand-listed storeRoots is redundant (the engine classifies non-stores out) and silently drifts
22
+ // when a store moves or is added. So we just feed scan's files and let discovery find every store.
23
+ // Async because loadConfig parses the TS config via jiti — Vite awaits plugin-array promises.
24
+ export async function aihand(opts: RepodexPluginOptions = {}): Promise<Plugin[]> {
25
+ const config = await loadConfig()
26
+ const plugins: Plugin[] = []
27
+ if (config.runtime.enabled) {
28
+ plugins.push(...aihandPlugin(), knobSchema() as Plugin)
29
+ const files = scan(config).map(f => resolve(f))
30
+ plugins.push(storeSchema({ roots: files, storeMarker: config.runtime.storeMarker }) as Plugin)
31
+ // storeRefs codegen 运行时 store 实例映射(对偶 storeSchema 的值域 schema)。范围 = 旋钮写的
32
+ // store(从 tsx/jsx 旋钮提取),create 类从 roots 发现,facade 类按名定位。srcRoot = @/ 别名锚点。
33
+ const knobFiles = files.filter(f => f.endsWith('.tsx') || f.endsWith('.jsx'))
34
+ plugins.push(storeRefs({ roots: files, knobFiles, srcRoot: resolve('src'), storeMarker: config.runtime.storeMarker }) as Plugin)
35
+ }
36
+ if (config.read.enabled)
37
+ plugins.push(repodexWatchPlugin(opts) as Plugin)
38
+ return plugins
39
+ }
package/index.js DELETED
@@ -1,2 +0,0 @@
1
- // aihand — placeholder. Full release coming. https://www.npmjs.com/package/aihand
2
- export const placeholder = true