speclogician 0.0.0b1__py3-none-any.whl

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 (139) hide show
  1. speclogician/__init__.py +0 -0
  2. speclogician/commands/__init__.py +15 -0
  3. speclogician/commands/cmd_ch.py +616 -0
  4. speclogician/commands/cmd_find.py +256 -0
  5. speclogician/commands/cmd_view.py +202 -0
  6. speclogician/commands/runner.py +149 -0
  7. speclogician/commands/utils.py +101 -0
  8. speclogician/data/__init__.py +0 -0
  9. speclogician/data/artifact.py +63 -0
  10. speclogician/data/container.py +402 -0
  11. speclogician/data/mapping.py +88 -0
  12. speclogician/data/refs.py +24 -0
  13. speclogician/data/traces.py +26 -0
  14. speclogician/demos/.DS_Store +0 -0
  15. speclogician/demos/cmd_demo.py +278 -0
  16. speclogician/demos/loader.py +135 -0
  17. speclogician/demos/model.py +27 -0
  18. speclogician/demos/runner.py +51 -0
  19. speclogician/logic/__init__.py +11 -0
  20. speclogician/logic/api/__init__.py +29 -0
  21. speclogician/logic/api/client.py +606 -0
  22. speclogician/logic/api/decomp.py +67 -0
  23. speclogician/logic/api/scenario.py +102 -0
  24. speclogician/logic/api/traces.py +59 -0
  25. speclogician/logic/lib/__init__.py +19 -0
  26. speclogician/logic/lib/complement.py +107 -0
  27. speclogician/logic/lib/domain_model.py +59 -0
  28. speclogician/logic/lib/predicates.py +151 -0
  29. speclogician/logic/lib/scenarios.py +369 -0
  30. speclogician/logic/lib/traces.py +114 -0
  31. speclogician/logic/lib/transitions.py +104 -0
  32. speclogician/logic/main.py +246 -0
  33. speclogician/logic/strings.py +194 -0
  34. speclogician/logic/utils.py +135 -0
  35. speclogician/main.py +139 -0
  36. speclogician/modeling/__init__.py +31 -0
  37. speclogician/modeling/complement.py +104 -0
  38. speclogician/modeling/component.py +71 -0
  39. speclogician/modeling/conflict.py +26 -0
  40. speclogician/modeling/domain.py +349 -0
  41. speclogician/modeling/predicates.py +59 -0
  42. speclogician/modeling/scenario.py +162 -0
  43. speclogician/modeling/spec.py +306 -0
  44. speclogician/modeling/spec_stats.py +39 -0
  45. speclogician/presentation/__init__.py +0 -0
  46. speclogician/presentation/api.py +244 -0
  47. speclogician/presentation/builders/__init__.py +0 -0
  48. speclogician/presentation/builders/_links.py +44 -0
  49. speclogician/presentation/builders/container.py +53 -0
  50. speclogician/presentation/builders/data_artifact.py +42 -0
  51. speclogician/presentation/builders/domain.py +54 -0
  52. speclogician/presentation/builders/instances_list.py +38 -0
  53. speclogician/presentation/builders/predicate.py +51 -0
  54. speclogician/presentation/builders/recommendations.py +41 -0
  55. speclogician/presentation/builders/scenario.py +41 -0
  56. speclogician/presentation/builders/scenario_complement.py +82 -0
  57. speclogician/presentation/builders/smart_find.py +39 -0
  58. speclogician/presentation/builders/spec.py +39 -0
  59. speclogician/presentation/builders/state_diff.py +150 -0
  60. speclogician/presentation/builders/state_instance.py +42 -0
  61. speclogician/presentation/builders/state_instance_summary.py +84 -0
  62. speclogician/presentation/builders/trace.py +58 -0
  63. speclogician/presentation/ctx.py +38 -0
  64. speclogician/presentation/models/__init__.py +0 -0
  65. speclogician/presentation/models/container.py +44 -0
  66. speclogician/presentation/models/data_artifact.py +33 -0
  67. speclogician/presentation/models/domain.py +50 -0
  68. speclogician/presentation/models/instances_list.py +23 -0
  69. speclogician/presentation/models/predicate.py +60 -0
  70. speclogician/presentation/models/recommendations.py +34 -0
  71. speclogician/presentation/models/scenario.py +31 -0
  72. speclogician/presentation/models/scenario_complement.py +40 -0
  73. speclogician/presentation/models/smart_find.py +34 -0
  74. speclogician/presentation/models/spec.py +32 -0
  75. speclogician/presentation/models/state_diff.py +34 -0
  76. speclogician/presentation/models/state_instance.py +31 -0
  77. speclogician/presentation/models/state_instance_summary.py +102 -0
  78. speclogician/presentation/models/trace.py +42 -0
  79. speclogician/presentation/preview/__init__.py +13 -0
  80. speclogician/presentation/preview/cli.py +50 -0
  81. speclogician/presentation/preview/fixtures/__init__.py +205 -0
  82. speclogician/presentation/preview/fixtures/artifact_container.py +150 -0
  83. speclogician/presentation/preview/fixtures/data_artifact.py +144 -0
  84. speclogician/presentation/preview/fixtures/domain_model.py +162 -0
  85. speclogician/presentation/preview/fixtures/instances_list.py +162 -0
  86. speclogician/presentation/preview/fixtures/predicate.py +184 -0
  87. speclogician/presentation/preview/fixtures/scenario.py +84 -0
  88. speclogician/presentation/preview/fixtures/scenario_complement.py +81 -0
  89. speclogician/presentation/preview/fixtures/smart_find.py +140 -0
  90. speclogician/presentation/preview/fixtures/spec.py +95 -0
  91. speclogician/presentation/preview/fixtures/state_diff.py +158 -0
  92. speclogician/presentation/preview/fixtures/state_instance.py +128 -0
  93. speclogician/presentation/preview/fixtures/state_instance_summary.py +80 -0
  94. speclogician/presentation/preview/fixtures/trace.py +206 -0
  95. speclogician/presentation/preview/registry.py +42 -0
  96. speclogician/presentation/renderers/__init__.py +24 -0
  97. speclogician/presentation/renderers/container.py +136 -0
  98. speclogician/presentation/renderers/data_artifact.py +144 -0
  99. speclogician/presentation/renderers/domain.py +123 -0
  100. speclogician/presentation/renderers/instances_list.py +120 -0
  101. speclogician/presentation/renderers/predicate.py +180 -0
  102. speclogician/presentation/renderers/recommendations.py +90 -0
  103. speclogician/presentation/renderers/scenario.py +94 -0
  104. speclogician/presentation/renderers/scenario_complement.py +59 -0
  105. speclogician/presentation/renderers/smart_find.py +307 -0
  106. speclogician/presentation/renderers/spec.py +105 -0
  107. speclogician/presentation/renderers/state_diff.py +102 -0
  108. speclogician/presentation/renderers/state_instance.py +82 -0
  109. speclogician/presentation/renderers/state_instance_summary.py +143 -0
  110. speclogician/presentation/renderers/trace.py +122 -0
  111. speclogician/py.typed +0 -0
  112. speclogician/shell/app.py +170 -0
  113. speclogician/shell/shell_ch.py +263 -0
  114. speclogician/shell/shell_view.py +153 -0
  115. speclogician/state/__init__.py +0 -0
  116. speclogician/state/change.py +428 -0
  117. speclogician/state/change_result.py +32 -0
  118. speclogician/state/diff.py +191 -0
  119. speclogician/state/inst.py +574 -0
  120. speclogician/state/recommendation.py +13 -0
  121. speclogician/state/recommender.py +577 -0
  122. speclogician/state/state.py +465 -0
  123. speclogician/state/state_stats.py +133 -0
  124. speclogician/tui/__init__.py +0 -0
  125. speclogician/tui/app.py +257 -0
  126. speclogician/tui/app.tcss +160 -0
  127. speclogician/tui/demo.py +45 -0
  128. speclogician/tui/images/speclogician-full.png +0 -0
  129. speclogician/tui/images/speclogician-minimal.png +0 -0
  130. speclogician/tui/main_screen.py +454 -0
  131. speclogician/tui/splash_screen.py +51 -0
  132. speclogician/tui/stats_screen.py +125 -0
  133. speclogician/utils/__init__.py +78 -0
  134. speclogician/utils/load.py +166 -0
  135. speclogician/utils/prompt.md +325 -0
  136. speclogician/utils/testing.py +151 -0
  137. speclogician-0.0.0b1.dist-info/METADATA +116 -0
  138. speclogician-0.0.0b1.dist-info/RECORD +139 -0
  139. speclogician-0.0.0b1.dist-info/WHEEL +4 -0
@@ -0,0 +1,116 @@
1
+ Metadata-Version: 2.3
2
+ Name: speclogician
3
+ Version: 0.0.0b1
4
+ Summary: SpecLogicain AI framework for data-driven formal program specification synthesis, verification and analysis
5
+ Author: denis, hongyu
6
+ Author-email: denis <denis@imandra.ai>, hongyu <hongyu@imandra.ai>
7
+ Requires-Dist: imandrax-api-models>=18.0.0
8
+ Requires-Dist: iml-query>=0.5.1
9
+ Requires-Dist: pydantic>=2.12.5
10
+ Requires-Dist: rich>=14.2.0
11
+ Requires-Dist: textual>=6.11.0
12
+ Requires-Dist: typer>=0.20.0
13
+ Requires-Python: >=3.12
14
+ Project-URL: Homepage, https://speclogician.dev/
15
+ Description-Content-Type: text/markdown
16
+
17
+ # SpecLogician
18
+ SpecLogician AI framework for data-driven formal program specification synthesis, verification and analysis
19
+
20
+ www.speclogician.dev
21
+
22
+ ## 1) The challenge: scaling formal methods via LLM-powered automation
23
+
24
+ - Automatically applying formal methods to large software systems using **LLM-powered and agentic tools** remains a fundamental challenge
25
+ - Traditional formal modeling approaches require building **large, monolithic formal models upfront**
26
+ - There is **no single canonical way** to formalize a complex software system
27
+ - As a result, formalization becomes **as much an art as a science**, relying heavily on expert judgment
28
+ - These characteristics fundamentally limit automation:
29
+ - LLMs struggle to generate or maintain **large, globally consistent formal models**
30
+ - Small local changes often require understanding the entire model
31
+ - Monolithic models are brittle under iterative, agent-driven workflows
32
+
33
+
34
+ ## 2) SpecLogician’s core idea
35
+
36
+ - SpecLogician is an **AI framework for data-driven formal program specification synthesis, verification, and analysis**
37
+ - It replaces monolithic specifications with **incrementally constructed formal logic**
38
+ - The core logic is built from **symbolic `given / when / then` scenarios**
39
+ - Scenarios are:
40
+ - composable
41
+ - declarative
42
+ - local in scope
43
+ - Scenarios are connected to a **domain model of arbitrary complexity**
44
+ - The domain model captures:
45
+ - predicates
46
+ - transitions
47
+ - state/action structure
48
+ - auxiliary and domain-specific logic
49
+
50
+
51
+ ## 3) Why this structure works well with LLMs
52
+
53
+ - LLM-powered tools are used to:
54
+ - propose new scenarios
55
+ - refine existing scenarios
56
+ - generate structured deltas (add / remove / edit)
57
+ - LLMs operate on **small, well-scoped artifacts**, not entire formal models
58
+ - Each change is:
59
+ - explicit
60
+ - typed
61
+ - machine-checkable
62
+ - This aligns naturally with how LLMs perform best:
63
+ - local reasoning
64
+ - incremental edits
65
+ - structured outputs (JSON, CLI commands)
66
+
67
+
68
+ ## 4) Agentic reasoning loop (formal reasoning as the backbone)
69
+
70
+ - SpecLogician sits at the center of an **agentic reasoning loop**
71
+ - In this loop:
72
+ - **CodeLogician / ImandraX** translate source code into formal models and reasoning artifacts
73
+ - **LLM-powered agentic CLIs** propose scenario additions, edits, and removals as structured deltas
74
+ - **Software mapping tools** (e.g. CodeMaps from cognition.ai) provide high-level program structure and navigation context
75
+ - Each agent contributes **partial, local insight**:
76
+ - code structure
77
+ - behavioral intent
78
+ - execution traces
79
+ - test artifacts
80
+ - SpecLogician:
81
+ - integrates these inputs into a single formal state
82
+ - validates them symbolically
83
+ - delegates global analysis to the **ImandraX automated reasoning engine**
84
+ - The reasoning engine analyzes the **entire accumulated model after every change**
85
+ - This creates a **closed-loop workflow**:
86
+ - propose → formalize → verify → refine
87
+
88
+
89
+ ## 5) What the resulting formal model enables
90
+
91
+ - Systematically identify **gaps in design and requirements**
92
+ - Precisely understand **test coverage and gaps in test coverage**
93
+ - Trace:
94
+ - execution logs
95
+ - test cases
96
+ - documentation
97
+ - other artifacts
98
+ back to **formal specifications and requirements**
99
+ - Automatically **generate missing test cases**
100
+ - Safely **model and verify the impact of changes** before they are applied
101
+ - Maintain a **single, authoritative source of truth** for system behavior
102
+
103
+
104
+ ## 6) Big-picture outcome
105
+
106
+ - Transforms LLMs from:
107
+ - probabilistic code generators
108
+ into:
109
+ - **reliable collaborators in a verification-driven workflow**
110
+ - Makes formal methods:
111
+ - incremental
112
+ - data-driven
113
+ - compatible with LLM-powered automation
114
+ - scalable to real-world software systems
115
+ - Positions SpecLogician as the **formal reasoning backbone** for modern, agentic software development
116
+
@@ -0,0 +1,139 @@
1
+ speclogician/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ speclogician/commands/__init__.py,sha256=GVEHMDm4upK2G-kwIS5WfMjd0QvbcOarVQTJ4RV8O2Q,231
3
+ speclogician/commands/cmd_ch.py,sha256=tzd01WrNvcGabUtYu8BlXg8pVH_ORyNn9isqm0YC5qM,19088
4
+ speclogician/commands/cmd_find.py,sha256=Y_Eleso3tgwZfQwtlQcSOYPUZQPS6iX9Gls1Pe9XtSY,7861
5
+ speclogician/commands/cmd_view.py,sha256=Xnf0Gn2lY0iA_XgpucPZ774CBVgUfqrN4lydiyyyhRI,6727
6
+ speclogician/commands/runner.py,sha256=EvzB4kkXMnQPDkxHjVdfJN6N0Ez9wwQmAs5JWqjTmSg,4575
7
+ speclogician/commands/utils.py,sha256=s5no2R7APSYWGX_HWrp6puIinlj9Iq_TerkUPhZD_vA,2681
8
+ speclogician/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ speclogician/data/artifact.py,sha256=JLzvlBkSct6b5nuShr5fYRNpQDokHprdcwt37Ds32hk,1575
10
+ speclogician/data/container.py,sha256=VynrYCJwvOcCH5Z4cK76HTKUDRrdfpofwelhl50I0JY,13755
11
+ speclogician/data/mapping.py,sha256=rgGyOUgtreAP0bQvx7Ui7Qit8hjpiVuoBWjYWHEUeJw,2960
12
+ speclogician/data/refs.py,sha256=OHqN3t5G4WUB4b2NnanImUuvPjKvnSEJnJe9y4aT3_U,698
13
+ speclogician/data/traces.py,sha256=OjZJ-8NCFZZhkwXNWnc3BinrQIQTQtUAO40uiOmv3go,626
14
+ speclogician/demos/.DS_Store,sha256=E-dHWTvatN4vA5ts7JaNqfcPfYHkkam8WQLYmNHTFg4,6148
15
+ speclogician/demos/cmd_demo.py,sha256=FdKtn4w-7pzc9hryvZXSkeK7UQlaNFjdVOYql8eBN5A,9188
16
+ speclogician/demos/loader.py,sha256=X6U7XDgXM74_1tzPI6GbKkCKhgaf6CPS1RK9N8aMHhc,4331
17
+ speclogician/demos/model.py,sha256=Ipixvki-9WZf7uHIJTG0HQxUqQgc_veaihSe1R8o7DQ,505
18
+ speclogician/demos/runner.py,sha256=V7RnQxykBzG_fQXeQYhTcrc0L1g01pIREzhZugTc0u4,1224
19
+ speclogician/logic/__init__.py,sha256=Bsi4cXWmw26AwNjFEOPoXh7Wf_rknsw1W7G7ocQ6eik,108
20
+ speclogician/logic/api/__init__.py,sha256=UVKNzdlDxsNRxP4MI8eA-tI0tZJDr3-0tK91BSuuEyk,622
21
+ speclogician/logic/api/client.py,sha256=TQHgpO0h6a_7KS78tpyanlHgN1EcBaeZ41yMImZa3Vs,21438
22
+ speclogician/logic/api/decomp.py,sha256=UWU5jjOva95u7qcBUrqdTC-ukqgMKzzQ1-JMMUAEHpw,2025
23
+ speclogician/logic/api/scenario.py,sha256=r225XqLwVP8lSYftEbLCNXfpx-50ibkZghmA9KUY2Us,3189
24
+ speclogician/logic/api/traces.py,sha256=lttjgblL8mAF9Aac5FDNd07kh4Tjnbi3795tVMtR9fc,1641
25
+ speclogician/logic/lib/__init__.py,sha256=fPTbhjXHIskBcwPZeiwLG9YBJhhGfvn6LCDwKUfk1hY,396
26
+ speclogician/logic/lib/complement.py,sha256=aCLiXdvoVIKre75qVWZx3dPTHQ41w6HGDU6KcmZMg4A,3252
27
+ speclogician/logic/lib/domain_model.py,sha256=Q5lcha7tKx9nUsK9jL2bucn9Sxccf40hGydRaO_fhyg,1877
28
+ speclogician/logic/lib/predicates.py,sha256=uakbWCwJRbh9hXgNnf-iFTWA5g-lQk8MBhh_ZoiJgOI,6622
29
+ speclogician/logic/lib/scenarios.py,sha256=26NiAoQQQdQbuZERNFH0Lwqi0OJfkw8wJ2Em92wHi-k,11846
30
+ speclogician/logic/lib/traces.py,sha256=PT2husAUQekF-5q5MEtUzE4OsPsaZ-Tcq-Xboz8ViXc,4616
31
+ speclogician/logic/lib/transitions.py,sha256=o4X-K_awWNUcvqqmcss1GiE-PlL6ojxOjQctxOGY5Ro,3884
32
+ speclogician/logic/main.py,sha256=44K14N_elI4dm3aSfnB4Z_o6MAZprq0MeoDU0AegBHk,8670
33
+ speclogician/logic/strings.py,sha256=yjNW_yMWSsnU5OSDlx6q-z0NfTJV00I-IGsxJ1F1GMM,5940
34
+ speclogician/logic/utils.py,sha256=6ZzYKrQrB4nEkvHE4_jpM7EOzfWYbU3QJwsEq-5ypWk,3602
35
+ speclogician/main.py,sha256=lA-ero6pkY1dfSpYCh58istPWoEUexOoBf5KWp2SPQg,4673
36
+ speclogician/modeling/__init__.py,sha256=-HA2X0crrbTiwRgR21fRx5SKnztPECcu-eRn2KsaSMA,819
37
+ speclogician/modeling/complement.py,sha256=JZq5E_4w2F1VcAM34qmi02PxF_3h0bWm0OgjhYbH4ZE,3121
38
+ speclogician/modeling/component.py,sha256=oxl-UZBGLnhSl2Y6Ox4FotTanFECd-kJhzbXRbkckfY,2071
39
+ speclogician/modeling/conflict.py,sha256=kFVykVVi3vH7TFAVSDrH1RJS6WnO4nzWW65lukfiMS8,591
40
+ speclogician/modeling/domain.py,sha256=mlya_JFQQUvULrgPOi-zvkQhtPsUqujy6EZX75Kgrds,11814
41
+ speclogician/modeling/predicates.py,sha256=IFEwoc2ao6a11BjuDd5YsdefdpGmc1i9zSZHczMERKY,1447
42
+ speclogician/modeling/scenario.py,sha256=IMQxCSUsAsWU3uhIRnPgCJha5F6UdKoDramlPOu3tiw,4509
43
+ speclogician/modeling/spec.py,sha256=qaHNfPXgRuWWXfEkjr_doSUnTvWXaDnxh_OlVfCmp8c,10034
44
+ speclogician/modeling/spec_stats.py,sha256=_ry1p8ym-rZR5uy5pSgxrWdJReqiITO6TVff1fXFiyo,1406
45
+ speclogician/presentation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ speclogician/presentation/api.py,sha256=eU4Hgzdf_feC0PtvcaLr_2y2J6BddmH318G4ILmULqs,7041
47
+ speclogician/presentation/builders/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ speclogician/presentation/builders/_links.py,sha256=KouKQoJUzGbIAXPwsRpiRiBzhA7_XKYR4EMQkonkNgo,1231
49
+ speclogician/presentation/builders/container.py,sha256=3AN0Z3yjtadf8SLY-SZ937l8CcpDF81k6Y-uLTujizY,2012
50
+ speclogician/presentation/builders/data_artifact.py,sha256=SLs4yCg2bJUie-bimdfShpHM_45a7S33JjzpI5SuqLo,1139
51
+ speclogician/presentation/builders/domain.py,sha256=87WDceHMsUM3uSekOz-iVACSoV_Ef_fXY1BK1nDSc88,1964
52
+ speclogician/presentation/builders/instances_list.py,sha256=Jo0ev28ePD7I7GB7m34So0STEPc0d1GNwx2TeS6wmqQ,1215
53
+ speclogician/presentation/builders/predicate.py,sha256=VCloCAnFKd9vWjd4qRqSJhEYsbvOOL4sf2Inn_nGuMY,1666
54
+ speclogician/presentation/builders/recommendations.py,sha256=Xcs3wDZvJX1dgv5OAlKN_0BbMux-iM_giXYQsaSQPms,1121
55
+ speclogician/presentation/builders/scenario.py,sha256=44E5e3kcvWsBGRVFVWq_3gXRwL74_GIBlqT8GSZr9CY,1158
56
+ speclogician/presentation/builders/scenario_complement.py,sha256=QRACOrjQ-uJvCaaJCeuMrPyXbIe6VUJRa0QfUg7JXhY,2348
57
+ speclogician/presentation/builders/smart_find.py,sha256=TKtJLkqfwGO0Gn1tt725kKIKhXitwTFwnWNWKT-fnFI,1351
58
+ speclogician/presentation/builders/spec.py,sha256=izea_clqqnpyA3kJadODmJbcTr-3QecGzdb6alNcz7w,1146
59
+ speclogician/presentation/builders/state_diff.py,sha256=POb1yYjybhce-vFCDNjJ8fro34zXqp0Nvl-W-AU5C9c,3794
60
+ speclogician/presentation/builders/state_instance.py,sha256=R1L9O0w_GxWezF8VnPhx90drSVVhkV_LomECjZfDpPw,1424
61
+ speclogician/presentation/builders/state_instance_summary.py,sha256=1ZSnxmvRJu3C26NQzEtHnn8-8dxEELxneZ1k8549B9M,3499
62
+ speclogician/presentation/builders/trace.py,sha256=VVbQwmFSTpqCzjOT8fQnZfpjoFjv-1ZglLaVsf2ypRA,1692
63
+ speclogician/presentation/ctx.py,sha256=3lDZelz5PYeaqLu1mb370ofXeG1VZCXxY0ZiJIp131E,1122
64
+ speclogician/presentation/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
+ speclogician/presentation/models/container.py,sha256=9higsGlVam3y0sCPeMUZw2S3uN5CNi5wZ-FCYrzThQ0,1255
66
+ speclogician/presentation/models/data_artifact.py,sha256=lIbfz3NfBh98EIXJJFCiN_uKsKs4W4_f8_9Hdt8B4u8,625
67
+ speclogician/presentation/models/domain.py,sha256=eGd3ADSaLc4uLclbFIMbb4l3sdgeA3YS9Ofm-YIrUGc,1084
68
+ speclogician/presentation/models/instances_list.py,sha256=vkTsBh56OF1qsE0y1TO_dUCwz_kNimoONK0cJo7cgHg,643
69
+ speclogician/presentation/models/predicate.py,sha256=53bOFp-6eYTOGvvFVvqUah-xpRud8AMP-Nc-kvSuiI4,1322
70
+ speclogician/presentation/models/recommendations.py,sha256=S76MGmabo84po-Ior0aBw0lGo0m0UTXXYJfod2mPt7M,763
71
+ speclogician/presentation/models/scenario.py,sha256=ltmcQw_ThUt_zovtniOvPIsvGLXg0lz-J2pD8__KIhk,744
72
+ speclogician/presentation/models/scenario_complement.py,sha256=ql_fbRe3564TGzgOD_N7VgA0_3RUeeyvBN95sG4veQw,975
73
+ speclogician/presentation/models/smart_find.py,sha256=UDH5A_2WVapDlm0XNGWpY89KC_EuqxsbGDTLdX3NvEI,930
74
+ speclogician/presentation/models/spec.py,sha256=GI-Fuum5aloB5O7cH8qRG2CyIHPW74lNqAIuD2eXNgY,740
75
+ speclogician/presentation/models/state_diff.py,sha256=cLBGX7X43NrwekTrr6YHwV7X1j7cNQKKSk0yyjHsjfA,721
76
+ speclogician/presentation/models/state_instance.py,sha256=ZB3ak3R7dMjexUB9BwL5v9MropbHOzNNxhugwPOyx0A,916
77
+ speclogician/presentation/models/state_instance_summary.py,sha256=Uhldl-MYyVdoZuqV_uVDaIAYRRbYYxuOanSi2J2SFTc,2927
78
+ speclogician/presentation/models/trace.py,sha256=CXSm1Sg7bMeTpR8HM8a_eoO7EW1VqDinP6oJVkvMaOY,852
79
+ speclogician/presentation/preview/__init__.py,sha256=pO6ExK7gHPY5l0_IIcC7STkgH7yaG77eZXxg179QV6A,179
80
+ speclogician/presentation/preview/cli.py,sha256=neriJ3qmCwdrVFBbzcQEmZpb1a2-MXJQkP904h_Y_uQ,1525
81
+ speclogician/presentation/preview/fixtures/__init__.py,sha256=sZBOhxalIDCJavS_BmvCSwlQOiUKQMqMiLHjg_fEZxU,5902
82
+ speclogician/presentation/preview/fixtures/artifact_container.py,sha256=_GJ9H6Gi2RBdeL-5lnMVMJKlMxtV1hLSLL71uEazRBg,4767
83
+ speclogician/presentation/preview/fixtures/data_artifact.py,sha256=qk_euGBppBdnK-owp8L49gulm6ZucieoNNVuvhtGgws,4487
84
+ speclogician/presentation/preview/fixtures/domain_model.py,sha256=xdzgFH0xDLdLOsRa9_66QlJlI2JhVDv25fHdcBpiMAs,5291
85
+ speclogician/presentation/preview/fixtures/instances_list.py,sha256=PcBwHfDvXkTInlW0tF0oovqBH5keXyWRLhq1dWuVjFc,5527
86
+ speclogician/presentation/preview/fixtures/predicate.py,sha256=ldkbWsIT6bZRS-pXbTNSAXtpkPDHZQQGAw6D54HDA0I,5493
87
+ speclogician/presentation/preview/fixtures/scenario.py,sha256=JUs2gG_3C-AE5yb-GLDR_J8VSl6MQ1Djn6rIQz5ieSU,2517
88
+ speclogician/presentation/preview/fixtures/scenario_complement.py,sha256=S3Fi3Sbvifw6l-iV0ddT-vg8BQh8ifBs7Ycjo-scaQU,2313
89
+ speclogician/presentation/preview/fixtures/smart_find.py,sha256=wZRVEjZkMtMpK4oxmK9tRsxwajeO7DveOau3mhfnGkE,3898
90
+ speclogician/presentation/preview/fixtures/spec.py,sha256=NpOqb0I50CZ-kVdmjepKZolvtaRJQET84E3_QQIwSqs,2925
91
+ speclogician/presentation/preview/fixtures/state_diff.py,sha256=rCX2qat02WnczYq2gYyBzgElXIUH5jtO4EfhpZWjy_4,5872
92
+ speclogician/presentation/preview/fixtures/state_instance.py,sha256=rhieR2ukOVAqTV42AmQ9VWlRe-73e6aXkNE1X3Je6F8,4196
93
+ speclogician/presentation/preview/fixtures/state_instance_summary.py,sha256=GMG8wiajtg3bRxIYI2njN6xuuFsqC5Nr1MqUg4N_o5c,2515
94
+ speclogician/presentation/preview/fixtures/trace.py,sha256=gIx40qBnSRdwgKCo1capkbdKosx957oI302fK1eyOS8,6881
95
+ speclogician/presentation/preview/registry.py,sha256=pSndyi5oonpgjnBxV2uzEBcwr7Jtplr8_JAieWgFW7c,953
96
+ speclogician/presentation/renderers/__init__.py,sha256=2nMURd6Md432olVbra7lDWkqZrSWAmcomRpnM7GjMDU,625
97
+ speclogician/presentation/renderers/container.py,sha256=xMR9eNIgfD9wf49p0xOV5TNtEcuoEgjUTYfMuJxSVSA,4092
98
+ speclogician/presentation/renderers/data_artifact.py,sha256=JWZc7sqVVDy5nk6Lxg0ENLA9CmBtlvI7jI8B8Ld-lvo,4014
99
+ speclogician/presentation/renderers/domain.py,sha256=bw-eLfwWmHMv-xtDkvAMWU8Wq6vLb-z_i_6K9MKO-F4,3656
100
+ speclogician/presentation/renderers/instances_list.py,sha256=--lGTm0vVUmE2CkNcgirNRT_ngqE4r2sasjZ9_jltXI,4226
101
+ speclogician/presentation/renderers/predicate.py,sha256=GyvLo_-6F6IPeiswfmPEGUJ6xf6hiOJBiqQaJnkPJms,6154
102
+ speclogician/presentation/renderers/recommendations.py,sha256=VW1HHBiLbvHbfs3Qw59UzrQuSosi_k1tDyZl7a8YfNM,2479
103
+ speclogician/presentation/renderers/scenario.py,sha256=NblrIVZO7k8Vq2gISEzdKyISWbpJTfRl4S-ug-ZgzZk,2620
104
+ speclogician/presentation/renderers/scenario_complement.py,sha256=pDTtWq-q95xuzmhu07ykVRZvwxx7TQGT8uwB45aOrAc,1769
105
+ speclogician/presentation/renderers/smart_find.py,sha256=-lvWpLZaswakKr7wujkxqdWFg5Lg2UyA6klhN2mshd0,10143
106
+ speclogician/presentation/renderers/spec.py,sha256=56G1x02Su-Vdbo3mi7acErxr_LycmUFTcr5Cer6KuOs,3619
107
+ speclogician/presentation/renderers/state_diff.py,sha256=L_eMeuge-vpQnnOWK2Zkq2DvYOG_UH9Ecg8WptDVt1o,3236
108
+ speclogician/presentation/renderers/state_instance.py,sha256=awEMD6hcl_s-HdLXg9WgBsa2kgvTme9qYt0w6F_CWvU,2585
109
+ speclogician/presentation/renderers/state_instance_summary.py,sha256=n0qGN1W_JWdtGNCxioi-07G8I2dDP8JnQKNETSzLoNM,4354
110
+ speclogician/presentation/renderers/trace.py,sha256=2SgWL5PGg3xj2DJr7buvd3fNiN6jgK3vcRuAXpupDko,3653
111
+ speclogician/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
+ speclogician/shell/app.py,sha256=e878cPp-kK49TrwnTovTuIpphZB09aKJ8r1x4nKxnkc,5487
113
+ speclogician/shell/shell_ch.py,sha256=tXo_NoucHoIDYy_FUg7YOEGM1UI_M9h6OTh_atbpE_w,9498
114
+ speclogician/shell/shell_view.py,sha256=oohUaBAIDtJoIs8Mp3qh5V1dLkE-f4mzRsPHisuzRCw,5150
115
+ speclogician/state/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
116
+ speclogician/state/change.py,sha256=Rf5sbOFAK1VyAJ8ITZWmC0DIPQoh5YCSMXIyCy3t1lA,16196
117
+ speclogician/state/change_result.py,sha256=q_3e30L-Evb9poMyCL_ThC20fygEjDRpIBqgfRqGaxI,862
118
+ speclogician/state/diff.py,sha256=7s1ZQWbd9W7n9FAyFWX2xt3tA0L_hyjD5BHdiHeSEcI,7283
119
+ speclogician/state/inst.py,sha256=1lADU8uVgoSkSVivF_kR8BNUmWbz69zCW9yFOKaav1M,18228
120
+ speclogician/state/recommendation.py,sha256=41p8tK5XaFfhoSDeEGsO6zLPfWWLbMq5l2_VcgD3y5E,284
121
+ speclogician/state/recommender.py,sha256=l-70yz-mxDc1wWG-M72WNCbs8bIdqHzl2qOIVto6Lf0,20019
122
+ speclogician/state/state.py,sha256=HXPIjznL21y0Ajyx-u6u6BuIQdIkNAiyBGgEuZnxyG8,16673
123
+ speclogician/state/state_stats.py,sha256=7IjuoQ5S_pgtOlyt7Qf0mVu5_DYpjBimiu5eoikjcbQ,5124
124
+ speclogician/tui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
+ speclogician/tui/app.py,sha256=86yuvLINrZ_V6HBQSwc3XOi1tJlc6fWrzeKAPoHYCO0,8485
126
+ speclogician/tui/app.tcss,sha256=76Do-3il09ysTPQALf2tWaKt0Pau0J7Av_I7iVAug18,2559
127
+ speclogician/tui/demo.py,sha256=CVQyMa9CQaShanhvEf2WTE8pWTKXLle-7dOKD7HlZOw,1229
128
+ speclogician/tui/images/speclogician-full.png,sha256=x5EkWs8DU5L24lYvnHA6gUukbmHewB5IeoHUURDnpS4,2270585
129
+ speclogician/tui/images/speclogician-minimal.png,sha256=0LbOH6aL0XCJIv7mMBB94BFIONP332eUhqB-FgRVwr8,9603
130
+ speclogician/tui/main_screen.py,sha256=g7DpseeCkPkc4LN4BrSfOEHrdX7s2TeETJy1Bh2oSdY,16879
131
+ speclogician/tui/splash_screen.py,sha256=RWLNUd0O86ni9Gey4NzQA-8T0xhZGlcnn9axs1-DlE8,1250
132
+ speclogician/tui/stats_screen.py,sha256=B2eYQQbERBhtMe9vhjk7VYmykyBBu7tZVXxH6aJpwXU,3885
133
+ speclogician/utils/__init__.py,sha256=gpV9054J9J0DLvm0GzN2yvy2ljFLS9aXyBdJP-FCBMQ,1882
134
+ speclogician/utils/load.py,sha256=IA6sQTnu02ON-HHMdgDweUvk5AVuJZ7mZkxBdOjEpZw,4840
135
+ speclogician/utils/prompt.md,sha256=raPVqcaGI-hHzhhtQzWRNoYLDYMjmbm93KBs35ZxYEg,6596
136
+ speclogician/utils/testing.py,sha256=71HNg-Y1GWBU-rG0IZBbEhRtH7lXZORl7TiZ8V3APYU,4481
137
+ speclogician-0.0.0b1.dist-info/WHEEL,sha256=-neZj6nU9KAMg2CnCY6T3w8J53nx1kFGw_9HfoSzM60,79
138
+ speclogician-0.0.0b1.dist-info/METADATA,sha256=iJhHbd0tmtYGZ71bquGCIN35ABVBEZ56yZDYOqNPd2w,4441
139
+ speclogician-0.0.0b1.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: uv 0.8.22
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any