substratum-cli 0.2.4__tar.gz → 0.2.5__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 (111) hide show
  1. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/PKG-INFO +1 -1
  2. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/__init__.py +1 -1
  3. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/session.py +7 -0
  4. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/PKG-INFO +1 -1
  5. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/README.md +0 -0
  6. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/pyproject.toml +0 -0
  7. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/setup.cfg +0 -0
  8. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/README.md +0 -0
  9. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/__main__.py +0 -0
  10. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_boot.py +0 -0
  11. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_update.py +0 -0
  12. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_vendor/__init__.py +0 -0
  13. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_vendor/_pro_test_derive.py +0 -0
  14. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_vendor/client_gate.py +0 -0
  15. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/_wordmark.py +0 -0
  16. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/account.py +0 -0
  17. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/build_state.py +0 -0
  18. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/cli.py +0 -0
  19. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/codes.py +0 -0
  20. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/__init__.py +0 -0
  21. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/apply.py +0 -0
  22. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/auth.py +0 -0
  23. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/commit.py +0 -0
  24. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/explain.py +0 -0
  25. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/failing.py +0 -0
  26. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/fix.py +0 -0
  27. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/history.py +0 -0
  28. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/init_cmd.py +0 -0
  29. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/pr.py +0 -0
  30. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/replay.py +0 -0
  31. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/scaffold.py +0 -0
  32. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/show.py +0 -0
  33. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/undo.py +0 -0
  34. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/verify.py +0 -0
  35. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/commands/write.py +0 -0
  36. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/config.py +0 -0
  37. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/diffs.py +0 -0
  38. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/engine.py +0 -0
  39. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/gitio.py +0 -0
  40. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/langscan.py +0 -0
  41. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/product_ops.py +0 -0
  42. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/refusals.py +0 -0
  43. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/remote.py +0 -0
  44. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/render.py +0 -0
  45. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/result.py +0 -0
  46. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/run_store.py +0 -0
  47. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/runid.py +0 -0
  48. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli/style.py +0 -0
  49. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/SOURCES.txt +0 -0
  50. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/dependency_links.txt +0 -0
  51. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/entry_points.txt +0 -0
  52. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/requires.txt +0 -0
  53. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/substratum_cli.egg-info/top_level.txt +0 -0
  54. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_adaptive_prior.py +0 -0
  55. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_alias_warrant_trace.py +0 -0
  56. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_bidirectional_gate_contracts.py +0 -0
  57. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_coherence_evolution.py +0 -0
  58. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_coherences.py +0 -0
  59. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_connection_web_api.py +0 -0
  60. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_cross_entity_scoping.py +0 -0
  61. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_data.py +0 -0
  62. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_de28_negation_refuse.py +0 -0
  63. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_definite_description_handler.py +0 -0
  64. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_demo_regression_catalog.py +0 -0
  65. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_demo_response_shape.py +0 -0
  66. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_e1_e2_field_alignment.py +0 -0
  67. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_extraction_class_write_time.py +0 -0
  68. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_falsification_predictions.py +0 -0
  69. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_gap_d_wh_normalization.py +0 -0
  70. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_inference.py +0 -0
  71. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_inflection_cvc_rule.py +0 -0
  72. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_inflection_irregular.py +0 -0
  73. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_intervention.py +0 -0
  74. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_invariant.py +0 -0
  75. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_legal_citation_handler.py +0 -0
  76. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_lens_noop_seam.py +0 -0
  77. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_markup_tag_handler.py +0 -0
  78. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_nl_parser.py +0 -0
  79. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_nl_parser_adversarial.py +0 -0
  80. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_noise.py +0 -0
  81. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_pass2_contextual.py +0 -0
  82. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_perspectives.py +0 -0
  83. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_polysemous_token_alias_guard.py +0 -0
  84. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_possessive_normalization.py +0 -0
  85. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_predicate_canon.py +0 -0
  86. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_projection_gate.py +0 -0
  87. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_projection_gate_tag_question.py +0 -0
  88. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_query_normalizer.py +0 -0
  89. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_records_answer_format.py +0 -0
  90. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_referent_aboutness_gate.py +0 -0
  91. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_referent_quality_gate.py +0 -0
  92. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_refuse_message_topic_neutrality.py +0 -0
  93. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_relation_detection.py +0 -0
  94. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_relaxation.py +0 -0
  95. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_residual_content_gate.py +0 -0
  96. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_reverse_lookup_subject_filter.py +0 -0
  97. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_sec_statement_aliases.py +0 -0
  98. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_span_lens.py +0 -0
  99. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_span_lens_query_integration.py +0 -0
  100. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_substrate.py +0 -0
  101. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_synonymy_detector.py +0 -0
  102. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_table_ingest.py +0 -0
  103. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_triple_ingest.py +0 -0
  104. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_two_phase_schema.py +0 -0
  105. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_user_asserted_aliases.py +0 -0
  106. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_v2_api.py +0 -0
  107. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_v2_api_claims.py +0 -0
  108. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_v2_claim_determinism.py +0 -0
  109. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_word_role.py +0 -0
  110. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_word_role_wiring.py +0 -0
  111. {substratum_cli-0.2.4 → substratum_cli-0.2.5}/tests/test_xbrl_doc_aliases.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: substratum-cli
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Substratum: verified-or-refused code, with provenance. The terminal over the comprehension engine.
5
5
  Author: Substratum
6
6
  License: LicenseRef-Proprietary
@@ -5,4 +5,4 @@ Import budget: this package is stdlib-only; the ONLY module reaching into backen
5
5
  """
6
6
  # SINGLE SOURCE OF TRUTH for the release version. pyproject reads this (dynamic version), the boot shows
7
7
  # it, and the update-check compares against it. To cut a release, bump ONLY this line, then publish.
8
- __version__ = "0.2.4"
8
+ __version__ = "0.2.5"
@@ -619,6 +619,7 @@ class Session:
619
619
  self.banner()
620
620
  from . import style as S
621
621
  prompt = (S.GOLD + S.g("brand") + " " + S.RESET) if self.color else (S.g("brand") + " ")
622
+ exit_hints = 0
622
623
  while True:
623
624
  try:
624
625
  line = input(prompt)
@@ -626,7 +627,13 @@ class Session:
626
627
  sys.stdout.write("\n")
627
628
  _leave()
628
629
  except KeyboardInterrupt:
630
+ # Ctrl-C clears the current line (readline behavior); it does NOT exit. Users spam it
631
+ # trying to leave and just get blank lines, so surface the real exit the first few
632
+ # times, then stay quiet for power users who use Ctrl-C to clear a half-typed line.
629
633
  sys.stdout.write("\n")
634
+ if exit_hints < 3:
635
+ self._say(" Ctrl-C clears the line. to leave, type /exit (or press Ctrl-D)", _DIM)
636
+ exit_hints += 1
630
637
  continue
631
638
  try:
632
639
  res, keep = self.handle(line)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: substratum-cli
3
- Version: 0.2.4
3
+ Version: 0.2.5
4
4
  Summary: Substratum: verified-or-refused code, with provenance. The terminal over the comprehension engine.
5
5
  Author: Substratum
6
6
  License: LicenseRef-Proprietary
File without changes
File without changes