@forgefabrik/ff-ztn 0.3.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 (463) hide show
  1. package/README.md +149 -0
  2. package/dist/discover.d.ts +3 -0
  3. package/dist/discover.d.ts.map +1 -0
  4. package/dist/discover.js +18 -0
  5. package/dist/discover.js.map +1 -0
  6. package/dist/genericagent.d.ts +3 -0
  7. package/dist/genericagent.d.ts.map +1 -0
  8. package/dist/genericagent.js +40 -0
  9. package/dist/genericagent.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +46 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/zero-token/accounts/account-repository.d.ts +7 -0
  15. package/dist/zero-token/accounts/account-repository.d.ts.map +1 -0
  16. package/dist/zero-token/accounts/account-repository.js +37 -0
  17. package/dist/zero-token/accounts/account-repository.js.map +1 -0
  18. package/dist/zero-token/accounts/account-service.d.ts +11 -0
  19. package/dist/zero-token/accounts/account-service.d.ts.map +1 -0
  20. package/dist/zero-token/accounts/account-service.js +66 -0
  21. package/dist/zero-token/accounts/account-service.js.map +1 -0
  22. package/dist/zero-token/accounts/account-types.d.ts +42 -0
  23. package/dist/zero-token/accounts/account-types.d.ts.map +1 -0
  24. package/dist/zero-token/accounts/account-types.js +2 -0
  25. package/dist/zero-token/accounts/account-types.js.map +1 -0
  26. package/dist/zero-token/accounts/account-validation.d.ts +14 -0
  27. package/dist/zero-token/accounts/account-validation.d.ts.map +1 -0
  28. package/dist/zero-token/accounts/account-validation.js +88 -0
  29. package/dist/zero-token/accounts/account-validation.js.map +1 -0
  30. package/dist/zero-token/agent/cli.d.ts +2 -0
  31. package/dist/zero-token/agent/cli.d.ts.map +1 -0
  32. package/dist/zero-token/agent/cli.js +116 -0
  33. package/dist/zero-token/agent/cli.js.map +1 -0
  34. package/dist/zero-token/agent/external-backend.d.ts +3 -0
  35. package/dist/zero-token/agent/external-backend.d.ts.map +1 -0
  36. package/dist/zero-token/agent/external-backend.js +3 -0
  37. package/dist/zero-token/agent/external-backend.js.map +1 -0
  38. package/dist/zero-token/agent/genericagent-config.d.ts +11 -0
  39. package/dist/zero-token/agent/genericagent-config.d.ts.map +1 -0
  40. package/dist/zero-token/agent/genericagent-config.js +44 -0
  41. package/dist/zero-token/agent/genericagent-config.js.map +1 -0
  42. package/dist/zero-token/agent/genericagent-runtime.d.ts +20 -0
  43. package/dist/zero-token/agent/genericagent-runtime.d.ts.map +1 -0
  44. package/dist/zero-token/agent/genericagent-runtime.js +71 -0
  45. package/dist/zero-token/agent/genericagent-runtime.js.map +1 -0
  46. package/dist/zero-token/agent/project-init.d.ts +11 -0
  47. package/dist/zero-token/agent/project-init.d.ts.map +1 -0
  48. package/dist/zero-token/agent/project-init.js +58 -0
  49. package/dist/zero-token/agent/project-init.js.map +1 -0
  50. package/dist/zero-token/agent/yoyo-adapter.d.ts +23 -0
  51. package/dist/zero-token/agent/yoyo-adapter.d.ts.map +1 -0
  52. package/dist/zero-token/agent/yoyo-adapter.js +88 -0
  53. package/dist/zero-token/agent/yoyo-adapter.js.map +1 -0
  54. package/dist/zero-token/app-meta.d.ts +7 -0
  55. package/dist/zero-token/app-meta.d.ts.map +1 -0
  56. package/dist/zero-token/app-meta.js +7 -0
  57. package/dist/zero-token/app-meta.js.map +1 -0
  58. package/dist/zero-token/cli/doctor-command.d.ts +18 -0
  59. package/dist/zero-token/cli/doctor-command.d.ts.map +1 -0
  60. package/dist/zero-token/cli/doctor-command.js +96 -0
  61. package/dist/zero-token/cli/doctor-command.js.map +1 -0
  62. package/dist/zero-token/config/config.d.ts +56 -0
  63. package/dist/zero-token/config/config.d.ts.map +1 -0
  64. package/dist/zero-token/config/config.js +98 -0
  65. package/dist/zero-token/config/config.js.map +1 -0
  66. package/dist/zero-token/config/paths.d.ts +12 -0
  67. package/dist/zero-token/config/paths.d.ts.map +1 -0
  68. package/dist/zero-token/config/paths.js +50 -0
  69. package/dist/zero-token/config/paths.js.map +1 -0
  70. package/dist/zero-token/discovery/builtin-catalog.d.ts +13 -0
  71. package/dist/zero-token/discovery/builtin-catalog.d.ts.map +1 -0
  72. package/dist/zero-token/discovery/builtin-catalog.js +25 -0
  73. package/dist/zero-token/discovery/builtin-catalog.js.map +1 -0
  74. package/dist/zero-token/discovery/candidate-evaluator.d.ts +4 -0
  75. package/dist/zero-token/discovery/candidate-evaluator.d.ts.map +1 -0
  76. package/dist/zero-token/discovery/candidate-evaluator.js +132 -0
  77. package/dist/zero-token/discovery/candidate-evaluator.js.map +1 -0
  78. package/dist/zero-token/discovery/candidate-probe-capability.d.ts +6 -0
  79. package/dist/zero-token/discovery/candidate-probe-capability.d.ts.map +1 -0
  80. package/dist/zero-token/discovery/candidate-probe-capability.js +10 -0
  81. package/dist/zero-token/discovery/candidate-probe-capability.js.map +1 -0
  82. package/dist/zero-token/discovery/candidate-probe-evidence.d.ts +13 -0
  83. package/dist/zero-token/discovery/candidate-probe-evidence.d.ts.map +1 -0
  84. package/dist/zero-token/discovery/candidate-probe-evidence.js +53 -0
  85. package/dist/zero-token/discovery/candidate-probe-evidence.js.map +1 -0
  86. package/dist/zero-token/discovery/candidate-probe-observer.d.ts +3 -0
  87. package/dist/zero-token/discovery/candidate-probe-observer.d.ts.map +1 -0
  88. package/dist/zero-token/discovery/candidate-probe-observer.js +36 -0
  89. package/dist/zero-token/discovery/candidate-probe-observer.js.map +1 -0
  90. package/dist/zero-token/discovery/candidate-probe-runtime.d.ts +6 -0
  91. package/dist/zero-token/discovery/candidate-probe-runtime.d.ts.map +1 -0
  92. package/dist/zero-token/discovery/candidate-probe-runtime.js +120 -0
  93. package/dist/zero-token/discovery/candidate-probe-runtime.js.map +1 -0
  94. package/dist/zero-token/discovery/candidate-probe-store.d.ts +9 -0
  95. package/dist/zero-token/discovery/candidate-probe-store.d.ts.map +1 -0
  96. package/dist/zero-token/discovery/candidate-probe-store.js +66 -0
  97. package/dist/zero-token/discovery/candidate-probe-store.js.map +1 -0
  98. package/dist/zero-token/discovery/candidate-probe-types.d.ts +30 -0
  99. package/dist/zero-token/discovery/candidate-probe-types.d.ts.map +1 -0
  100. package/dist/zero-token/discovery/candidate-probe-types.js +2 -0
  101. package/dist/zero-token/discovery/candidate-probe-types.js.map +1 -0
  102. package/dist/zero-token/discovery/control-service.d.ts +8 -0
  103. package/dist/zero-token/discovery/control-service.d.ts.map +1 -0
  104. package/dist/zero-token/discovery/control-service.js +107 -0
  105. package/dist/zero-token/discovery/control-service.js.map +1 -0
  106. package/dist/zero-token/discovery/control-store.d.ts +7 -0
  107. package/dist/zero-token/discovery/control-store.d.ts.map +1 -0
  108. package/dist/zero-token/discovery/control-store.js +70 -0
  109. package/dist/zero-token/discovery/control-store.js.map +1 -0
  110. package/dist/zero-token/discovery/control-types.d.ts +39 -0
  111. package/dist/zero-token/discovery/control-types.d.ts.map +1 -0
  112. package/dist/zero-token/discovery/control-types.js +2 -0
  113. package/dist/zero-token/discovery/control-types.js.map +1 -0
  114. package/dist/zero-token/discovery/discovery-routes.d.ts +3 -0
  115. package/dist/zero-token/discovery/discovery-routes.d.ts.map +1 -0
  116. package/dist/zero-token/discovery/discovery-routes.js +130 -0
  117. package/dist/zero-token/discovery/discovery-routes.js.map +1 -0
  118. package/dist/zero-token/discovery/discovery-service.d.ts +18 -0
  119. package/dist/zero-token/discovery/discovery-service.d.ts.map +1 -0
  120. package/dist/zero-token/discovery/discovery-service.js +81 -0
  121. package/dist/zero-token/discovery/discovery-service.js.map +1 -0
  122. package/dist/zero-token/discovery/manifest.d.ts +14 -0
  123. package/dist/zero-token/discovery/manifest.d.ts.map +1 -0
  124. package/dist/zero-token/discovery/manifest.js +43 -0
  125. package/dist/zero-token/discovery/manifest.js.map +1 -0
  126. package/dist/zero-token/discovery/public-site-inspector.d.ts +10 -0
  127. package/dist/zero-token/discovery/public-site-inspector.d.ts.map +1 -0
  128. package/dist/zero-token/discovery/public-site-inspector.js +111 -0
  129. package/dist/zero-token/discovery/public-site-inspector.js.map +1 -0
  130. package/dist/zero-token/gateway/api-key-auth.d.ts +3 -0
  131. package/dist/zero-token/gateway/api-key-auth.d.ts.map +1 -0
  132. package/dist/zero-token/gateway/api-key-auth.js +59 -0
  133. package/dist/zero-token/gateway/api-key-auth.js.map +1 -0
  134. package/dist/zero-token/gateway/api-request-logger-quiet.d.ts +3 -0
  135. package/dist/zero-token/gateway/api-request-logger-quiet.d.ts.map +1 -0
  136. package/dist/zero-token/gateway/api-request-logger-quiet.js +79 -0
  137. package/dist/zero-token/gateway/api-request-logger-quiet.js.map +1 -0
  138. package/dist/zero-token/gateway/api-request-logger.d.ts +3 -0
  139. package/dist/zero-token/gateway/api-request-logger.d.ts.map +1 -0
  140. package/dist/zero-token/gateway/api-request-logger.js +67 -0
  141. package/dist/zero-token/gateway/api-request-logger.js.map +1 -0
  142. package/dist/zero-token/gateway/complete-gateway.d.ts +16 -0
  143. package/dist/zero-token/gateway/complete-gateway.d.ts.map +1 -0
  144. package/dist/zero-token/gateway/complete-gateway.js +25 -0
  145. package/dist/zero-token/gateway/complete-gateway.js.map +1 -0
  146. package/dist/zero-token/gateway/dashboard-gateway.d.ts +16 -0
  147. package/dist/zero-token/gateway/dashboard-gateway.d.ts.map +1 -0
  148. package/dist/zero-token/gateway/dashboard-gateway.js +33 -0
  149. package/dist/zero-token/gateway/dashboard-gateway.js.map +1 -0
  150. package/dist/zero-token/gateway/gateway.d.ts +2 -0
  151. package/dist/zero-token/gateway/gateway.d.ts.map +1 -0
  152. package/dist/zero-token/gateway/gateway.js +2 -0
  153. package/dist/zero-token/gateway/gateway.js.map +1 -0
  154. package/dist/zero-token/gateway/inference-dispatch.d.ts +3 -0
  155. package/dist/zero-token/gateway/inference-dispatch.d.ts.map +1 -0
  156. package/dist/zero-token/gateway/inference-dispatch.js +97 -0
  157. package/dist/zero-token/gateway/inference-dispatch.js.map +1 -0
  158. package/dist/zero-token/gateway/playground-routes.d.ts +3 -0
  159. package/dist/zero-token/gateway/playground-routes.d.ts.map +1 -0
  160. package/dist/zero-token/gateway/playground-routes.js +33 -0
  161. package/dist/zero-token/gateway/playground-routes.js.map +1 -0
  162. package/dist/zero-token/gateway/provider-runtime-routes.d.ts +3 -0
  163. package/dist/zero-token/gateway/provider-runtime-routes.d.ts.map +1 -0
  164. package/dist/zero-token/gateway/provider-runtime-routes.js +38 -0
  165. package/dist/zero-token/gateway/provider-runtime-routes.js.map +1 -0
  166. package/dist/zero-token/gateway/runtime-gateway.d.ts +20 -0
  167. package/dist/zero-token/gateway/runtime-gateway.d.ts.map +1 -0
  168. package/dist/zero-token/gateway/runtime-gateway.js +234 -0
  169. package/dist/zero-token/gateway/runtime-gateway.js.map +1 -0
  170. package/dist/zero-token/identities/google-identity-service.d.ts +27 -0
  171. package/dist/zero-token/identities/google-identity-service.d.ts.map +1 -0
  172. package/dist/zero-token/identities/google-identity-service.js +162 -0
  173. package/dist/zero-token/identities/google-identity-service.js.map +1 -0
  174. package/dist/zero-token/index.d.ts +3 -0
  175. package/dist/zero-token/index.d.ts.map +1 -0
  176. package/dist/zero-token/index.js +380 -0
  177. package/dist/zero-token/index.js.map +1 -0
  178. package/dist/zero-token/inference/browser-stream-utils.d.ts +5 -0
  179. package/dist/zero-token/inference/browser-stream-utils.d.ts.map +1 -0
  180. package/dist/zero-token/inference/browser-stream-utils.js +118 -0
  181. package/dist/zero-token/inference/browser-stream-utils.js.map +1 -0
  182. package/dist/zero-token/inference/chatgpt-browser-provider.d.ts +17 -0
  183. package/dist/zero-token/inference/chatgpt-browser-provider.d.ts.map +1 -0
  184. package/dist/zero-token/inference/chatgpt-browser-provider.js +242 -0
  185. package/dist/zero-token/inference/chatgpt-browser-provider.js.map +1 -0
  186. package/dist/zero-token/inference/chatgpt-conversation-state.d.ts +8 -0
  187. package/dist/zero-token/inference/chatgpt-conversation-state.d.ts.map +1 -0
  188. package/dist/zero-token/inference/chatgpt-conversation-state.js +60 -0
  189. package/dist/zero-token/inference/chatgpt-conversation-state.js.map +1 -0
  190. package/dist/zero-token/inference/chatgpt-direct-provider.d.ts +15 -0
  191. package/dist/zero-token/inference/chatgpt-direct-provider.d.ts.map +1 -0
  192. package/dist/zero-token/inference/chatgpt-direct-provider.js +348 -0
  193. package/dist/zero-token/inference/chatgpt-direct-provider.js.map +1 -0
  194. package/dist/zero-token/inference/chatgpt-provider.d.ts +32 -0
  195. package/dist/zero-token/inference/chatgpt-provider.d.ts.map +1 -0
  196. package/dist/zero-token/inference/chatgpt-provider.js +312 -0
  197. package/dist/zero-token/inference/chatgpt-provider.js.map +1 -0
  198. package/dist/zero-token/inference/claude-browser-provider.d.ts +16 -0
  199. package/dist/zero-token/inference/claude-browser-provider.d.ts.map +1 -0
  200. package/dist/zero-token/inference/claude-browser-provider.js +193 -0
  201. package/dist/zero-token/inference/claude-browser-provider.js.map +1 -0
  202. package/dist/zero-token/inference/claude-openclaw-provider.d.ts +14 -0
  203. package/dist/zero-token/inference/claude-openclaw-provider.d.ts.map +1 -0
  204. package/dist/zero-token/inference/claude-openclaw-provider.js +187 -0
  205. package/dist/zero-token/inference/claude-openclaw-provider.js.map +1 -0
  206. package/dist/zero-token/inference/glm-browser-provider.d.ts +15 -0
  207. package/dist/zero-token/inference/glm-browser-provider.d.ts.map +1 -0
  208. package/dist/zero-token/inference/glm-browser-provider.js +166 -0
  209. package/dist/zero-token/inference/glm-browser-provider.js.map +1 -0
  210. package/dist/zero-token/inference/inference-provider.d.ts +44 -0
  211. package/dist/zero-token/inference/inference-provider.d.ts.map +1 -0
  212. package/dist/zero-token/inference/inference-provider.js +32 -0
  213. package/dist/zero-token/inference/inference-provider.js.map +1 -0
  214. package/dist/zero-token/inference/model-registry.d.ts +28 -0
  215. package/dist/zero-token/inference/model-registry.d.ts.map +1 -0
  216. package/dist/zero-token/inference/model-registry.js +48 -0
  217. package/dist/zero-token/inference/model-registry.js.map +1 -0
  218. package/dist/zero-token/inference/qwen-browser-provider.d.ts +14 -0
  219. package/dist/zero-token/inference/qwen-browser-provider.d.ts.map +1 -0
  220. package/dist/zero-token/inference/qwen-browser-provider.js +227 -0
  221. package/dist/zero-token/inference/qwen-browser-provider.js.map +1 -0
  222. package/dist/zero-token/inference/stream.d.ts +15 -0
  223. package/dist/zero-token/inference/stream.d.ts.map +1 -0
  224. package/dist/zero-token/inference/stream.js +94 -0
  225. package/dist/zero-token/inference/stream.js.map +1 -0
  226. package/dist/zero-token/inference/types.d.ts +94 -0
  227. package/dist/zero-token/inference/types.d.ts.map +1 -0
  228. package/dist/zero-token/inference/types.js +5 -0
  229. package/dist/zero-token/inference/types.js.map +1 -0
  230. package/dist/zero-token/logger.d.ts +4 -0
  231. package/dist/zero-token/logger.d.ts.map +1 -0
  232. package/dist/zero-token/logger.js +27 -0
  233. package/dist/zero-token/logger.js.map +1 -0
  234. package/dist/zero-token/logging/log-events.d.ts +17 -0
  235. package/dist/zero-token/logging/log-events.d.ts.map +1 -0
  236. package/dist/zero-token/logging/log-events.js +74 -0
  237. package/dist/zero-token/logging/log-events.js.map +1 -0
  238. package/dist/zero-token/logging/log-routes.d.ts +3 -0
  239. package/dist/zero-token/logging/log-routes.d.ts.map +1 -0
  240. package/dist/zero-token/logging/log-routes.js +68 -0
  241. package/dist/zero-token/logging/log-routes.js.map +1 -0
  242. package/dist/zero-token/models/model-cache.d.ts +7 -0
  243. package/dist/zero-token/models/model-cache.d.ts.map +1 -0
  244. package/dist/zero-token/models/model-cache.js +58 -0
  245. package/dist/zero-token/models/model-cache.js.map +1 -0
  246. package/dist/zero-token/models/model-normalization.d.ts +4 -0
  247. package/dist/zero-token/models/model-normalization.d.ts.map +1 -0
  248. package/dist/zero-token/models/model-normalization.js +33 -0
  249. package/dist/zero-token/models/model-normalization.js.map +1 -0
  250. package/dist/zero-token/models/model-service.d.ts +6 -0
  251. package/dist/zero-token/models/model-service.d.ts.map +1 -0
  252. package/dist/zero-token/models/model-service.js +110 -0
  253. package/dist/zero-token/models/model-service.js.map +1 -0
  254. package/dist/zero-token/models/model-types.d.ts +28 -0
  255. package/dist/zero-token/models/model-types.d.ts.map +1 -0
  256. package/dist/zero-token/models/model-types.js +2 -0
  257. package/dist/zero-token/models/model-types.js.map +1 -0
  258. package/dist/zero-token/multi-account/router.d.ts +43 -0
  259. package/dist/zero-token/multi-account/router.d.ts.map +1 -0
  260. package/dist/zero-token/multi-account/router.js +94 -0
  261. package/dist/zero-token/multi-account/router.js.map +1 -0
  262. package/dist/zero-token/providers/browser-bridge-jobs.d.ts +26 -0
  263. package/dist/zero-token/providers/browser-bridge-jobs.d.ts.map +1 -0
  264. package/dist/zero-token/providers/browser-bridge-jobs.js +119 -0
  265. package/dist/zero-token/providers/browser-bridge-jobs.js.map +1 -0
  266. package/dist/zero-token/providers/browser-bridge-routes.d.ts +3 -0
  267. package/dist/zero-token/providers/browser-bridge-routes.d.ts.map +1 -0
  268. package/dist/zero-token/providers/browser-bridge-routes.js +71 -0
  269. package/dist/zero-token/providers/browser-bridge-routes.js.map +1 -0
  270. package/dist/zero-token/providers/browser.d.ts +47 -0
  271. package/dist/zero-token/providers/browser.d.ts.map +1 -0
  272. package/dist/zero-token/providers/browser.js +330 -0
  273. package/dist/zero-token/providers/browser.js.map +1 -0
  274. package/dist/zero-token/providers/chatgpt/chatgpt-account-info.d.ts +12 -0
  275. package/dist/zero-token/providers/chatgpt/chatgpt-account-info.d.ts.map +1 -0
  276. package/dist/zero-token/providers/chatgpt/chatgpt-account-info.js +66 -0
  277. package/dist/zero-token/providers/chatgpt/chatgpt-account-info.js.map +1 -0
  278. package/dist/zero-token/providers/chatgpt/chatgpt-auth.d.ts +9 -0
  279. package/dist/zero-token/providers/chatgpt/chatgpt-auth.d.ts.map +1 -0
  280. package/dist/zero-token/providers/chatgpt/chatgpt-auth.js +81 -0
  281. package/dist/zero-token/providers/chatgpt/chatgpt-auth.js.map +1 -0
  282. package/dist/zero-token/providers/chatgpt/chatgpt-browser.d.ts +21 -0
  283. package/dist/zero-token/providers/chatgpt/chatgpt-browser.d.ts.map +1 -0
  284. package/dist/zero-token/providers/chatgpt/chatgpt-browser.js +64 -0
  285. package/dist/zero-token/providers/chatgpt/chatgpt-browser.js.map +1 -0
  286. package/dist/zero-token/providers/chatgpt/chatgpt-errors.d.ts +22 -0
  287. package/dist/zero-token/providers/chatgpt/chatgpt-errors.d.ts.map +1 -0
  288. package/dist/zero-token/providers/chatgpt/chatgpt-errors.js +44 -0
  289. package/dist/zero-token/providers/chatgpt/chatgpt-errors.js.map +1 -0
  290. package/dist/zero-token/providers/chatgpt/chatgpt-session.d.ts +10 -0
  291. package/dist/zero-token/providers/chatgpt/chatgpt-session.d.ts.map +1 -0
  292. package/dist/zero-token/providers/chatgpt/chatgpt-session.js +71 -0
  293. package/dist/zero-token/providers/chatgpt/chatgpt-session.js.map +1 -0
  294. package/dist/zero-token/providers/chatgpt/chatgpt-types.d.ts +36 -0
  295. package/dist/zero-token/providers/chatgpt/chatgpt-types.d.ts.map +1 -0
  296. package/dist/zero-token/providers/chatgpt/chatgpt-types.js +2 -0
  297. package/dist/zero-token/providers/chatgpt/chatgpt-types.js.map +1 -0
  298. package/dist/zero-token/providers/chatgpt-web-auth.d.ts +10 -0
  299. package/dist/zero-token/providers/chatgpt-web-auth.d.ts.map +1 -0
  300. package/dist/zero-token/providers/chatgpt-web-auth.js +143 -0
  301. package/dist/zero-token/providers/chatgpt-web-auth.js.map +1 -0
  302. package/dist/zero-token/providers/chatgpt-web-models.d.ts +8 -0
  303. package/dist/zero-token/providers/chatgpt-web-models.d.ts.map +1 -0
  304. package/dist/zero-token/providers/chatgpt-web-models.js +99 -0
  305. package/dist/zero-token/providers/chatgpt-web-models.js.map +1 -0
  306. package/dist/zero-token/providers/chatgpt-web-validator.d.ts +8 -0
  307. package/dist/zero-token/providers/chatgpt-web-validator.d.ts.map +1 -0
  308. package/dist/zero-token/providers/chatgpt-web-validator.js +79 -0
  309. package/dist/zero-token/providers/chatgpt-web-validator.js.map +1 -0
  310. package/dist/zero-token/providers/claude-web-auth.d.ts +3 -0
  311. package/dist/zero-token/providers/claude-web-auth.d.ts.map +1 -0
  312. package/dist/zero-token/providers/claude-web-auth.js +109 -0
  313. package/dist/zero-token/providers/claude-web-auth.js.map +1 -0
  314. package/dist/zero-token/providers/claude-web-models.d.ts +3 -0
  315. package/dist/zero-token/providers/claude-web-models.d.ts.map +1 -0
  316. package/dist/zero-token/providers/claude-web-models.js +71 -0
  317. package/dist/zero-token/providers/claude-web-models.js.map +1 -0
  318. package/dist/zero-token/providers/claude-web-validator.d.ts +3 -0
  319. package/dist/zero-token/providers/claude-web-validator.d.ts.map +1 -0
  320. package/dist/zero-token/providers/claude-web-validator.js +57 -0
  321. package/dist/zero-token/providers/claude-web-validator.js.map +1 -0
  322. package/dist/zero-token/providers/deepseek-web-auth.d.ts +7 -0
  323. package/dist/zero-token/providers/deepseek-web-auth.d.ts.map +1 -0
  324. package/dist/zero-token/providers/deepseek-web-auth.js +69 -0
  325. package/dist/zero-token/providers/deepseek-web-auth.js.map +1 -0
  326. package/dist/zero-token/providers/deepseek-web-validator.d.ts +3 -0
  327. package/dist/zero-token/providers/deepseek-web-validator.d.ts.map +1 -0
  328. package/dist/zero-token/providers/deepseek-web-validator.js +24 -0
  329. package/dist/zero-token/providers/deepseek-web-validator.js.map +1 -0
  330. package/dist/zero-token/providers/doubao-web-auth.d.ts +7 -0
  331. package/dist/zero-token/providers/doubao-web-auth.d.ts.map +1 -0
  332. package/dist/zero-token/providers/doubao-web-auth.js +44 -0
  333. package/dist/zero-token/providers/doubao-web-auth.js.map +1 -0
  334. package/dist/zero-token/providers/gemini-web-auth.d.ts +7 -0
  335. package/dist/zero-token/providers/gemini-web-auth.d.ts.map +1 -0
  336. package/dist/zero-token/providers/gemini-web-auth.js +47 -0
  337. package/dist/zero-token/providers/gemini-web-auth.js.map +1 -0
  338. package/dist/zero-token/providers/glm-intl-web-auth.d.ts +4 -0
  339. package/dist/zero-token/providers/glm-intl-web-auth.d.ts.map +1 -0
  340. package/dist/zero-token/providers/glm-intl-web-auth.js +53 -0
  341. package/dist/zero-token/providers/glm-intl-web-auth.js.map +1 -0
  342. package/dist/zero-token/providers/glm-web-auth.d.ts +3 -0
  343. package/dist/zero-token/providers/glm-web-auth.d.ts.map +1 -0
  344. package/dist/zero-token/providers/glm-web-auth.js +42 -0
  345. package/dist/zero-token/providers/glm-web-auth.js.map +1 -0
  346. package/dist/zero-token/providers/glm-web-models.d.ts +3 -0
  347. package/dist/zero-token/providers/glm-web-models.d.ts.map +1 -0
  348. package/dist/zero-token/providers/glm-web-models.js +52 -0
  349. package/dist/zero-token/providers/glm-web-models.js.map +1 -0
  350. package/dist/zero-token/providers/grok-web-auth.d.ts +7 -0
  351. package/dist/zero-token/providers/grok-web-auth.d.ts.map +1 -0
  352. package/dist/zero-token/providers/grok-web-auth.js +47 -0
  353. package/dist/zero-token/providers/grok-web-auth.js.map +1 -0
  354. package/dist/zero-token/providers/identity/chatgpt-identity.d.ts +15 -0
  355. package/dist/zero-token/providers/identity/chatgpt-identity.d.ts.map +1 -0
  356. package/dist/zero-token/providers/identity/chatgpt-identity.js +15 -0
  357. package/dist/zero-token/providers/identity/chatgpt-identity.js.map +1 -0
  358. package/dist/zero-token/providers/identity/identity-validation.d.ts +3 -0
  359. package/dist/zero-token/providers/identity/identity-validation.d.ts.map +1 -0
  360. package/dist/zero-token/providers/identity/identity-validation.js +74 -0
  361. package/dist/zero-token/providers/identity/identity-validation.js.map +1 -0
  362. package/dist/zero-token/providers/identity/provider-identity-readiness.d.ts +16 -0
  363. package/dist/zero-token/providers/identity/provider-identity-readiness.d.ts.map +1 -0
  364. package/dist/zero-token/providers/identity/provider-identity-readiness.js +56 -0
  365. package/dist/zero-token/providers/identity/provider-identity-readiness.js.map +1 -0
  366. package/dist/zero-token/providers/identity/provider-identity.d.ts +88 -0
  367. package/dist/zero-token/providers/identity/provider-identity.d.ts.map +1 -0
  368. package/dist/zero-token/providers/identity/provider-identity.js +17 -0
  369. package/dist/zero-token/providers/identity/provider-identity.js.map +1 -0
  370. package/dist/zero-token/providers/kimi-web-auth.d.ts +7 -0
  371. package/dist/zero-token/providers/kimi-web-auth.d.ts.map +1 -0
  372. package/dist/zero-token/providers/kimi-web-auth.js +50 -0
  373. package/dist/zero-token/providers/kimi-web-auth.js.map +1 -0
  374. package/dist/zero-token/providers/perplexity-web-auth.d.ts +7 -0
  375. package/dist/zero-token/providers/perplexity-web-auth.d.ts.map +1 -0
  376. package/dist/zero-token/providers/perplexity-web-auth.js +68 -0
  377. package/dist/zero-token/providers/perplexity-web-auth.js.map +1 -0
  378. package/dist/zero-token/providers/perplexity-web-validator.d.ts +3 -0
  379. package/dist/zero-token/providers/perplexity-web-validator.d.ts.map +1 -0
  380. package/dist/zero-token/providers/perplexity-web-validator.js +33 -0
  381. package/dist/zero-token/providers/perplexity-web-validator.js.map +1 -0
  382. package/dist/zero-token/providers/provider-account-resolver.d.ts +9 -0
  383. package/dist/zero-token/providers/provider-account-resolver.d.ts.map +1 -0
  384. package/dist/zero-token/providers/provider-account-resolver.js +28 -0
  385. package/dist/zero-token/providers/provider-account-resolver.js.map +1 -0
  386. package/dist/zero-token/providers/provider-browser-profiles.d.ts +14 -0
  387. package/dist/zero-token/providers/provider-browser-profiles.d.ts.map +1 -0
  388. package/dist/zero-token/providers/provider-browser-profiles.js +78 -0
  389. package/dist/zero-token/providers/provider-browser-profiles.js.map +1 -0
  390. package/dist/zero-token/providers/provider-catalog.d.ts +7 -0
  391. package/dist/zero-token/providers/provider-catalog.d.ts.map +1 -0
  392. package/dist/zero-token/providers/provider-catalog.js +27 -0
  393. package/dist/zero-token/providers/provider-catalog.js.map +1 -0
  394. package/dist/zero-token/providers/provider-login-jobs.d.ts +21 -0
  395. package/dist/zero-token/providers/provider-login-jobs.d.ts.map +1 -0
  396. package/dist/zero-token/providers/provider-login-jobs.js +185 -0
  397. package/dist/zero-token/providers/provider-login-jobs.js.map +1 -0
  398. package/dist/zero-token/providers/provider-runtime-registry.d.ts +16 -0
  399. package/dist/zero-token/providers/provider-runtime-registry.d.ts.map +1 -0
  400. package/dist/zero-token/providers/provider-runtime-registry.js +88 -0
  401. package/dist/zero-token/providers/provider-runtime-registry.js.map +1 -0
  402. package/dist/zero-token/providers/provider-runtime-registry.test.d.ts +2 -0
  403. package/dist/zero-token/providers/provider-runtime-registry.test.d.ts.map +1 -0
  404. package/dist/zero-token/providers/provider-runtime-registry.test.js +26 -0
  405. package/dist/zero-token/providers/provider-runtime-registry.test.js.map +1 -0
  406. package/dist/zero-token/providers/provider-types.d.ts +72 -0
  407. package/dist/zero-token/providers/provider-types.d.ts.map +1 -0
  408. package/dist/zero-token/providers/provider-types.js +2 -0
  409. package/dist/zero-token/providers/provider-types.js.map +1 -0
  410. package/dist/zero-token/providers/qwen-cn-web-auth.d.ts +4 -0
  411. package/dist/zero-token/providers/qwen-cn-web-auth.d.ts.map +1 -0
  412. package/dist/zero-token/providers/qwen-cn-web-auth.js +58 -0
  413. package/dist/zero-token/providers/qwen-cn-web-auth.js.map +1 -0
  414. package/dist/zero-token/providers/qwen-web-auth.d.ts +3 -0
  415. package/dist/zero-token/providers/qwen-web-auth.d.ts.map +1 -0
  416. package/dist/zero-token/providers/qwen-web-auth.js +67 -0
  417. package/dist/zero-token/providers/qwen-web-auth.js.map +1 -0
  418. package/dist/zero-token/providers/qwen-web-models.d.ts +3 -0
  419. package/dist/zero-token/providers/qwen-web-models.d.ts.map +1 -0
  420. package/dist/zero-token/providers/qwen-web-models.js +27 -0
  421. package/dist/zero-token/providers/qwen-web-models.js.map +1 -0
  422. package/dist/zero-token/providers/registry.d.ts +4 -0
  423. package/dist/zero-token/providers/registry.d.ts.map +1 -0
  424. package/dist/zero-token/providers/registry.js +39 -0
  425. package/dist/zero-token/providers/registry.js.map +1 -0
  426. package/dist/zero-token/providers/registry.next.d.ts +4 -0
  427. package/dist/zero-token/providers/registry.next.d.ts.map +1 -0
  428. package/dist/zero-token/providers/registry.next.js +30 -0
  429. package/dist/zero-token/providers/registry.next.js.map +1 -0
  430. package/dist/zero-token/providers/remote-browser-session.d.ts +7 -0
  431. package/dist/zero-token/providers/remote-browser-session.d.ts.map +1 -0
  432. package/dist/zero-token/providers/remote-browser-session.js +85 -0
  433. package/dist/zero-token/providers/remote-browser-session.js.map +1 -0
  434. package/dist/zero-token/providers/xiaomimo-web-auth.d.ts +7 -0
  435. package/dist/zero-token/providers/xiaomimo-web-auth.d.ts.map +1 -0
  436. package/dist/zero-token/providers/xiaomimo-web-auth.js +44 -0
  437. package/dist/zero-token/providers/xiaomimo-web-auth.js.map +1 -0
  438. package/dist/zero-token/quota/quota-manager.d.ts +2 -0
  439. package/dist/zero-token/quota/quota-manager.d.ts.map +1 -0
  440. package/dist/zero-token/quota/quota-manager.js +2 -0
  441. package/dist/zero-token/quota/quota-manager.js.map +1 -0
  442. package/dist/zero-token/quota/runtime-quota-manager.d.ts +19 -0
  443. package/dist/zero-token/quota/runtime-quota-manager.d.ts.map +1 -0
  444. package/dist/zero-token/quota/runtime-quota-manager.js +118 -0
  445. package/dist/zero-token/quota/runtime-quota-manager.js.map +1 -0
  446. package/dist/zero-token/session/session-service.d.ts +11 -0
  447. package/dist/zero-token/session/session-service.d.ts.map +1 -0
  448. package/dist/zero-token/session/session-service.js +169 -0
  449. package/dist/zero-token/session/session-service.js.map +1 -0
  450. package/dist/zero-token/session/session-types.d.ts +22 -0
  451. package/dist/zero-token/session/session-types.d.ts.map +1 -0
  452. package/dist/zero-token/session/session-types.js +2 -0
  453. package/dist/zero-token/session/session-types.js.map +1 -0
  454. package/dist/zero-token/storage/atomic-json-store.d.ts +10 -0
  455. package/dist/zero-token/storage/atomic-json-store.d.ts.map +1 -0
  456. package/dist/zero-token/storage/atomic-json-store.js +60 -0
  457. package/dist/zero-token/storage/atomic-json-store.js.map +1 -0
  458. package/package.json +59 -0
  459. package/web-console/dist/assets/index-B_4vEorW.css +1 -0
  460. package/web-console/dist/assets/index-DFs1Oo-1.js +27 -0
  461. package/web-console/dist/index.html +20 -0
  462. package/web-console/dist/nova-mark.svg +18 -0
  463. package/web-console/dist/nova-network.svg +36 -0
package/README.md ADDED
@@ -0,0 +1,149 @@
1
+ # FF-ZTN
2
+
3
+ **ForgeFabrik Zero Token Nova** ist ein lokales Enterprise Multi-Provider AI Control Plane mit OpenAI-kompatiblem Gateway, Provider-Runtime, Web-Konsole, Playground und optionalem Coding-Agent.
4
+
5
+ > **Hinweis:** FF-ZTN ist ein inoffizielles, experimentelles Werkzeug. Es ist kein Produkt von OpenAI, Anthropic, Google oder einem anderen unterstützten Anbieter.
6
+
7
+ ## Funktionen
8
+
9
+ - **Multi-Provider-Gateway** für ChatGPT Web, Claude Web, Gemini Web, DeepSeek, Qwen, GLM und weitere Provider
10
+ - **OpenAI-kompatible Endpunkte** für `/v1/models`, `/v1/responses` und `/v1/chat/completions`
11
+ - **Enterprise Web-Konsole** mit dichten Provider-, Account- und Modelllisten
12
+ - **Persistentes Terminal-Dock** mit CLI-, Live-Log- und Login-Job-Tabs
13
+ - **FF-ZTN Agent** als Integration des MIT-lizenzierten Projekts `yoyo-evolve`
14
+ - **Lokale Speicherung** mit restriktiven Dateiberechtigungen und redigierter Admin-API
15
+ - **Einheitlicher CLI-Befehl:** ausschließlich `ztn`
16
+
17
+ ## Voraussetzungen
18
+
19
+ - Node.js `>= 22.15.0`
20
+ - npm oder pnpm
21
+ - Chrome oder Chromium für Web-Logins
22
+ - optional Rust/Cargo für den Coding-Agent
23
+
24
+ ## Installation über npm
25
+
26
+ ```bash
27
+ npm install --global @forgefabrik/ff-ztn
28
+ ztn --help
29
+ ```
30
+
31
+ ## Installation aus dem Repository
32
+
33
+ ```bash
34
+ npm ci
35
+ npm run build
36
+ npm run ui:build
37
+ npm link
38
+ ztn --help
39
+ ```
40
+
41
+ ## Schnellstart
42
+
43
+ ```bash
44
+ # Provider anzeigen und anmelden
45
+ ztn providers list
46
+ ztn login --provider=chatgpt-web
47
+
48
+ # Modelle aktualisieren
49
+ ztn models refresh
50
+ ztn models list
51
+
52
+ # Gateway starten
53
+ ztn start
54
+ ```
55
+
56
+ Das Gateway bindet standardmäßig an `127.0.0.1:3000`.
57
+
58
+ ## FF-ZTN Agent
59
+
60
+ FF-ZTN integriert `yoyo-evolve` als separates Agent-Backend. Der Rust-Quellbaum wird nicht dupliziert. Stattdessen startet FF-ZTN das installierte `yoyo`-Binary mit dessen `custom`-Provider gegen das lokale OpenAI-kompatible Gateway.
61
+
62
+ ```bash
63
+ # yoyo-agent über Cargo installieren
64
+ ztn agent install
65
+
66
+ # Projektkonfiguration erzeugen
67
+ ztn agent init
68
+
69
+ # Binary und Gateway prüfen
70
+ ztn agent doctor
71
+
72
+ # Agent starten
73
+ ztn agent --model gpt-4o
74
+ ```
75
+
76
+ Zusätzliche Argumente werden nur nach `--` an das Agent-Backend weitergegeben:
77
+
78
+ ```bash
79
+ ztn agent --model gpt-4o -- --quiet
80
+ ```
81
+
82
+ `ztn agent init` erzeugt, sofern noch nicht vorhanden:
83
+
84
+ - `.yoyo.toml` mit `provider = "custom"` und der lokalen FF-ZTN-Gateway-URL
85
+ - `.yoyo/instructions.md` mit Sicherheits- und Projektregeln
86
+
87
+ ## Web-Konsole
88
+
89
+ ```bash
90
+ npm run ui:build
91
+ ztn start
92
+ ```
93
+
94
+ Die Web-Konsole enthält:
95
+
96
+ - Streaming-Playground
97
+ - Provider-Runtime-Matrix mit kleinen Statusdioden
98
+ - persistente Filter, Navigation und Tabellenansichten
99
+ - Account- und Session-Verwaltung
100
+ - Modellfilter und Cache-Aktualisierung
101
+ - ausfahrbares Terminal-Dock für CLI, Live-Logs und Login-Jobs
102
+ - sichere, redigierte Konfigurationsansicht
103
+
104
+ ## Konfiguration und Migration
105
+
106
+ Bestehende interne Datenpfade bleiben absichtlich kompatibel, damit Accounts, Sessions und Browserprofile bei der Umbenennung nicht verloren gehen:
107
+
108
+ ```text
109
+ ~/.config/nova/
110
+ ```
111
+
112
+ Ein älterer Datenordner unter `~/.config/zero-token/` wird weiterhin erkannt. Ein expliziter Pfad kann mit `NOVA_HOME` gesetzt werden. Diese internen Kompatibilitätsnamen ändern nicht den öffentlichen CLI-Befehl `ztn`.
113
+
114
+ ## npm-Veröffentlichung
115
+
116
+ Der Workflow `.github/workflows/npm-publish.yml` führt vor jeder Veröffentlichung aus:
117
+
118
+ ```text
119
+ npm ci
120
+ npm run typecheck
121
+ npm test
122
+ npm run build
123
+ npm run ui:build
124
+ npm pack --dry-run
125
+ npm publish --access public
126
+ ```
127
+
128
+ Der Standardname ist `@forgefabrik/ff-ztn`. Beim manuellen Workflow-Start kann alternativ der Scope `osteyshoit` gewählt werden. Der Registry-Token wird ausschließlich als GitHub-Actions-Secret `NPM_TOKEN` verwendet.
129
+
130
+ ## Sicherheit
131
+
132
+ - Passwörter werden nicht gespeichert
133
+ - Cookies, Tokens und API-Schlüssel werden nicht im Frontend angezeigt
134
+ - sensible Werte müssen aus Logs redigiert werden
135
+ - Account-Dateien verwenden restriktive Berechtigungen (`0600`)
136
+ - das Gateway ist standardmäßig nur lokal erreichbar
137
+ - der Agent erhält keine Browser-Cookies oder Account-Dateien, sondern nur Zugriff auf das lokale `/v1`-Gateway
138
+
139
+ ## Drittanbieter
140
+
141
+ FF-ZTN integriert das eigenständige Projekt `yoyo-evolve` von yologdev als optionales ausführbares Backend. Das Projekt steht unter der MIT-Lizenz. Details stehen in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md).
142
+
143
+ ## Lizenz
144
+
145
+ FF-ZTN steht unter der MIT-Lizenz.
146
+
147
+ ## Implementierungsplan
148
+
149
+ Der bestehende Architektur- und Implementierungsplan befindet sich unter [`docs/zero-token/impl-plan.md`](docs/zero-token/impl-plan.md). Historische Pfade bleiben während der Migration bestehen.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=discover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import { getDiscoveredModelCandidates, getDiscoverySnapshot, runProviderDiscovery, } from "./zero-token/discovery/discovery-service.js";
3
+ const command = process.argv[2] ?? "list";
4
+ if (command === "scan") {
5
+ const snapshot = await runProviderDiscovery();
6
+ console.log(JSON.stringify(snapshot, null, 2));
7
+ process.exitCode = snapshot.errors.length > 0 ? 1 : 0;
8
+ }
9
+ else if (command === "models") {
10
+ console.log(JSON.stringify(await getDiscoveredModelCandidates(), null, 2));
11
+ }
12
+ else {
13
+ const snapshot = await getDiscoverySnapshot();
14
+ for (const provider of snapshot.providers) {
15
+ console.log(`${provider.id.padEnd(24)} ${provider.status.padEnd(10)} ${provider.label} (${provider.models.length} Modelle)`);
16
+ }
17
+ }
18
+ //# sourceMappingURL=discover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,4BAA4B,EAC5B,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,6CAA6C,CAAC;AAErD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;AAE1C,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,4BAA4B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC;KAAM,CAAC;IACN,MAAM,QAAQ,GAAG,MAAM,oBAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CACT,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,WAAW,CAChH,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=genericagent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericagent.d.ts","sourceRoot":"","sources":["../src/genericagent.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+ import { configureGenericAgent, getGenericAgentStatus, runGenericAgent, } from "./zero-token/agent/external-backend.js";
3
+ const args = process.argv.slice(2);
4
+ const command = args[0] ?? "doctor";
5
+ function option(name) {
6
+ const inline = args.find((arg) => arg.startsWith(`--${name}=`));
7
+ if (inline)
8
+ return inline.slice(name.length + 3);
9
+ const index = args.indexOf(`--${name}`);
10
+ return index >= 0 ? args[index + 1] : undefined;
11
+ }
12
+ const settings = {
13
+ sourceDir: option("source-dir"),
14
+ gatewayUrl: option("base-url"),
15
+ model: option("model"),
16
+ binary: option("binary"),
17
+ };
18
+ if (command === "init") {
19
+ const path = await configureGenericAgent(settings);
20
+ console.error(`Nova-Konfiguration erstellt: ${path}`);
21
+ }
22
+ else if (command === "run") {
23
+ const status = await getGenericAgentStatus(settings);
24
+ if (!status.installed || !status.configured || !status.gatewayReachable) {
25
+ console.error("GenericAgent ist nicht bereit. Führe zuerst nova-ga doctor und nova-ga init aus.");
26
+ process.exitCode = 1;
27
+ }
28
+ else {
29
+ process.exitCode = await runGenericAgent({
30
+ ...settings,
31
+ frontend: (option("frontend") ?? "cli"),
32
+ });
33
+ }
34
+ }
35
+ else {
36
+ const status = await getGenericAgentStatus(settings);
37
+ console.log(JSON.stringify(status, null, 2));
38
+ process.exitCode = status.installed && status.configured && status.gatewayReachable ? 0 : 1;
39
+ }
40
+ //# sourceMappingURL=genericagent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genericagent.js","sourceRoot":"","sources":["../src/genericagent.ts"],"names":[],"mappings":";AAEA,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,GAChB,MAAM,wCAAwC,CAAC;AAEhD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;AAEpC,SAAS,MAAM,CAAC,IAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC;CACzB,CAAC;AAEF,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,gCAAgC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;KAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QACxE,OAAO,CAAC,KAAK,CAAC,kFAAkF,CAAC,CAAC;QAClG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,QAAQ,GAAG,MAAM,eAAe,CAAC;YACvC,GAAG,QAAQ;YACX,QAAQ,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAsD;SAC7F,CAAC,CAAC;IACL,CAAC;AACH,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9F,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env node
2
+ import { APP_NAME, APP_VERSION, LEGACY_APP_NAME } from "./zero-token/app-meta.js";
3
+ function printHelp() {
4
+ console.error("");
5
+ console.error(` ${APP_NAME} v${APP_VERSION}`);
6
+ console.error(` ${LEGACY_APP_NAME}`);
7
+ console.error(" Enterprise Multi-Provider AI Control Plane");
8
+ console.error("");
9
+ console.error(" Hinweis: Inoffizielles, experimentelles lokales Werkzeug.");
10
+ console.error(" Kein Produkt der unterstützten KI-Anbieter.");
11
+ console.error("");
12
+ console.error(" Verwendung:");
13
+ console.error(" ztn <command> [options]");
14
+ console.error("");
15
+ console.error(" Kernbefehle:");
16
+ console.error(" login --provider=<id> Provider über Browser anmelden");
17
+ console.error(" providers list Unterstützte Provider anzeigen");
18
+ console.error(" start Lokales Gateway starten");
19
+ console.error(" accounts list|validate Accounts und Sessions verwalten");
20
+ console.error(" models list|refresh Modelle anzeigen oder aktualisieren");
21
+ console.error(" status Systemstatus anzeigen");
22
+ console.error(" doctor Systemdiagnose ausführen");
23
+ console.error("");
24
+ console.error(" Coding-Agent:");
25
+ console.error(" agent Agent gegen das lokale Gateway starten");
26
+ console.error(" agent doctor yoyo-Backend und Gateway prüfen");
27
+ console.error(" agent install yoyo-agent über Cargo installieren");
28
+ console.error(" agent init Projekt für FF-ZTN Agent vorbereiten");
29
+ console.error("");
30
+ }
31
+ const args = process.argv.slice(2);
32
+ const command = args[0];
33
+ if (!command || command === "help" || command === "--help" || command === "-h") {
34
+ printHelp();
35
+ }
36
+ else if (command === "--version" || command === "-v" || command === "version") {
37
+ console.log(APP_VERSION);
38
+ }
39
+ else if (command === "agent") {
40
+ const { handleAgentCommand } = await import("./zero-token/agent/cli.js");
41
+ process.exitCode = await handleAgentCommand(args.slice(1));
42
+ }
43
+ else {
44
+ await import("./zero-token/index.js");
45
+ }
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAElF,SAAS,SAAS;IAChB,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,KAAK,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,KAAK,eAAe,EAAE,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAC9D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC7E,OAAO,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC/D,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC/B,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAC7C,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,OAAO,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;IAChF,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACzE,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IACrF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC1E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClB,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACjC,OAAO,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;IACxF,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACjF,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;IACpF,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACtF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,MAAM,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;IAC/E,SAAS,EAAE,CAAC;AACd,CAAC;KAAM,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3B,CAAC;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IAC/B,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACzE,OAAO,CAAC,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ChatGPTPlusAccount } from "./account-types.js";
2
+ export declare function listAccounts(): Promise<ChatGPTPlusAccount[]>;
3
+ export declare function getAccount(id: string): Promise<ChatGPTPlusAccount | null>;
4
+ export declare function saveAccount(account: ChatGPTPlusAccount): Promise<void>;
5
+ export declare function deleteAccount(id: string): Promise<boolean>;
6
+ export declare function accountExists(id: string): Promise<boolean>;
7
+ //# sourceMappingURL=account-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-repository.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAU7D,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAclE;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAGpC;AAED,wBAAsB,WAAW,CAC/B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGhE"}
@@ -0,0 +1,37 @@
1
+ import { readStored, writeStored, deleteFile, listJsonFiles, } from "../storage/atomic-json-store.js";
2
+ import { accountsPath, accountFilePath } from "../config/paths.js";
3
+ import { validateForSave } from "./account-validation.js";
4
+ export async function listAccounts() {
5
+ const dir = accountsPath();
6
+ const files = await listJsonFiles(dir);
7
+ const accounts = [];
8
+ for (const file of files) {
9
+ const id = file.replace(/\.json$/, "");
10
+ const account = await getAccount(id);
11
+ if (account) {
12
+ accounts.push(account);
13
+ }
14
+ }
15
+ return accounts.sort((a, b) => b.priority - a.priority || a.createdAt.localeCompare(b.createdAt));
16
+ }
17
+ export async function getAccount(id) {
18
+ const path = accountFilePath(id);
19
+ return readStored(path);
20
+ }
21
+ export async function saveAccount(account) {
22
+ const validation = validateForSave(account);
23
+ if (!validation.valid) {
24
+ throw new Error(`Ungültige Account-Daten: ${validation.errors.join("; ")}`);
25
+ }
26
+ const path = accountFilePath(account.id);
27
+ await writeStored(path, account);
28
+ }
29
+ export async function deleteAccount(id) {
30
+ const path = accountFilePath(id);
31
+ return deleteFile(path);
32
+ }
33
+ export async function accountExists(id) {
34
+ const account = await getAccount(id);
35
+ return account !== null;
36
+ }
37
+ //# sourceMappingURL=account-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-repository.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-repository.ts"],"names":[],"mappings":"AACA,OAAO,EACL,UAAU,EACV,WAAW,EACX,UAAU,EACV,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,GAAG,GAAG,YAAY,EAAE,CAAC;IAC3B,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAE1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,OAAO,EAAE,CAAC;YACZ,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;AACpG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,EAAU;IAEV,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,UAAU,CAAqB,IAAI,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,MAAM,UAAU,GAAG,eAAe,CAAC,OAA6C,CAAC,CAAC;IAClF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,4BAA4B,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU;IAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,EAAE,CAAC,CAAC;IACjC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAU;IAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,OAAO,KAAK,IAAI,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ChatGPTPlusAccount } from "./account-types.js";
2
+ import { getAccount, listAccounts, saveAccount, deleteAccount } from "./account-repository.js";
3
+ export type MaskedAccount = Omit<ChatGPTPlusAccount, "cookies" | "accessToken">;
4
+ export type CreateAccountData = Partial<Omit<ChatGPTPlusAccount, "id" | "label" | "provider" | "createdAt" | "updatedAt">>;
5
+ declare function generateId(length?: number): string;
6
+ export declare function maskAccount(account: ChatGPTPlusAccount): MaskedAccount;
7
+ export declare function maskEmail(email?: string): string | undefined;
8
+ export declare function createAccount(label: string, provider?: ChatGPTPlusAccount["provider"], data?: CreateAccountData): Promise<ChatGPTPlusAccount>;
9
+ export declare function updateAccount(id: string, updates: Partial<Omit<ChatGPTPlusAccount, "id" | "createdAt">>): Promise<ChatGPTPlusAccount>;
10
+ export { generateId, getAccount, listAccounts, saveAccount, deleteAccount, };
11
+ //# sourceMappingURL=account-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-service.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE/F,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;AAEhF,MAAM,MAAM,iBAAiB,GAAG,OAAO,CACrC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC,CAClF,CAAC;AAIF,iBAAS,UAAU,CAAC,MAAM,SAAK,GAAG,MAAM,CAQvC;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,aAAa,CAGtE;AAED,wBAAgB,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAK5D;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,kBAAkB,CAAC,UAAU,CAAa,EACpD,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,CAyB7B;AAED,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,GAC7D,OAAO,CAAC,kBAAkB,CAAC,CAgB7B;AAED,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { getAccount, listAccounts, saveAccount, deleteAccount } from "./account-repository.js";
2
+ const ID_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789";
3
+ function generateId(length = 12) {
4
+ const bytes = new Uint8Array(length);
5
+ crypto.getRandomValues(bytes);
6
+ let id = "";
7
+ for (let i = 0; i < length; i++) {
8
+ id += ID_CHARS[bytes[i] % ID_CHARS.length];
9
+ }
10
+ return id;
11
+ }
12
+ export function maskAccount(account) {
13
+ const { cookies, accessToken, ...rest } = account;
14
+ return rest;
15
+ }
16
+ export function maskEmail(email) {
17
+ if (!email)
18
+ return undefined;
19
+ const atIndex = email.indexOf("@");
20
+ if (atIndex <= 1)
21
+ return email;
22
+ return email[0] + "***" + email.slice(atIndex);
23
+ }
24
+ export async function createAccount(label, provider = "chatgpt", data = {}) {
25
+ const now = new Date().toISOString();
26
+ const hasCredentials = Boolean(data.cookies?.trim() || data.accessToken?.trim());
27
+ const account = {
28
+ id: generateId(),
29
+ label,
30
+ provider,
31
+ cookies: data.cookies ?? "",
32
+ enabled: data.enabled ?? true,
33
+ priority: data.priority ?? 0,
34
+ sessionStatus: data.sessionStatus ?? (hasCredentials ? "valid" : "unknown"),
35
+ createdAt: now,
36
+ updatedAt: now,
37
+ ...(data.email !== undefined && { email: data.email }),
38
+ ...(data.userId !== undefined && { userId: data.userId }),
39
+ ...(data.workspaceId !== undefined && { workspaceId: data.workspaceId }),
40
+ ...(data.plan !== undefined && { plan: data.plan }),
41
+ ...(data.accessToken !== undefined && { accessToken: data.accessToken }),
42
+ ...(data.userAgent !== undefined && { userAgent: data.userAgent }),
43
+ ...(data.lastUsedAt !== undefined && { lastUsedAt: data.lastUsedAt }),
44
+ ...(data.lastValidatedAt !== undefined && { lastValidatedAt: data.lastValidatedAt }),
45
+ ...(data.usageStatus !== undefined && { usageStatus: data.usageStatus }),
46
+ };
47
+ await saveAccount(account);
48
+ return account;
49
+ }
50
+ export async function updateAccount(id, updates) {
51
+ const existing = await getAccount(id);
52
+ if (!existing) {
53
+ throw new Error(`Account nicht gefunden: ${id}`);
54
+ }
55
+ const updated = {
56
+ ...existing,
57
+ ...updates,
58
+ id: existing.id,
59
+ createdAt: existing.createdAt,
60
+ updatedAt: new Date().toISOString(),
61
+ };
62
+ await saveAccount(updated);
63
+ return updated;
64
+ }
65
+ export { generateId, getAccount, listAccounts, saveAccount, deleteAccount, };
66
+ //# sourceMappingURL=account-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-service.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export type SessionStatus = "unknown" | "valid" | "expired" | "login-required" | "error";
2
+ export type UsageState = "unknown" | "available" | "limited" | "exhausted" | "error";
3
+ /** Internal provider keys kept stable for stored account compatibility. */
4
+ export type ProviderType = "chatgpt" | "claude" | "gemini" | "deepseek" | "grok" | "perplexity" | "qwen" | "qwen-cn" | "kimi" | "doubao" | "glm" | "glm-intl" | "xiaomimo" | "manus";
5
+ /** Canonical public provider IDs used by the CLI, model registry and gateway. */
6
+ export type ProviderId = "chatgpt-web" | "claude-web" | "gemini-web" | "deepseek-web" | "grok-web" | "perplexity-web" | "qwen-web" | "qwen-cn-web" | "kimi-web" | "doubao-web" | "glm-web" | "glm-intl-web" | "xiaomimo-web" | "manus-api";
7
+ export type AccountPlan = "plus" | "pro" | "free" | "unknown";
8
+ export interface UsageStatus {
9
+ state: UsageState;
10
+ resetAt?: string;
11
+ checkedAt?: string;
12
+ error?: string;
13
+ }
14
+ export interface ChatGPTPlusAccount {
15
+ id: string;
16
+ label: string;
17
+ provider: ProviderType;
18
+ email?: string;
19
+ userId?: string;
20
+ workspaceId?: string;
21
+ plan?: AccountPlan;
22
+ cookies: string;
23
+ accessToken?: string;
24
+ userAgent?: string;
25
+ createdAt: string;
26
+ updatedAt: string;
27
+ lastUsedAt?: string;
28
+ lastValidatedAt?: string;
29
+ enabled: boolean;
30
+ priority: number;
31
+ sessionStatus: SessionStatus;
32
+ usageStatus?: UsageStatus;
33
+ }
34
+ export type AccountExportFormat = "json" | "zip";
35
+ export interface ExportAuditRecord {
36
+ id: string;
37
+ createdAt: string;
38
+ accountIds: string[];
39
+ format: AccountExportFormat;
40
+ containsSessionCredentials: boolean;
41
+ }
42
+ //# sourceMappingURL=account-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-types.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,OAAO,GACP,SAAS,GACT,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,WAAW,GACX,SAAS,GACT,WAAW,GACX,OAAO,CAAC;AAEZ,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,MAAM,GACN,YAAY,GACZ,MAAM,GACN,SAAS,GACT,MAAM,GACN,QAAQ,GACR,KAAK,GACL,UAAU,GACV,UAAU,GACV,OAAO,CAAC;AAEZ,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAClB,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,UAAU,GACV,gBAAgB,GAChB,UAAU,GACV,aAAa,GACb,UAAU,GACV,YAAY,GACZ,SAAS,GACT,cAAc,GACd,cAAc,GACd,WAAW,CAAC;AAEhB,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,YAAY,CAAC;IAEvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,aAAa,EAAE,aAAa,CAAC;IAE7B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,0BAA0B,EAAE,OAAO,CAAC;CACrC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=account-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-types.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ export interface ValidationResult {
2
+ valid: boolean;
3
+ errors: string[];
4
+ }
5
+ export declare function validateAccountId(id: unknown): ValidationResult;
6
+ export declare function validateAccountLabel(label: unknown): ValidationResult;
7
+ export declare function validateEmail(email: unknown): ValidationResult;
8
+ export declare function validateCookies(cookies: unknown): ValidationResult;
9
+ export declare function validateSessionCredentials(cookies: unknown, accessToken: unknown, sessionStatus: unknown): ValidationResult;
10
+ export declare function validateSessionStatus(status: unknown): ValidationResult;
11
+ export declare function validateUsageState(state: unknown): ValidationResult;
12
+ export declare function validatePriority(priority: unknown): ValidationResult;
13
+ export declare function validateForSave(account: Record<string, unknown>): ValidationResult;
14
+ //# sourceMappingURL=account-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-validation.d.ts","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-validation.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAeD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,gBAAgB,CAM/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAKrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAO9D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAIlE;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,OAAO,GACrB,gBAAgB,CAclB;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAMvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,gBAAgB,CAMnE;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,GAAG,gBAAgB,CAIpE;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CASlF"}
@@ -0,0 +1,88 @@
1
+ function ok() {
2
+ return { valid: true, errors: [] };
3
+ }
4
+ function err(msg) {
5
+ return { valid: false, errors: [msg] };
6
+ }
7
+ function merge(...results) {
8
+ const errors = results.flatMap((r) => r.errors);
9
+ return { valid: errors.length === 0, errors };
10
+ }
11
+ export function validateAccountId(id) {
12
+ if (typeof id !== "string")
13
+ return err("Account-ID muss ein String sein.");
14
+ if (id.length === 0)
15
+ return err("Account-ID darf nicht leer sein.");
16
+ if (id.length > 128)
17
+ return err("Account-ID darf maximal 128 Zeichen lang sein.");
18
+ if (!/^[a-zA-Z0-9_-]+$/.test(id))
19
+ return err("Account-ID enthält ungültige Zeichen.");
20
+ return ok();
21
+ }
22
+ export function validateAccountLabel(label) {
23
+ if (typeof label !== "string")
24
+ return err("Label muss ein String sein.");
25
+ if (label.trim().length === 0)
26
+ return err("Label darf nicht leer sein.");
27
+ if (label.length > 256)
28
+ return err("Label darf maximal 256 Zeichen lang sein.");
29
+ return ok();
30
+ }
31
+ export function validateEmail(email) {
32
+ if (email === undefined || email === null)
33
+ return ok();
34
+ if (typeof email !== "string")
35
+ return err("E-Mail muss ein String sein.");
36
+ if (email.length > 320)
37
+ return err("E-Mail darf maximal 320 Zeichen lang sein.");
38
+ const simple = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
39
+ if (!simple.test(email))
40
+ return err("E-Mail hat kein gültiges Format.");
41
+ return ok();
42
+ }
43
+ export function validateCookies(cookies) {
44
+ if (typeof cookies !== "string")
45
+ return err("Cookies müssen ein String sein.");
46
+ if (cookies.length === 0)
47
+ return err("Cookies dürfen nicht leer sein.");
48
+ return ok();
49
+ }
50
+ export function validateSessionCredentials(cookies, accessToken, sessionStatus) {
51
+ if (typeof cookies !== "string")
52
+ return err("Cookies müssen ein String sein.");
53
+ if (accessToken !== undefined && accessToken !== null && typeof accessToken !== "string") {
54
+ return err("Access-Token muss ein String sein.");
55
+ }
56
+ const hasCookies = cookies.trim().length > 0;
57
+ const hasAccessToken = typeof accessToken === "string" && accessToken.trim().length > 0;
58
+ const isDraft = sessionStatus === "unknown" || sessionStatus === "login-required";
59
+ if (!hasCookies && !hasAccessToken && !isDraft) {
60
+ return err("Cookies oder Access-Token müssen vorhanden sein.");
61
+ }
62
+ return ok();
63
+ }
64
+ export function validateSessionStatus(status) {
65
+ const allowed = ["unknown", "valid", "expired", "login-required", "error"];
66
+ if (!allowed.includes(status)) {
67
+ return err(`Ungültiger Session-Status: ${status}`);
68
+ }
69
+ return ok();
70
+ }
71
+ export function validateUsageState(state) {
72
+ const allowed = ["unknown", "available", "limited", "exhausted", "error"];
73
+ if (state !== undefined && state !== null && !allowed.includes(state)) {
74
+ return err(`Ungültiger Usage-State: ${state}`);
75
+ }
76
+ return ok();
77
+ }
78
+ export function validatePriority(priority) {
79
+ if (typeof priority !== "number")
80
+ return err("Priorität muss eine Zahl sein.");
81
+ if (!Number.isInteger(priority))
82
+ return err("Priorität muss eine ganze Zahl sein.");
83
+ return ok();
84
+ }
85
+ export function validateForSave(account) {
86
+ return merge(validateAccountId(account.id), validateAccountLabel(account.label), validateEmail(account.email), validateSessionCredentials(account.cookies, account.accessToken, account.sessionStatus), validateSessionStatus(account.sessionStatus), validatePriority(account.priority));
87
+ }
88
+ //# sourceMappingURL=account-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-validation.js","sourceRoot":"","sources":["../../../src/zero-token/accounts/account-validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function handleAgentCommand(args: string[]): Promise<number>;
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/zero-token/agent/cli.ts"],"names":[],"mappings":"AA4CA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmFxE"}