tgi-foundation 0.2.0.dev14__tar.gz → 0.2.0.dev15__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 (55) hide show
  1. {tgi_foundation-0.2.0.dev14/tgi_foundation.egg-info → tgi_foundation-0.2.0.dev15}/PKG-INFO +1 -1
  2. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/pyproject.toml +1 -1
  3. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/phase_bound_response_atlas_check.py +42 -32
  4. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15/tgi_foundation.egg-info}/PKG-INFO +1 -1
  5. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/LICENSE +0 -0
  6. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/MANIFEST.in +0 -0
  7. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/README.md +0 -0
  8. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/setup.cfg +0 -0
  9. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/__init__.py +0 -0
  10. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/acquisition_snapshot.py +0 -0
  11. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/acquisition_witness.py +0 -0
  12. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/causal_port_classes.py +0 -0
  13. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/causal_port_classes_check.py +0 -0
  14. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/compact_measured_path.py +0 -0
  15. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/compatible_joins.py +0 -0
  16. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/derivation.py +0 -0
  17. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/events.py +0 -0
  18. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/frame_engine.py +0 -0
  19. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/identity.py +0 -0
  20. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/incidence.py +0 -0
  21. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/incremental.py +0 -0
  22. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_continuity.py +0 -0
  23. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_continuity_check.py +0 -0
  24. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_edit_contrast.py +0 -0
  25. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_edit_contrast_check.py +0 -0
  26. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_roles.py +0 -0
  27. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/intervention_roles_check.py +0 -0
  28. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/lineage_state.py +0 -0
  29. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/lineage_state_check.py +0 -0
  30. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/local_edit_transport_classes.py +0 -0
  31. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/local_edit_transport_classes_check.py +0 -0
  32. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/measured_occurrence_path.py +0 -0
  33. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/observation_point.py +0 -0
  34. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/organization.py +0 -0
  35. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/organization_check.py +0 -0
  36. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/organization_snapshot.py +0 -0
  37. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/phase_bound_port_classes.py +0 -0
  38. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/phase_bound_response_atlas.py +0 -0
  39. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/phase_evidence.py +0 -0
  40. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/resonance.py +0 -0
  41. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/response_incidence_check.py +0 -0
  42. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_eligibility_check.py +0 -0
  43. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_history_check.py +0 -0
  44. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_projection_check.py +0 -0
  45. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_readout_check.py +0 -0
  46. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_response_check.py +0 -0
  47. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/role_work.py +0 -0
  48. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/source_bound_endpoint_transport.py +0 -0
  49. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/source_bound_endpoint_transport_check.py +0 -0
  50. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/source_bound_single_nmu_edit.py +0 -0
  51. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/source_bound_single_nmu_edit_check.py +0 -0
  52. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi/spatial.py +0 -0
  53. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi_foundation.egg-info/SOURCES.txt +0 -0
  54. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi_foundation.egg-info/dependency_links.txt +0 -0
  55. {tgi_foundation-0.2.0.dev14 → tgi_foundation-0.2.0.dev15}/tgi_foundation.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tgi-foundation
3
- Version: 0.2.0.dev14
3
+ Version: 0.2.0.dev15
4
4
  Summary: Native character-identity and geometric knowledge mechanisms for Topological Geometric Intelligence
5
5
  Author: Emylton Leunufna
6
6
  License: Copyright (c) 2026 Emylton Leunufna
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tgi-foundation"
7
- version = "0.2.0.dev14"
7
+ version = "0.2.0.dev15"
8
8
  description = "Native character-identity and geometric knowledge mechanisms for Topological Geometric Intelligence"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -14,10 +14,11 @@ def verify(events, certificate):
14
14
  certificate['revision'] != REVISION or \
15
15
  certificate['registry'] != REGISTRY_ID:
16
16
  return False
17
- previous_keys, previous_births, previous_roles = set(), {}, set()
17
+ previous_keys, previous_births, previous_roles, previous_stats = set(), {}, set(), {}
18
18
  expected_phases = []
19
19
  names = None
20
20
  prepared = []
21
+ traces = {}
21
22
  for index in range(len(events)):
22
23
  row = events[index]
23
24
  if type(row) is not dict or set(row) != {'source', 'action', 'ports'}:
@@ -27,49 +28,57 @@ def verify(events, certificate):
27
28
  names = current_names
28
29
  if current_names != names or len(names) < 3:
29
30
  return False
30
- prepared.append({'action': tuple(encode(row['action'])),
31
- 'before': {port: tuple(encode(row['ports'][port][0]))
32
- for port in names},
33
- 'changed': {port: row['ports'][port][0] != row['ports'][port][1]
34
- for port in names}})
35
- actions = sorted({item['action'] for item in prepared})
36
- current_keys, new_births, admitted, cells = set(), {}, set(), []
37
- for action in actions:
38
- action_rows = [item for item in prepared if item['action'] == action]
31
+ action_id = tuple(encode(row['action']))
32
+ before = {port: tuple(encode(row['ports'][port][0])) for port in names}
33
+ changed = {port: row['ports'][port][0] != row['ports'][port][1]
34
+ for port in names}
35
+ prepared.append((action_id, before, changed))
36
+ if action_id not in traces:
37
+ traces[action_id] = {port: () for port in names}
38
+ for port in names:
39
+ traces[action_id][port] += (changed[port],)
40
+ current_keys, new_births, admitted, cells, current_stats = set(), {}, set(), [], {}
41
+ for action in sorted(traces):
39
42
  patterns = {}
40
43
  for port in names:
41
- pattern = tuple(item['changed'][port] for item in action_rows)
42
- patterns.setdefault(pattern, []).append(port)
44
+ patterns.setdefault(traces[action][port], []).append(port)
43
45
  for members in sorted(tuple(ports) for ports in patterns.values()):
44
46
  key = (action, members)
45
47
  current_keys.add(key)
46
48
  born = previous_births[key] if key in previous_keys else index
47
49
  new_births[key] = born
48
- c_contexts, all_c, l_contexts = set(), set(), set()
49
- l_events = 0
50
- other_action = False
51
- for position, item in enumerate(prepared):
52
- candidate_action = item['action']
53
- context = tuple(item['before'][port] for port in members)
54
- c = all(item['changed'][port] for port in members)
55
- l = all(not item['changed'][port] for port in members)
50
+ if key in previous_keys:
51
+ stats = previous_stats[key]
52
+ history = ((index, prepared[-1]),)
53
+ else:
54
+ stats = {'support': set(), 'all_changed': set(),
55
+ 'all_stable': set(), 'controls': 0,
56
+ 'has_other_action': False}
57
+ history = enumerate(prepared)
58
+ for position, (candidate_action, raw_before, raw_changed) in history:
59
+ context = tuple(raw_before[port] for port in members)
60
+ c = all(raw_changed[port] for port in members)
61
+ l = all(not raw_changed[port] for port in members)
56
62
  if candidate_action == action:
57
63
  if c:
58
- all_c.add(context)
64
+ stats['all_changed'].add(context)
59
65
  if position >= born:
60
- c_contexts.add(context)
66
+ stats['support'].add(context)
61
67
  if l:
62
- l_contexts.add(context)
63
- l_events += 1
64
- elif l and any(item['changed'][port]
68
+ stats['all_stable'].add(context)
69
+ stats['controls'] += 1
70
+ elif l and any(raw_changed[port]
65
71
  for port in names if port not in members):
66
- other_action = True
67
- opposed = bool(all_c & l_contexts)
68
- crystallized = (len(c_contexts) >= OMEGA_CRIT and l_events > 0
69
- and other_action and not opposed)
72
+ stats['has_other_action'] = True
73
+ current_stats[key] = stats
74
+ opposed = bool(stats['all_changed'] & stats['all_stable'])
75
+ crystallized = (len(stats['support']) >= OMEGA_CRIT and
76
+ stats['controls'] > 0 and
77
+ stats['has_other_action'] and not opposed)
70
78
  cells.append({'action_nmu': list(action), 'members': list(members),
71
- 'born_at': born, 'omega': len(c_contexts),
72
- 'controls': l_events, 'comparator': other_action,
79
+ 'born_at': born, 'omega': len(stats['support']),
80
+ 'controls': stats['controls'],
81
+ 'comparator': stats['has_other_action'],
73
82
  'opposition': opposed, 'xi': int(crystallized)})
74
83
  if crystallized:
75
84
  admitted.add(key)
@@ -81,7 +90,8 @@ def verify(events, certificate):
81
90
  'event_index': index, 'source': row['source'], 'classes': cells,
82
91
  'admitted': granted, 'revoked': revoked,
83
92
  'status': 'CRYSTAL' if granted else 'REVOKED' if revoked else 'NO_PATH'})
84
- previous_keys, previous_births, previous_roles = current_keys, new_births, admitted
93
+ previous_keys, previous_births, previous_roles, previous_stats = (
94
+ current_keys, new_births, admitted, current_stats)
85
95
  decision = expected_phases[-1] if expected_phases else {
86
96
  'event_index': None, 'source': None, 'classes': [], 'admitted': [],
87
97
  'revoked': [], 'status': 'NO_PATH'}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tgi-foundation
3
- Version: 0.2.0.dev14
3
+ Version: 0.2.0.dev15
4
4
  Summary: Native character-identity and geometric knowledge mechanisms for Topological Geometric Intelligence
5
5
  Author: Emylton Leunufna
6
6
  License: Copyright (c) 2026 Emylton Leunufna