intent-history 7.6.7__tar.gz

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 (288) hide show
  1. intent_history-7.6.7/.claude-plugin/marketplace.json +25 -0
  2. intent_history-7.6.7/.dockerignore +21 -0
  3. intent_history-7.6.7/.github/CODE_OF_CONDUCT.md +29 -0
  4. intent_history-7.6.7/.github/CONTRIBUTING.md +68 -0
  5. intent_history-7.6.7/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  6. intent_history-7.6.7/.github/ISSUE_TEMPLATE/feature_request.md +31 -0
  7. intent_history-7.6.7/.github/PULL_REQUEST_TEMPLATE.md +23 -0
  8. intent_history-7.6.7/.github/SECURITY.md +29 -0
  9. intent_history-7.6.7/.github/workflows/monitor.yml +29 -0
  10. intent_history-7.6.7/.github/workflows/publish.yml +37 -0
  11. intent_history-7.6.7/.github/workflows/test.yml +58 -0
  12. intent_history-7.6.7/.gitignore +45 -0
  13. intent_history-7.6.7/Dockerfile +46 -0
  14. intent_history-7.6.7/LICENSE +21 -0
  15. intent_history-7.6.7/PKG-INFO +190 -0
  16. intent_history-7.6.7/README.md +152 -0
  17. intent_history-7.6.7/README_CN.md +153 -0
  18. intent_history-7.6.7/SKILL.md +57 -0
  19. intent_history-7.6.7/SKILL_CN.md +55 -0
  20. intent_history-7.6.7/agents/openai.yaml +4 -0
  21. intent_history-7.6.7/apps/__init__.py +1 -0
  22. intent_history-7.6.7/apps/inthub_api/__init__.py +1 -0
  23. intent_history-7.6.7/apps/inthub_api/__main__.py +4 -0
  24. intent_history-7.6.7/apps/inthub_api/access.py +43 -0
  25. intent_history-7.6.7/apps/inthub_api/admin.py +91 -0
  26. intent_history-7.6.7/apps/inthub_api/auth.py +270 -0
  27. intent_history-7.6.7/apps/inthub_api/bind_tenon.py +24 -0
  28. intent_history-7.6.7/apps/inthub_api/common.py +32 -0
  29. intent_history-7.6.7/apps/inthub_api/db.py +97 -0
  30. intent_history-7.6.7/apps/inthub_api/db_connection.py +73 -0
  31. intent_history-7.6.7/apps/inthub_api/db_migrate.py +334 -0
  32. intent_history-7.6.7/apps/inthub_api/db_schema.py +449 -0
  33. intent_history-7.6.7/apps/inthub_api/device.py +120 -0
  34. intent_history-7.6.7/apps/inthub_api/history.py +212 -0
  35. intent_history-7.6.7/apps/inthub_api/http_auth.py +248 -0
  36. intent_history-7.6.7/apps/inthub_api/http_base.py +224 -0
  37. intent_history-7.6.7/apps/inthub_api/http_common.py +133 -0
  38. intent_history-7.6.7/apps/inthub_api/http_routes.py +200 -0
  39. intent_history-7.6.7/apps/inthub_api/limits.py +46 -0
  40. intent_history-7.6.7/apps/inthub_api/migrate.py +105 -0
  41. intent_history-7.6.7/apps/inthub_api/product_deletion.py +149 -0
  42. intent_history-7.6.7/apps/inthub_api/projects.py +129 -0
  43. intent_history-7.6.7/apps/inthub_api/queries.py +240 -0
  44. intent_history-7.6.7/apps/inthub_api/revisions.py +82 -0
  45. intent_history-7.6.7/apps/inthub_api/secret_scan.py +43 -0
  46. intent_history-7.6.7/apps/inthub_api/server.py +447 -0
  47. intent_history-7.6.7/apps/inthub_api/teams.py +266 -0
  48. intent_history-7.6.7/apps/inthub_api/tenon.py +220 -0
  49. intent_history-7.6.7/apps/inthub_local/__init__.py +1 -0
  50. intent_history-7.6.7/apps/inthub_local/__main__.py +5 -0
  51. intent_history-7.6.7/apps/inthub_local/launcher.py +111 -0
  52. intent_history-7.6.7/apps/inthub_web/__init__.py +30 -0
  53. intent_history-7.6.7/apps/inthub_web/__main__.py +4 -0
  54. intent_history-7.6.7/apps/inthub_web/server.py +104 -0
  55. intent_history-7.6.7/apps/inthub_web/static/404.html +20 -0
  56. intent_history-7.6.7/apps/inthub_web/static/Inter-LICENSE.txt +92 -0
  57. intent_history-7.6.7/apps/inthub_web/static/InterVariable.woff2 +0 -0
  58. intent_history-7.6.7/apps/inthub_web/static/auth-redirect.html +32 -0
  59. intent_history-7.6.7/apps/inthub_web/static/auth-redirect.js +64 -0
  60. intent_history-7.6.7/apps/inthub_web/static/css/base.css +159 -0
  61. intent_history-7.6.7/apps/inthub_web/static/css/brief.css +202 -0
  62. intent_history-7.6.7/apps/inthub_web/static/css/controls.css +318 -0
  63. intent_history-7.6.7/apps/inthub_web/static/css/dialogs.css +317 -0
  64. intent_history-7.6.7/apps/inthub_web/static/css/flow-cards.css +313 -0
  65. intent_history-7.6.7/apps/inthub_web/static/css/flow.css +265 -0
  66. intent_history-7.6.7/apps/inthub_web/static/css/header.css +359 -0
  67. intent_history-7.6.7/apps/inthub_web/static/css/lists.css +311 -0
  68. intent_history-7.6.7/apps/inthub_web/static/css/login-transition.css +108 -0
  69. intent_history-7.6.7/apps/inthub_web/static/css/menus.css +239 -0
  70. intent_history-7.6.7/apps/inthub_web/static/css/order.txt +25 -0
  71. intent_history-7.6.7/apps/inthub_web/static/css/page.css +258 -0
  72. intent_history-7.6.7/apps/inthub_web/static/css/relations.css +135 -0
  73. intent_history-7.6.7/apps/inthub_web/static/css/responsive-end.css +25 -0
  74. intent_history-7.6.7/apps/inthub_web/static/css/responsive-phone.css +358 -0
  75. intent_history-7.6.7/apps/inthub_web/static/css/responsive.css +50 -0
  76. intent_history-7.6.7/apps/inthub_web/static/css/search.css +218 -0
  77. intent_history-7.6.7/apps/inthub_web/static/css/settings.css +331 -0
  78. intent_history-7.6.7/apps/inthub_web/static/css/setup.css +207 -0
  79. intent_history-7.6.7/apps/inthub_web/static/css/sheet.css +344 -0
  80. intent_history-7.6.7/apps/inthub_web/static/css/signin.css +320 -0
  81. intent_history-7.6.7/apps/inthub_web/static/css/site-footer.css +114 -0
  82. intent_history-7.6.7/apps/inthub_web/static/css/site-pages.css +89 -0
  83. intent_history-7.6.7/apps/inthub_web/static/css/timeline.css +340 -0
  84. intent_history-7.6.7/apps/inthub_web/static/css/toast.css +40 -0
  85. intent_history-7.6.7/apps/inthub_web/static/css/tokens.css +123 -0
  86. intent_history-7.6.7/apps/inthub_web/static/help.js +87 -0
  87. intent_history-7.6.7/apps/inthub_web/static/i18n.js +322 -0
  88. intent_history-7.6.7/apps/inthub_web/static/index.html +377 -0
  89. intent_history-7.6.7/apps/inthub_web/static/inthub-mark.svg +11 -0
  90. intent_history-7.6.7/apps/inthub_web/static/js/api.js +75 -0
  91. intent_history-7.6.7/apps/inthub_web/static/js/auth.js +112 -0
  92. intent_history-7.6.7/apps/inthub_web/static/js/checkpoint.js +143 -0
  93. intent_history-7.6.7/apps/inthub_web/static/js/confirm.js +51 -0
  94. intent_history-7.6.7/apps/inthub_web/static/js/decisions.js +73 -0
  95. intent_history-7.6.7/apps/inthub_web/static/js/device.js +90 -0
  96. intent_history-7.6.7/apps/inthub_web/static/js/events-content.js +327 -0
  97. intent_history-7.6.7/apps/inthub_web/static/js/events-shell.js +282 -0
  98. intent_history-7.6.7/apps/inthub_web/static/js/flow-curves.js +208 -0
  99. intent_history-7.6.7/apps/inthub_web/static/js/flow-layout.js +255 -0
  100. intent_history-7.6.7/apps/inthub_web/static/js/flow-routes.js +179 -0
  101. intent_history-7.6.7/apps/inthub_web/static/js/flow-svg.js +183 -0
  102. intent_history-7.6.7/apps/inthub_web/static/js/flow-view.js +191 -0
  103. intent_history-7.6.7/apps/inthub_web/static/js/format.js +183 -0
  104. intent_history-7.6.7/apps/inthub_web/static/js/history.js +165 -0
  105. intent_history-7.6.7/apps/inthub_web/static/js/home.js +61 -0
  106. intent_history-7.6.7/apps/inthub_web/static/js/icons.js +72 -0
  107. intent_history-7.6.7/apps/inthub_web/static/js/init.js +51 -0
  108. intent_history-7.6.7/apps/inthub_web/static/js/intents.js +114 -0
  109. intent_history-7.6.7/apps/inthub_web/static/js/invite.js +77 -0
  110. intent_history-7.6.7/apps/inthub_web/static/js/order.txt +41 -0
  111. intent_history-7.6.7/apps/inthub_web/static/js/overview.js +219 -0
  112. intent_history-7.6.7/apps/inthub_web/static/js/project-data.js +161 -0
  113. intent_history-7.6.7/apps/inthub_web/static/js/project-loading.js +233 -0
  114. intent_history-7.6.7/apps/inthub_web/static/js/project-picker.js +55 -0
  115. intent_history-7.6.7/apps/inthub_web/static/js/project-settings.js +347 -0
  116. intent_history-7.6.7/apps/inthub_web/static/js/relations.js +127 -0
  117. intent_history-7.6.7/apps/inthub_web/static/js/render-parts.js +119 -0
  118. intent_history-7.6.7/apps/inthub_web/static/js/routes.js +99 -0
  119. intent_history-7.6.7/apps/inthub_web/static/js/search.js +202 -0
  120. intent_history-7.6.7/apps/inthub_web/static/js/select.js +94 -0
  121. intent_history-7.6.7/apps/inthub_web/static/js/settings-dialog.js +311 -0
  122. intent_history-7.6.7/apps/inthub_web/static/js/settings-layout.js +82 -0
  123. intent_history-7.6.7/apps/inthub_web/static/js/setup-guide.js +88 -0
  124. intent_history-7.6.7/apps/inthub_web/static/js/sheet.js +355 -0
  125. intent_history-7.6.7/apps/inthub_web/static/js/showcase.js +56 -0
  126. intent_history-7.6.7/apps/inthub_web/static/js/site-pages.js +101 -0
  127. intent_history-7.6.7/apps/inthub_web/static/js/state.js +120 -0
  128. intent_history-7.6.7/apps/inthub_web/static/js/team-page.js +310 -0
  129. intent_history-7.6.7/apps/inthub_web/static/js/teams.js +136 -0
  130. intent_history-7.6.7/apps/inthub_web/static/js/timeline.js +224 -0
  131. intent_history-7.6.7/apps/inthub_web/static/js/workspace.js +148 -0
  132. intent_history-7.6.7/apps/inthub_web/static/og.png +0 -0
  133. intent_history-7.6.7/apps/inthub_web/static/privacy.html +98 -0
  134. intent_history-7.6.7/apps/inthub_web/static/robots.txt +4 -0
  135. intent_history-7.6.7/apps/inthub_web/static/security.txt +5 -0
  136. intent_history-7.6.7/apps/inthub_web/static/tenon-mark.svg +1 -0
  137. intent_history-7.6.7/apps/inthub_web/static/theme.js +62 -0
  138. intent_history-7.6.7/deploy/inthub/backup.sh +168 -0
  139. intent_history-7.6.7/deploy/inthub/bootstrap-gitee-deployment.sh +65 -0
  140. intent_history-7.6.7/deploy/inthub/build-release.sh +270 -0
  141. intent_history-7.6.7/deploy/inthub/compose.yaml +90 -0
  142. intent_history-7.6.7/deploy/inthub/inthub.caddy +29 -0
  143. intent_history-7.6.7/deploy/inthub/inthub.env.example +20 -0
  144. intent_history-7.6.7/deploy/inthub/prepare-release-env.sh +79 -0
  145. intent_history-7.6.7/deploy/inthub/qualify-release.sh +158 -0
  146. intent_history-7.6.7/deploy/inthub/release-from-gitee.sh +144 -0
  147. intent_history-7.6.7/deploy/inthub/release.sh +68 -0
  148. intent_history-7.6.7/deploy/inthub/release_manifest.py +825 -0
  149. intent_history-7.6.7/deploy/inthub/remote-release.sh +606 -0
  150. intent_history-7.6.7/deploy/inthub/runtime-images.lock.json +12 -0
  151. intent_history-7.6.7/deploy/inthub/smoke.sh +91 -0
  152. intent_history-7.6.7/docs/CN/cli.md +414 -0
  153. intent_history-7.6.7/docs/CN/continuation-case.md +78 -0
  154. intent_history-7.6.7/docs/CN/dogfooding.md +54 -0
  155. intent_history-7.6.7/docs/CN/intent-flow.md +102 -0
  156. intent_history-7.6.7/docs/CN/inthub-collaboration.md +145 -0
  157. intent_history-7.6.7/docs/CN/semantic-git.md +101 -0
  158. intent_history-7.6.7/docs/CN/vision.md +85 -0
  159. intent_history-7.6.7/docs/EN/cli.md +414 -0
  160. intent_history-7.6.7/docs/EN/continuation-case.md +78 -0
  161. intent_history-7.6.7/docs/EN/dogfooding.md +54 -0
  162. intent_history-7.6.7/docs/EN/intent-flow.md +102 -0
  163. intent_history-7.6.7/docs/EN/inthub-collaboration.md +145 -0
  164. intent_history-7.6.7/docs/EN/semantic-git.md +101 -0
  165. intent_history-7.6.7/docs/EN/vision.md +85 -0
  166. intent_history-7.6.7/docs/assets/inthub-flow-dark.png +0 -0
  167. intent_history-7.6.7/docs/assets/inthub-flow-light.png +0 -0
  168. intent_history-7.6.7/docs/assets/inthub-flow-zh-dark.png +0 -0
  169. intent_history-7.6.7/docs/assets/inthub-flow-zh-light.png +0 -0
  170. intent_history-7.6.7/docs/assets/resume-demo-zh.gif +0 -0
  171. intent_history-7.6.7/docs/assets/resume-demo.gif +0 -0
  172. intent_history-7.6.7/docs/releases/v7.0.0.md +36 -0
  173. intent_history-7.6.7/docs/releases/v7.0.1.md +10 -0
  174. intent_history-7.6.7/docs/releases/v7.1.0.md +46 -0
  175. intent_history-7.6.7/docs/releases/v7.2.0.md +39 -0
  176. intent_history-7.6.7/docs/releases/v7.2.1.md +31 -0
  177. intent_history-7.6.7/docs/releases/v7.3.0.md +27 -0
  178. intent_history-7.6.7/docs/releases/v7.4.0.md +30 -0
  179. intent_history-7.6.7/docs/releases/v7.5.0.md +43 -0
  180. intent_history-7.6.7/docs/releases/v7.5.1.md +22 -0
  181. intent_history-7.6.7/docs/releases/v7.6.0.md +41 -0
  182. intent_history-7.6.7/docs/releases/v7.6.1.md +11 -0
  183. intent_history-7.6.7/docs/releases/v7.6.2.md +16 -0
  184. intent_history-7.6.7/docs/releases/v7.6.3.md +15 -0
  185. intent_history-7.6.7/docs/releases/v7.6.4.md +8 -0
  186. intent_history-7.6.7/docs/releases/v7.6.5.md +10 -0
  187. intent_history-7.6.7/docs/releases/v7.6.6.md +12 -0
  188. intent_history-7.6.7/docs/releases/v7.6.7.md +9 -0
  189. intent_history-7.6.7/intent_history.egg-info/PKG-INFO +190 -0
  190. intent_history-7.6.7/intent_history.egg-info/SOURCES.txt +286 -0
  191. intent_history-7.6.7/intent_history.egg-info/dependency_links.txt +1 -0
  192. intent_history-7.6.7/intent_history.egg-info/entry_points.txt +2 -0
  193. intent_history-7.6.7/intent_history.egg-info/requires.txt +21 -0
  194. intent_history-7.6.7/intent_history.egg-info/scm_file_list.json +282 -0
  195. intent_history-7.6.7/intent_history.egg-info/scm_version.json +8 -0
  196. intent_history-7.6.7/intent_history.egg-info/top_level.txt +2 -0
  197. intent_history-7.6.7/pyproject.toml +63 -0
  198. intent_history-7.6.7/references/claude-code-hooks.md +48 -0
  199. intent_history-7.6.7/references/codex-hooks.md +71 -0
  200. intent_history-7.6.7/references/execution.md +32 -0
  201. intent_history-7.6.7/references/onboarding.md +45 -0
  202. intent_history-7.6.7/references/pull.md +15 -0
  203. intent_history-7.6.7/references/sync.md +23 -0
  204. intent_history-7.6.7/scripts/changed_tests.py +63 -0
  205. intent_history-7.6.7/scripts/install.ps1 +90 -0
  206. intent_history-7.6.7/scripts/install.sh +91 -0
  207. intent_history-7.6.7/scripts/itt_argv.py +166 -0
  208. intent_history-7.6.7/setup.cfg +4 -0
  209. intent_history-7.6.7/src/intent_cli/__init__.py +14 -0
  210. intent_history-7.6.7/src/intent_cli/__main__.py +3 -0
  211. intent_history-7.6.7/src/intent_cli/cli.py +403 -0
  212. intent_history-7.6.7/src/intent_cli/commands/__init__.py +1 -0
  213. intent_history-7.6.7/src/intent_cli/commands/auth.py +181 -0
  214. intent_history-7.6.7/src/intent_cli/commands/common.py +60 -0
  215. intent_history-7.6.7/src/intent_cli/commands/core.py +207 -0
  216. intent_history-7.6.7/src/intent_cli/commands/hub.py +21 -0
  217. intent_history-7.6.7/src/intent_cli/commands/intents.py +373 -0
  218. intent_history-7.6.7/src/intent_cli/commands/maintenance.py +147 -0
  219. intent_history-7.6.7/src/intent_cli/commands/records.py +175 -0
  220. intent_history-7.6.7/src/intent_cli/commands/shared.py +296 -0
  221. intent_history-7.6.7/src/intent_cli/hub/__init__.py +1 -0
  222. intent_history-7.6.7/src/intent_cli/hub/changes.py +50 -0
  223. intent_history-7.6.7/src/intent_cli/hub/client.py +236 -0
  224. intent_history-7.6.7/src/intent_cli/hub/credentials.py +244 -0
  225. intent_history-7.6.7/src/intent_cli/hub/rebase.py +96 -0
  226. intent_history-7.6.7/src/intent_cli/hub/restore.py +331 -0
  227. intent_history-7.6.7/src/intent_cli/hub/runtime.py +68 -0
  228. intent_history-7.6.7/src/intent_cli/hub/snapshots.py +112 -0
  229. intent_history-7.6.7/src/intent_cli/hub/versions.py +39 -0
  230. intent_history-7.6.7/src/intent_cli/identity.py +63 -0
  231. intent_history-7.6.7/src/intent_cli/maintenance.py +241 -0
  232. intent_history-7.6.7/src/intent_cli/maintenance_hooks.py +361 -0
  233. intent_history-7.6.7/src/intent_cli/origin.py +57 -0
  234. intent_history-7.6.7/src/intent_cli/output.py +72 -0
  235. intent_history-7.6.7/src/intent_cli/relations.py +140 -0
  236. intent_history-7.6.7/src/intent_cli/render.py +373 -0
  237. intent_history-7.6.7/src/intent_cli/render_text.py +179 -0
  238. intent_history-7.6.7/src/intent_cli/store.py +439 -0
  239. intent_history-7.6.7/src/intent_cli/store_errors.py +69 -0
  240. intent_history-7.6.7/src/intent_cli/store_graph.py +143 -0
  241. intent_history-7.6.7/src/intent_cli/store_lock.py +104 -0
  242. intent_history-7.6.7/src/intent_cli/store_paths.py +69 -0
  243. intent_history-7.6.7/src/intent_cli/store_schema.py +246 -0
  244. intent_history-7.6.7/tests/cli_support.py +174 -0
  245. intent_history-7.6.7/tests/conftest.py +29 -0
  246. intent_history-7.6.7/tests/inthub_theme_logic.cjs +98 -0
  247. intent_history-7.6.7/tests/test_cli_global.py +141 -0
  248. intent_history-7.6.7/tests/test_cli_hub.py +207 -0
  249. intent_history-7.6.7/tests/test_cli_inspect.py +240 -0
  250. intent_history-7.6.7/tests/test_cli_objects.py +345 -0
  251. intent_history-7.6.7/tests/test_cli_storage.py +354 -0
  252. intent_history-7.6.7/tests/test_hub_client.py +359 -0
  253. intent_history-7.6.7/tests/test_hub_credentials.py +122 -0
  254. intent_history-7.6.7/tests/test_hub_runtime.py +83 -0
  255. intent_history-7.6.7/tests/test_identity.py +322 -0
  256. intent_history-7.6.7/tests/test_inthub_api_server.py +608 -0
  257. intent_history-7.6.7/tests/test_inthub_auth.py +79 -0
  258. intent_history-7.6.7/tests/test_inthub_db.py +101 -0
  259. intent_history-7.6.7/tests/test_inthub_deployment.py +513 -0
  260. intent_history-7.6.7/tests/test_inthub_device_login.py +149 -0
  261. intent_history-7.6.7/tests/test_inthub_hosted_limits.py +179 -0
  262. intent_history-7.6.7/tests/test_inthub_local.py +92 -0
  263. intent_history-7.6.7/tests/test_inthub_postgres.py +257 -0
  264. intent_history-7.6.7/tests/test_inthub_product_deletion.py +186 -0
  265. intent_history-7.6.7/tests/test_inthub_projects.py +215 -0
  266. intent_history-7.6.7/tests/test_inthub_queries.py +59 -0
  267. intent_history-7.6.7/tests/test_inthub_teams.py +508 -0
  268. intent_history-7.6.7/tests/test_inthub_tenon.py +189 -0
  269. intent_history-7.6.7/tests/test_inthub_web_ui.py +380 -0
  270. intent_history-7.6.7/tests/test_itt_argv.py +170 -0
  271. intent_history-7.6.7/tests/test_maintenance.py +778 -0
  272. intent_history-7.6.7/tests/test_origin.py +31 -0
  273. intent_history-7.6.7/tests/test_output.py +112 -0
  274. intent_history-7.6.7/tests/test_relations.py +255 -0
  275. intent_history-7.6.7/tests/test_shared_history.py +447 -0
  276. intent_history-7.6.7/tests/test_snapshot_restore.py +665 -0
  277. intent_history-7.6.7/tests/test_store_security.py +342 -0
  278. intent_history-7.6.7/tests/web/flow-and-paging.cjs +498 -0
  279. intent_history-7.6.7/tests/web/harness.cjs +314 -0
  280. intent_history-7.6.7/tests/web/header-menus.cjs +186 -0
  281. intent_history-7.6.7/tests/web/history.cjs +202 -0
  282. intent_history-7.6.7/tests/web/home-and-visitors.cjs +320 -0
  283. intent_history-7.6.7/tests/web/invites.cjs +84 -0
  284. intent_history-7.6.7/tests/web/redirect.cjs +50 -0
  285. intent_history-7.6.7/tests/web/run.cjs +25 -0
  286. intent_history-7.6.7/tests/web/settings.cjs +383 -0
  287. intent_history-7.6.7/tests/web/teams.cjs +268 -0
  288. intent_history-7.6.7/tests/web/view-controllers.cjs +223 -0
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "intent",
3
+ "owner": {
4
+ "name": "Zeng Deyang"
5
+ },
6
+ "metadata": {
7
+ "description": "Intent semantic history for agent-driven development."
8
+ },
9
+ "plugins": [
10
+ {
11
+ "name": "intent-cli",
12
+ "description": "Instructions for quiet, continuous Intent semantic maintenance with the itt CLI. Ships the Skill only: no hooks, and no project is enabled by installing it.",
13
+ "source": "./",
14
+ "homepage": "https://github.com/dozybot001/Intent",
15
+ "repository": "https://github.com/dozybot001/Intent",
16
+ "license": "MIT",
17
+ "keywords": [
18
+ "intent",
19
+ "semantic-history",
20
+ "agent",
21
+ "continuation"
22
+ ]
23
+ }
24
+ ]
25
+ }
@@ -0,0 +1,21 @@
1
+ .git
2
+ .venv
3
+ .pytest_cache
4
+ .intent
5
+ .inthub
6
+ build
7
+ dist
8
+ __pycache__
9
+ *.pyc
10
+ *.pyo
11
+ *.egg-info
12
+ htmlcov
13
+ .github
14
+ .claude
15
+ .codex
16
+ deploy
17
+ docs
18
+ scripts
19
+ tests
20
+ SKILL.md
21
+ SKILL_CN.md
@@ -0,0 +1,29 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We are committed to making participation in this project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6
+
7
+ ## Our Standards
8
+
9
+ Examples of behavior that contributes to a positive environment:
10
+
11
+ - Using welcoming and inclusive language
12
+ - Being respectful of differing viewpoints and experiences
13
+ - Gracefully accepting constructive criticism
14
+ - Focusing on what is best for the community
15
+
16
+ Examples of unacceptable behavior:
17
+
18
+ - Trolling, insulting or derogatory comments, and personal or political attacks
19
+ - Public or private harassment
20
+ - Publishing others' private information without explicit permission
21
+ - Other conduct which could reasonably be considered inappropriate
22
+
23
+ ## Enforcement
24
+
25
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting the maintainers. All complaints will be reviewed and investigated.
26
+
27
+ ## Attribution
28
+
29
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.
@@ -0,0 +1,68 @@
1
+ # Contributing to Intent
2
+
3
+ Thanks for your interest in contributing to Intent.
4
+
5
+ ## Getting Started
6
+
7
+ ```bash
8
+ git clone https://github.com/dozybot001/Intent.git
9
+ cd Intent
10
+ python3 -m venv .venv && source .venv/bin/activate
11
+ pip install -e ".[server,release]" # IntHub server dependencies + pytest
12
+ ```
13
+
14
+ Run tests before opening a PR (Node.js is needed for the web UI logic tests):
15
+
16
+ ```bash
17
+ python -m pytest -q # the full suite
18
+ python scripts/changed_tests.py # only the tests your uncommitted changes affect
19
+ ```
20
+
21
+ Pass a commit, such as `python scripts/changed_tests.py HEAD~2`, to include what changed since then.
22
+
23
+ PostgreSQL integration tests are skipped unless `INTHUB_TEST_POSTGRES_URL` points at a disposable database, for example one started with `docker run --rm -e POSTGRES_PASSWORD=test -p 5432:5432 postgres`.
24
+
25
+ To work on the agent skill locally, install it from your checkout with `npx skills add ./ -g -a claude-code -a codex`.
26
+
27
+ ## Development Workflow
28
+
29
+ This repo dogfoods Intent, and maintainers record milestones with `itt`.
30
+ You don't need to use Intent to contribute.
31
+ If you want to try it, `itt inspect` shows the current state.
32
+ `.intent/` is not in Git, so run `itt init` first in a fresh clone.
33
+
34
+ ## Reporting Bugs
35
+
36
+ Open a [GitHub issue](https://github.com/dozybot001/Intent/issues/new?template=bug_report.md) with:
37
+
38
+ - What you expected to happen
39
+ - What actually happened
40
+ - The `itt` command and its JSON output
41
+ - Your Python version and OS
42
+
43
+ ## Submitting Changes
44
+
45
+ 1. Fork the repo and create a branch
46
+ 2. Make your changes and add tests when behavior changes
47
+ 3. Run `python -m pytest -q` and confirm all tests pass
48
+ 4. Open a pull request with a clear description
49
+
50
+ ## Project Structure
51
+
52
+ ```text
53
+ src/intent_cli/ CLI (`itt`), standard library only
54
+ apps/inthub_api/ IntHub server: API, auth, history storage
55
+ apps/inthub_web/ IntHub web app (static, no build step)
56
+ apps/inthub_local/ `itt hub start` launcher for a local IntHub
57
+ SKILL.md, references/ Agent skill and its on-demand references
58
+ scripts/ Installers and the skill's argv adapter
59
+ deploy/inthub/ Production release tooling (maintainers)
60
+ docs/ User documentation (EN and CN)
61
+ tests/ Test suite (pytest + Node logic tests)
62
+ ```
63
+
64
+ ## Code Style
65
+
66
+ - Keep it simple. Don't over-engineer.
67
+ - No external dependencies for the CLI.
68
+ - Add tests for new commands and behavior changes.
@@ -0,0 +1,38 @@
1
+ ---
2
+ name: Bug Report
3
+ about: Report a bug in the Intent CLI or IntHub
4
+ title: "[Bug] "
5
+ labels: bug
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Describe the bug
10
+
11
+ Describe the bug clearly.
12
+
13
+ ## To reproduce
14
+
15
+ List the steps or `itt` commands needed to reproduce it.
16
+
17
+ ```bash
18
+ itt <command>
19
+ ```
20
+
21
+ ## Expected behavior
22
+
23
+ What did you expect to happen?
24
+
25
+ ## Actual behavior
26
+
27
+ What actually happened? Paste the JSON output if applicable.
28
+
29
+ ```json
30
+
31
+ ```
32
+
33
+ ## Environment
34
+
35
+ - OS:
36
+ - Python version:
37
+ - Intent version (`itt version`):
38
+ - Agent (if applicable): Claude Code / Cursor / Codex / other
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: Feature Request
3
+ about: Suggest an idea for Intent
4
+ title: "[Feature] "
5
+ labels: enhancement
6
+ assignees: ''
7
+ ---
8
+
9
+ ## Problem
10
+
11
+ What problem does this feature solve?
12
+
13
+ ## Proposed solution
14
+
15
+ Describe the feature or change you would like to see.
16
+
17
+ ## Affected area
18
+
19
+ - [ ] Intent CLI
20
+ - [ ] IntHub Local
21
+ - [ ] Agent skill
22
+ - [ ] Documentation
23
+ - [ ] Other
24
+
25
+ ## Alternatives considered
26
+
27
+ Any alternative solutions or approaches you have considered.
28
+
29
+ ## Additional context
30
+
31
+ Any extra context, examples, or references.
@@ -0,0 +1,23 @@
1
+ Please fill this out in English.
2
+
3
+ ## What does this PR do?
4
+
5
+ Brief description of the change.
6
+
7
+ ## Type
8
+
9
+ - [ ] Bug fix
10
+ - [ ] New feature
11
+ - [ ] Refactoring
12
+ - [ ] Documentation
13
+ - [ ] Skill / tooling update
14
+
15
+ ## Checklist
16
+
17
+ - [ ] `python -m pytest -q` passes when behavior changed
18
+ - [ ] Tested manually with `itt <relevant commands>` when applicable
19
+ - [ ] Documentation updated when behavior or UX changed
20
+
21
+ ## Related
22
+
23
+ Link to issue, intent ID, or decision ID if applicable.
@@ -0,0 +1,29 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ | ------- | --------- |
7
+ | 7.x | :white_check_mark: |
8
+ | < 7.0 | :x: |
9
+
10
+ ## Reporting a Vulnerability
11
+
12
+ If you discover a security vulnerability in Intent CLI or IntHub, report it privately through [GitHub's private vulnerability reporting](https://github.com/dozybot001/Intent/security/advisories/new) (repository **Security** tab → **Report a vulnerability**). Do not disclose user data, credentials, or an unpatched exploit in a public issue. Public, non-sensitive hardening suggestions may use the regular issue tracker directly.
13
+
14
+ We will acknowledge reports within 7 days and provide an update on the fix timeline.
15
+
16
+ ## Scope
17
+
18
+ - **Intent CLI** (`itt`): runs locally, reads and writes `.intent/` JSON files, and communicates with IntHub via HTTP.
19
+ - **`.intent/` data**: may contain goals, implementation rationale, decisions, repository metadata, and an IntHub configuration. `itt init` adds `.intent/` to that clone's Git-local `.git/info/exclude` and reports a warning if it cannot; it does not edit the shared `.gitignore`. Users should still review the directory before sharing it or staging ignored files explicitly.
20
+ - **Hub credentials**: `itt auth login` stores an account access token through Git's configured credential helper, scoped to one IntHub endpoint; its protection is that helper's (for example the macOS Keychain, or plaintext with `credential.helper=store`). `--token` and `INTHUB_TOKEN` are never persisted and are only sent to the endpoint given on the command line, the user-level endpoint, or loopback, never to an endpoint named only by a shared `.intent/hub.json`. Remote IntHub URLs must use HTTPS. Tokens never enter `.intent/`.
21
+ - **IntHub Local**: binds to `127.0.0.1` by default and stores synchronized snapshots in an unencrypted SQLite database under `~/.inthub/inthub.db` unless configured otherwise.
22
+
23
+ ## IntHub Local Trust Boundary
24
+
25
+ The bundled IntHub Local service is a single-user browser and read model for a trusted machine. It has no accounts: anything that can reach it can read and write its history. To keep other websites in your browser out, it answers only same-origin requests on loopback host names (no CORS headers, `Host` checked against 127.0.0.1/localhost to defeat DNS rebinding, JSON-only request bodies), and the server refuses to start unauthenticated on a non-loopback interface. It does not provide transport security or encryption at rest.
26
+
27
+ Do not bind IntHub Local to a LAN or public interface or publish it through a reverse proxy. For remote or multi-user use, deploy the authenticated profile instead.
28
+
29
+ The hosted service (https://inthub.tenon.asia) uses that authenticated profile: Tenon OIDC sign-in (PKCE, nonce, single-use state), host-only `Secure` `SameSite=Strict` session cookies, per-account history isolation, account access tokens that are stored as hashes and can be revoked, same-origin checks on browser writes, a strict Content-Security-Policy, and PostgreSQL bound to a private network behind TLS. Browser sessions are read-only for history; only account access tokens can push. Revoke a token from the account menu after any suspected disclosure.
@@ -0,0 +1,29 @@
1
+ # Probes the hosted IntHub from outside its server. A failed run emails the
2
+ # repository owner, so nothing here needs an account or a secret.
3
+ name: monitor
4
+
5
+ on:
6
+ schedule:
7
+ - cron: "*/30 * * * *"
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ probe:
15
+ runs-on: ubuntu-latest
16
+ timeout-minutes: 5
17
+ env:
18
+ CURL: curl --fail --silent --show-error --max-time 20 --retry 3 --retry-delay 30 --retry-all-errors
19
+ steps:
20
+ - name: Service is ready
21
+ run: $CURL https://inthub.tenon.asia/readyz
22
+
23
+ - name: Disk and backups are healthy
24
+ run: |
25
+ status="$($CURL https://inthub.tenon.asia/status.json)"
26
+ echo "$status"
27
+ oldest="$(date -u -d '2 hours ago' +%Y-%m-%dT%H:%M:%SZ)"
28
+ echo "$status" | jq -e --arg oldest "$oldest" \
29
+ '.disk == "ok" and .backup == "ok" and .offsite == "ok" and .checked_at >= $oldest'
@@ -0,0 +1,37 @@
1
+ # Publishes a release to PyPI through trusted publishing, so no token is stored.
2
+ # Runs after a GitHub release goes out, which the release procedure does last.
3
+ # To publish an existing tag by hand: gh workflow run publish.yml -f tag=vX.Y.Z
4
+ name: publish
5
+
6
+ on:
7
+ release:
8
+ types: [published]
9
+ workflow_dispatch:
10
+ inputs:
11
+ tag:
12
+ description: Tag to publish, such as v7.6.6
13
+ required: true
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ pypi:
20
+ # Set the repository variable PYPI_ENABLED once PyPI trusts this workflow.
21
+ if: github.event_name == 'workflow_dispatch' || vars.PYPI_ENABLED == 'true'
22
+ runs-on: ubuntu-24.04
23
+ timeout-minutes: 10
24
+ environment: pypi
25
+ permissions:
26
+ id-token: write
27
+ steps:
28
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
29
+ with:
30
+ ref: ${{ inputs.tag || github.event.release.tag_name }}
31
+ fetch-depth: 0
32
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
33
+ with:
34
+ python-version: "3.13"
35
+ - run: python -m pip install --quiet build
36
+ - run: python -m build
37
+ - uses: pypa/gh-action-pypi-publish@7245906fb61fa33a13554f9d5fb856fe61758086 # v1.14.3
@@ -0,0 +1,58 @@
1
+ # Test-only CI. Production releases never read from GitHub.
2
+ name: tests
3
+
4
+ on:
5
+ push:
6
+ branches: [main]
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ concurrency:
14
+ group: tests-${{ github.ref }}
15
+ cancel-in-progress: true
16
+
17
+ jobs:
18
+ pytest:
19
+ name: pytest (Python ${{ matrix.python-version }})
20
+ runs-on: ubuntu-24.04
21
+ timeout-minutes: 15
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ # 3.9: requires-python floor; 3.13: production image; 3.14: release qualification.
26
+ python-version: ["3.9", "3.13", "3.14"]
27
+ services:
28
+ postgres:
29
+ # postgres:18.4-bookworm, the digest pinned in deploy/inthub/runtime-images.lock.json
30
+ image: postgres@sha256:16fa100a3a6e92c0556632870455e7f8c6f3df5cefddd67d6b95292732bd7ff0
31
+ env:
32
+ POSTGRES_DB: inthub_test
33
+ POSTGRES_USER: inthub_test
34
+ POSTGRES_PASSWORD: inthub_test_password
35
+ ports:
36
+ - 5432:5432
37
+ options: >-
38
+ --health-cmd "pg_isready -U inthub_test -d inthub_test"
39
+ --health-interval 5s
40
+ --health-timeout 5s
41
+ --health-retries 12
42
+ env:
43
+ INTHUB_TEST_POSTGRES_URL: postgresql://inthub_test:inthub_test_password@127.0.0.1:5432/inthub_test
44
+ PIP_DISABLE_PIP_VERSION_CHECK: "1"
45
+ steps:
46
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
47
+ with:
48
+ fetch-depth: 0 # setuptools-scm derives the version from tags
49
+ persist-credentials: false
50
+ - uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
51
+ with:
52
+ python-version: ${{ matrix.python-version }}
53
+ - name: Install package with server and test extras
54
+ run: python -m pip install ".[server,release]"
55
+ - name: Run tests
56
+ run: python -m pytest -q -ra -n auto
57
+ - name: Smoke-test the installed CLI
58
+ run: itt version
@@ -0,0 +1,45 @@
1
+ # Historical materials not meant for the main repo
2
+ backup/
3
+
4
+ # Local Intent workspace metadata; do not commit to Git
5
+ .intent/
6
+
7
+ # Local IntHub runtime state; do not commit to Git
8
+ .inthub/
9
+
10
+ # Claude Code local settings and personal workspace overrides
11
+ .claude/
12
+
13
+ # Editor settings
14
+ .vscode/
15
+ .idea/
16
+ *.swp
17
+ *.swo
18
+ *~
19
+
20
+ # Logs and temp files
21
+ *.log
22
+ *.tmp
23
+ __pycache__/
24
+ .coverage
25
+ .pytest_cache/
26
+ .ruff_cache/
27
+ .mypy_cache/
28
+ htmlcov/
29
+
30
+ # Python environments and packaging
31
+ .venv/
32
+ venv/
33
+ dist/
34
+ build/
35
+ *.egg-info/
36
+
37
+ # Local secrets
38
+ .env
39
+ *.env
40
+ !deploy/inthub/inthub.env.example
41
+
42
+ # OS-generated files
43
+ .DS_Store
44
+ Thumbs.db
45
+ Desktop.ini
@@ -0,0 +1,46 @@
1
+ # Release images are Linux/amd64 only. Pin the exact platform manifest so the
2
+ # same Git commit cannot silently pick up a different Python or Debian base.
3
+ FROM python:3.13-slim@sha256:69e18bd8d831d88e0ef70239dc7771ab7c28bc296ae78ac75cde71e60aa4434f
4
+
5
+ ENV PYTHONUNBUFFERED=1 \
6
+ PYTHONDONTWRITEBYTECODE=1 \
7
+ PYTHONPATH=/app/src
8
+
9
+ WORKDIR /app
10
+
11
+ RUN groupadd --gid 10001 inthub \
12
+ && useradd --uid 10001 --gid inthub --no-create-home --shell /usr/sbin/nologin inthub \
13
+ && mkdir -p /data \
14
+ && chown inthub:inthub /data
15
+
16
+ # The pinned binary wheel carries libpq, eliminating a floating apt snapshot
17
+ # from the release recipe while retaining an exact application dependency.
18
+ RUN python -m pip install --no-cache-dir --index-url https://mirrors.cloud.tencent.com/pypi/simple "psycopg[binary]==3.3.4" "Authlib==1.9.1" "httpx==0.28.1"
19
+
20
+ COPY --chown=inthub:inthub . /app
21
+
22
+ # Keep revision-specific metadata after the dependency layer so a new release
23
+ # can reuse the already downloaded PostgreSQL driver.
24
+ ARG INTHUB_VERSION=0.0.0
25
+ ARG INTHUB_REVISION=unknown
26
+ ARG INTHUB_SCHEMA_VERSION=4
27
+ ENV INTHUB_VERSION=${INTHUB_VERSION}
28
+ LABEL org.opencontainers.image.title="IntHub" \
29
+ org.opencontainers.image.source="https://gitee.com/dozybot/Intent" \
30
+ org.opencontainers.image.version="${INTHUB_VERSION}" \
31
+ org.opencontainers.image.revision="${INTHUB_REVISION}" \
32
+ io.inthub.database-schema-version="${INTHUB_SCHEMA_VERSION}"
33
+
34
+ USER 10001:10001
35
+
36
+ EXPOSE 8000
37
+
38
+ ENV INTHUB_HOST=0.0.0.0 \
39
+ INTHUB_PORT=8000 \
40
+ INTHUB_DB_PATH=/data/inthub.db \
41
+ INTHUB_SERVE_WEB=1
42
+
43
+ HEALTHCHECK --interval=15s --timeout=5s --start-period=20s --retries=4 \
44
+ CMD ["python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/readyz', timeout=3).read()"]
45
+
46
+ CMD ["python", "-m", "apps.inthub_api"]
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Zeng Deyang
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.