nocturne-memory 0.1.12__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.
- nocturne_memory-0.1.12.dist-info/METADATA +46 -0
- nocturne_memory-0.1.12.dist-info/RECORD +107 -0
- nocturne_memory-0.1.12.dist-info/WHEEL +4 -0
- spine/__init__.py +3 -0
- spine/_deploy/Dockerfile +28 -0
- spine/_deploy/README.md +22 -0
- spine/_deploy/billing-breaker/README.md +545 -0
- spine/_deploy/billing-breaker/billing_breaker.py +221 -0
- spine/_deploy/billing-breaker/deploy.sh +692 -0
- spine/_deploy/billing-breaker/deployment_checks.py +934 -0
- spine/_deploy/billing-breaker/main.py +51 -0
- spine/_deploy/billing-breaker/requirements.txt +2 -0
- spine/_deploy/pyproject.toml +78 -0
- spine/api_contract.py +47 -0
- spine/auth.py +38 -0
- spine/config.py +69 -0
- spine/contracts.py +210 -0
- spine/curation/__init__.py +2 -0
- spine/curation/contracts.py +117 -0
- spine/curation/diagnostics.py +307 -0
- spine/curation/provider.py +236 -0
- spine/curation/router.py +48 -0
- spine/curation/service.py +504 -0
- spine/curation/worker.py +49 -0
- spine/db/__init__.py +1 -0
- spine/db/engine.py +9 -0
- spine/db/locking.py +81 -0
- spine/db/memory.py +297 -0
- spine/db/migrate.py +73 -0
- spine/db/migrations/README +1 -0
- spine/db/migrations/env.py +71 -0
- spine/db/migrations/script.py.mako +25 -0
- spine/db/migrations/versions/0001_c2_schema.py +152 -0
- spine/db/migrations/versions/0002_origin_path.py +27 -0
- spine/db/migrations/versions/0003_spend_ledger.py +283 -0
- spine/db/migrations/versions/0004_hybrid_candidate_fts.py +67 -0
- spine/db/migrations/versions/0005_per_message_rescore.py +33 -0
- spine/db/migrations/versions/0006_extraction_queue.py +76 -0
- spine/db/migrations/versions/0007_seed_ingestion.py +64 -0
- spine/db/migrations/versions/0008_scorer_console.py +43 -0
- spine/db/migrations/versions/0009_spend_reconciliation.py +93 -0
- spine/db/migrations/versions/0010_budget_cut_band.py +34 -0
- spine/db/migrations/versions/0011_learner_runs.py +64 -0
- spine/db/migrations/versions/0012_injection_event_annotations.py +75 -0
- spine/db/migrations/versions/0013_transcript_records.py +61 -0
- spine/db/migrations/versions/0014_location_scorer.py +121 -0
- spine/db/migrations/versions/0015_symphony_memory_bridge.py +159 -0
- spine/db/migrations/versions/0016_thread_index.py +124 -0
- spine/db/migrations/versions/0017_memory_share.py +117 -0
- spine/db/migrations/versions/0018_curator_runs.py +270 -0
- spine/db/migrations/versions/0019_curator_pressure.py +118 -0
- spine/db/migrations/versions/0020_optimization_runs.py +95 -0
- spine/db/migrations/versions/0021_origin_location.py +109 -0
- spine/db/models.py +1063 -0
- spine/db/session.py +9 -0
- spine/deploy_resources.py +106 -0
- spine/embeddings/__init__.py +446 -0
- spine/embeddings/router.py +88 -0
- spine/events/__init__.py +1 -0
- spine/ids.py +33 -0
- spine/inject/__init__.py +1 -0
- spine/inject/annotations.py +143 -0
- spine/inject/decisions.py +563 -0
- spine/inject/renderer.py +84 -0
- spine/inject/router.py +308 -0
- spine/inject/scorer.py +741 -0
- spine/inject/service.py +774 -0
- spine/learner/__init__.py +1 -0
- spine/learner/contracts.py +29 -0
- spine/learner/evidence.py +321 -0
- spine/learner/locking.py +5 -0
- spine/learner/model.py +846 -0
- spine/learner/router.py +28 -0
- spine/learner/service.py +822 -0
- spine/learner/worker.py +63 -0
- spine/m2k/__init__.py +1 -0
- spine/m2k/contracts.py +394 -0
- spine/m2k/router.py +141 -0
- spine/m2k/service.py +1580 -0
- spine/main.py +325 -0
- spine/memory/__init__.py +1 -0
- spine/memory/router.py +393 -0
- spine/memory/service.py +1386 -0
- spine/problems.py +69 -0
- spine/queue/__init__.py +1 -0
- spine/queue/contracts.py +125 -0
- spine/queue/router.py +106 -0
- spine/queue/service.py +972 -0
- spine/spend/__init__.py +6 -0
- spine/spend/contracts.py +214 -0
- spine/spend/reconciliation.py +255 -0
- spine/spend/router.py +70 -0
- spine/spend/service.py +258 -0
- spine/spend/views.py +72 -0
- spine/symphony/__init__.py +1 -0
- spine/symphony/contracts.py +129 -0
- spine/symphony/router.py +75 -0
- spine/symphony/service.py +248 -0
- spine/tokens.py +19 -0
- spine/transcripts/__init__.py +1 -0
- spine/transcripts/contracts.py +107 -0
- spine/transcripts/router.py +55 -0
- spine/transcripts/service.py +118 -0
- spine/vitals/__init__.py +6 -0
- spine/vitals/contracts.py +241 -0
- spine/vitals/router.py +63 -0
- spine/vitals/service.py +396 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: nocturne-memory
|
|
3
|
+
Version: 0.1.12
|
|
4
|
+
Summary: NOCTURNE Memory Palace service
|
|
5
|
+
Project-URL: Homepage, https://github.com/Nate0-1999/nocturne
|
|
6
|
+
Project-URL: Source, https://github.com/Nate0-1999/nocturne-memory
|
|
7
|
+
Requires-Python: <3.13,>=3.12
|
|
8
|
+
Requires-Dist: alembic<2,>=1.13
|
|
9
|
+
Requires-Dist: asyncpg<1,>=0.29
|
|
10
|
+
Requires-Dist: fastapi<1,>=0.115
|
|
11
|
+
Requires-Dist: httpx<1,>=0.27
|
|
12
|
+
Requires-Dist: pgvector<1,>=0.3
|
|
13
|
+
Requires-Dist: pydantic-settings<3,>=2
|
|
14
|
+
Requires-Dist: pydantic<3,>=2
|
|
15
|
+
Requires-Dist: sqlalchemy[asyncio]<3,>=2
|
|
16
|
+
Requires-Dist: tiktoken<1,>=0.9
|
|
17
|
+
Requires-Dist: uvicorn[standard]<1,>=0.30
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Requires-Dist: pytest-asyncio<1,>=0.24; extra == 'dev'
|
|
20
|
+
Requires-Dist: pytest<9,>=8; extra == 'dev'
|
|
21
|
+
Requires-Dist: ruff<1,>=0.9; extra == 'dev'
|
|
22
|
+
Requires-Dist: testcontainers[postgres]<5,>=4.8; extra == 'dev'
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# nocturne-memory
|
|
26
|
+
|
|
27
|
+
`nocturne-memory` is NOCTURNE's Memory Palace service and migration package. It
|
|
28
|
+
is released in lockstep as a dependency of the public `nocturne-harness`
|
|
29
|
+
distribution.
|
|
30
|
+
|
|
31
|
+
The service owns the extraction consent boundary at `/v1/extractions` and
|
|
32
|
+
`/v1/approval-queue`. Pending units use the internal `candidate` lifecycle
|
|
33
|
+
state and are excluded from ordinary memory listing, search, and injection.
|
|
34
|
+
Queue decisions are append-only; approval enacts the proposed verdict through
|
|
35
|
+
revisioned head changes and typed lineage edges, while denial revision-
|
|
36
|
+
tombstones the candidate as rejected.
|
|
37
|
+
|
|
38
|
+
Injection treats memory room as a versioned share of the active model context
|
|
39
|
+
window. The share is a ceiling, not a quota: unused room remains available to
|
|
40
|
+
conversation, while pinned memories always inject and report any overflow in
|
|
41
|
+
the prepare allocation. Share and threshold join the ordinary replay learner
|
|
42
|
+
after 100 authentic, hygiene-filtered owner dispositions; every learned
|
|
43
|
+
generation remains proposed until the owner activates it.
|
|
44
|
+
|
|
45
|
+
New users should start at the [NOCTURNE quickstart](https://github.com/Nate0-1999/nocturne)
|
|
46
|
+
and install `nocturne-harness`; they do not need to install this package separately.
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
spine/__init__.py,sha256=GTiG_PfEoLZkjtDsLUqEuSdadxkY_QtyqI35CUPjREY,53
|
|
2
|
+
spine/api_contract.py,sha256=nwfgkBuDgwRLEJbPZ0aCKLblEtnr8oZHbVkPsOyFG0M,1508
|
|
3
|
+
spine/auth.py,sha256=EDXkJqRMTMN_zqLpo7WH4tSDXCWxSNqyRlL3lhPAgPM,1392
|
|
4
|
+
spine/config.py,sha256=trunx2r1DbVSkXgNV9pync2_sJ4n3JMZyYzuy7AU3us,3013
|
|
5
|
+
spine/contracts.py,sha256=1_foyBC74lT6_3aS5B5czudHwStENZNquvcLAy3Jd4k,5243
|
|
6
|
+
spine/deploy_resources.py,sha256=Ye6q9EtrnL97hdVBWZBqnLt3N4cKRliXN4TP3NFmMlI,3775
|
|
7
|
+
spine/ids.py,sha256=nayaqSMkBJzioJlGeCOpcufqVfU4mNk5gaff7mP6ZsE,898
|
|
8
|
+
spine/main.py,sha256=fF6ih8wPTcPTwCA9mqn5y6Y5X-6yybhdeOU6Sc4RRuY,12701
|
|
9
|
+
spine/problems.py,sha256=tzA2TuhHQh5CfAqpjPUZI9m06uXvMuJWCvyceqd0vMQ,1692
|
|
10
|
+
spine/tokens.py,sha256=VzMxfCaEafZe0R0sWS-e0SR-gcRu5HZyRhiHBU4ntvI,455
|
|
11
|
+
spine/curation/__init__.py,sha256=upoFoydcDhXPatFMOKcaPE9JLd1KwJT6VfHt2V_qrkc,80
|
|
12
|
+
spine/curation/contracts.py,sha256=aL_l-EFUt9GQGX-Zln8viWX1iewHj65v_1hJpdaAeOg,3950
|
|
13
|
+
spine/curation/diagnostics.py,sha256=kj7FphmBkqZjEtqucbI-pFDSvYHvwMjyxPS4mC3pf1o,11363
|
|
14
|
+
spine/curation/provider.py,sha256=V58PSoUD-NwuFXPUQlJ5wI7_RZ5Hd8srf8e6CRhLRC0,8060
|
|
15
|
+
spine/curation/router.py,sha256=K05RVlgvsfKiQsx0UkAmdQf37rkepMS0COcPyavj7IQ,1441
|
|
16
|
+
spine/curation/service.py,sha256=HKu5pBZk6h0SZfcevQxlUF3GZVps1xrm8Okgvaj8yH0,19210
|
|
17
|
+
spine/curation/worker.py,sha256=8b2LCLoti_Qzky2EAWKD6DqvkwNHrtjGgz1Ygbu31FI,1495
|
|
18
|
+
spine/db/__init__.py,sha256=QseLkhAwLhBQqrEG2NtbToBLRFXNjzmI6FS9UTdAWEY,67
|
|
19
|
+
spine/db/engine.py,sha256=vFG-EJRHesFZWp3OARi6ya5JlUMJNQQTD3cveYhedhw,298
|
|
20
|
+
spine/db/locking.py,sha256=beEeAmB8xKNuZKRXE8fq8giw5JnodZNkRDD_oG1RxLs,2484
|
|
21
|
+
spine/db/memory.py,sha256=xp-De_wQWU-FBVZeGE2hzNDLXEhOcMquZt1RuWkct0M,9251
|
|
22
|
+
spine/db/migrate.py,sha256=K7LvNI6uIDMfYR_CNSszwLVQZiQBZTlM4idsS4k3pII,2263
|
|
23
|
+
spine/db/models.py,sha256=-Xxj7eiubtT7q45eslpgnbsyPGJ52nsdmSJOsLFP4Fg,43734
|
|
24
|
+
spine/db/session.py,sha256=6Y6ulezd2yOILtG7kWK_D6tIsNWYTkmgrEBzH6-cLIc,323
|
|
25
|
+
spine/db/migrations/README,sha256=GSKCFVHqrajH5gNOuQ00KsEDjV1g-gdRgQFs3NYOxnY,74
|
|
26
|
+
spine/db/migrations/env.py,sha256=oGK1jb97RbhCAMSyM1aFijv7Hjnc7I4wu5CzojrA3eE,2169
|
|
27
|
+
spine/db/migrations/script.py.mako,sha256=jwTs6sxl5R5TcaywggBBISnSjYZsRM-cjYe5H25UdPU,580
|
|
28
|
+
spine/db/migrations/versions/0001_c2_schema.py,sha256=UxWyAAnLnO-k08p5tE3AQ6sMlt5BwxbooF1dIMR_0r8,5230
|
|
29
|
+
spine/db/migrations/versions/0002_origin_path.py,sha256=5_dtosRHMxIz6R5TD-lHiLWDuAXKfWYcLlraq5DgRww,677
|
|
30
|
+
spine/db/migrations/versions/0003_spend_ledger.py,sha256=x-eiV8e_g5LD1jQUiicylcz29Y-2rzfpfRaTj3F5dqw,10542
|
|
31
|
+
spine/db/migrations/versions/0004_hybrid_candidate_fts.py,sha256=a6T99zNWf2earXS0T42f6KuzXB5H0p8IZg_-qYxFLDk,2148
|
|
32
|
+
spine/db/migrations/versions/0005_per_message_rescore.py,sha256=v3VWC-8K9oXox8lk9Ikqw8N2YBRoMauZsC5xMeBP2aA,945
|
|
33
|
+
spine/db/migrations/versions/0006_extraction_queue.py,sha256=mll8kcXS8Gjwrb3g4wwDtkjyVE2xioqLrqQcD_DTji8,2947
|
|
34
|
+
spine/db/migrations/versions/0007_seed_ingestion.py,sha256=2jDoOsVTl9_WevIRAGkIc30hiamszyuFwExHXfRXCxc,2801
|
|
35
|
+
spine/db/migrations/versions/0008_scorer_console.py,sha256=kiHuY_bmSTGrAVIo_yG8_VLxts45RYk9yUDzmnKJNOA,1408
|
|
36
|
+
spine/db/migrations/versions/0009_spend_reconciliation.py,sha256=ARA6GNGD2VVCg0nNxCpP8oFB4Mg__hcl_0IjyiNnxJk,3314
|
|
37
|
+
spine/db/migrations/versions/0010_budget_cut_band.py,sha256=z--JMIDpqRlmhENOpGFZlNmAlALQQQaGt9klZSETpLg,1001
|
|
38
|
+
spine/db/migrations/versions/0011_learner_runs.py,sha256=eWV8HRsQQ3J4xx8-GR9GCVtxYrPPQBLThOFI9WLxHYw,2210
|
|
39
|
+
spine/db/migrations/versions/0012_injection_event_annotations.py,sha256=t7cyaRgIsb3g6Zxbg4bYqZk9gksI1KiZa-Hs7Rf9PcU,2904
|
|
40
|
+
spine/db/migrations/versions/0013_transcript_records.py,sha256=2LBWZPZQBT5Q011M8omK3dxruOMNQbwpoac3RRmjjhQ,1911
|
|
41
|
+
spine/db/migrations/versions/0014_location_scorer.py,sha256=HVezI8wLb3S9W3QRC4DT1g9UXWuAIpzrf5cyFGf-uhI,3882
|
|
42
|
+
spine/db/migrations/versions/0015_symphony_memory_bridge.py,sha256=2K9zCXNDI1AO2CRKKM0MnrjMzNv634gyIjv63Cmo71w,6109
|
|
43
|
+
spine/db/migrations/versions/0016_thread_index.py,sha256=E8FgZ_sbEJ3tITQxdXxcLxT5--o8HrFNhn42Y_owVUk,4044
|
|
44
|
+
spine/db/migrations/versions/0017_memory_share.py,sha256=juOrbzuLO2pR5NPrv2osoJ-3B-c5zJja5UlgsFDzYD4,3842
|
|
45
|
+
spine/db/migrations/versions/0018_curator_runs.py,sha256=k1vNRg18jBRJqOc27lJKc4XtL1djnf5VUZCXuqKbfdY,11539
|
|
46
|
+
spine/db/migrations/versions/0019_curator_pressure.py,sha256=g4FSBeJjAbZgEqoU4_0wYnY-vMv-koenG7CG6hXvbMo,4324
|
|
47
|
+
spine/db/migrations/versions/0020_optimization_runs.py,sha256=cmAaPB4C025GMEpYyFeHMWYXd5rHR85BD7zeAgfxdU4,3683
|
|
48
|
+
spine/db/migrations/versions/0021_origin_location.py,sha256=TB7vnoeoyfXcMs4VvNas3zOcuNlW8x9tiG2w2VrzECE,3471
|
|
49
|
+
spine/embeddings/__init__.py,sha256=LMJVsMnIcg2v2ywoEetbIlRKaeMSYUit_ukv17A7Q5o,16018
|
|
50
|
+
spine/embeddings/router.py,sha256=nb-bAD4scRdmzYzgl-1XGr6KNTYiKZDvUGJe4TWeHZU,2510
|
|
51
|
+
spine/events/__init__.py,sha256=s05Ag4WbN0MOKj73av_J2dyyqjnQlo5T_H5XakUPLIY,59
|
|
52
|
+
spine/inject/__init__.py,sha256=aHx3KlqPmICIMdWBrQzSt5pXrNr_54Wa0RpHV3vydRs,74
|
|
53
|
+
spine/inject/annotations.py,sha256=kYENfKwwv8nLi2dbP7Lx72Edmde69YAuoqZHHg5qix0,5802
|
|
54
|
+
spine/inject/decisions.py,sha256=mWG9krXPKyktgbQ5DwC-JRp4qm85w9Xy-H8X9X9kkSw,20768
|
|
55
|
+
spine/inject/renderer.py,sha256=TugY4ELoXxJawDrMb5k5lCjqRqCplBLvJL_RFp67Jdc,2896
|
|
56
|
+
spine/inject/router.py,sha256=PTGkzaWr9zy8gb0elYVtdXPPOwKdOR0h-eKgjol6DOI,9862
|
|
57
|
+
spine/inject/scorer.py,sha256=gIMmfnVhlL41FjqbmLKrJTDdVcz6P0kqK7itrxBHvnQ,25683
|
|
58
|
+
spine/inject/service.py,sha256=BZwgGiOvhdP_J9N4OPMw_v1iTRvybttFNFm7tLUpDJ8,28089
|
|
59
|
+
spine/learner/__init__.py,sha256=4COnofKTTvIgCBQCUiwqkku9W1430wSOWPT_eV2RCy4,37
|
|
60
|
+
spine/learner/contracts.py,sha256=JhQEm7XSzIchiPt7tY312aI9qZK6tbXx4u7bQ0cbB54,740
|
|
61
|
+
spine/learner/evidence.py,sha256=8ebU5eWm8D9jkv4UxIh68sIIomuq0B-zB0CX_njT23o,12147
|
|
62
|
+
spine/learner/locking.py,sha256=A8nFsnFJBzofnBgl8264og-5wLgaBql_dO78cW3Zyqk,162
|
|
63
|
+
spine/learner/model.py,sha256=rBqr347CHwYQxEMeTGr4UtoKZWJ4ybVenm0fp2OHuoA,29320
|
|
64
|
+
spine/learner/router.py,sha256=d3UTqRduR50rJeM6gey_Zo1YEC3GqWctuItkCX_UU9M,745
|
|
65
|
+
spine/learner/service.py,sha256=Zp5UeoJ62AemC2_eOt-DkhdRKu28uDIiUY3eKzsBKlM,31286
|
|
66
|
+
spine/learner/worker.py,sha256=-s9PvjXSz4wrWOgtf1KL_aZoxiM6UwxUmZrTdIjL_4s,1987
|
|
67
|
+
spine/m2k/__init__.py,sha256=KxAeYhfs--Fsx4VMxTpsKaxEt6w22XiwmljGbpykWvE,60
|
|
68
|
+
spine/m2k/contracts.py,sha256=BFj7xQaWUVF0_jDsR9rqgO287I11F1br2LI9GrXCvos,11742
|
|
69
|
+
spine/m2k/router.py,sha256=2DZnm-6Yj0uaD4mA_i0RaAPfJ8hjU3upVrPikhNmx7E,4017
|
|
70
|
+
spine/m2k/service.py,sha256=w2uh4LZ3m97hDLWlL63IZhshDNjoFkLj5AsvQJ9owGk,60509
|
|
71
|
+
spine/memory/__init__.py,sha256=uPUlnOWybrWRKS0989PB2ZI91SXSFf-RlInOF44Ri3k,55
|
|
72
|
+
spine/memory/router.py,sha256=pgu9EndOeVhlKJtam2lo36F8E8VQ562wQiNbmhXm0dA,12829
|
|
73
|
+
spine/memory/service.py,sha256=aHAx2fihGMoIaNkGoamc7zsWSGGfjntSIWh3RpYigNI,51915
|
|
74
|
+
spine/queue/__init__.py,sha256=DO-oFNzlwOqVwZeRH8-GE6nn2q3WqdYAM2B8p-jFJVI,37
|
|
75
|
+
spine/queue/contracts.py,sha256=FqoFjipGR7sU_AN9rVQMTUEVx0wrTif8E0v1NU9U7LM,4354
|
|
76
|
+
spine/queue/router.py,sha256=sx88B8iX7WyKOO-0ywGzSzVhY9QMuc4Tp_lQmpVVGBU,3752
|
|
77
|
+
spine/queue/service.py,sha256=rVvV1KhPlhGC31j6GtWyXMZc3NuWL5xw22Pd9XFL4Ig,38123
|
|
78
|
+
spine/spend/__init__.py,sha256=GUb9gsQggqJzr0gE-olorXQ58k40xpdmcZvhbN-VibU,209
|
|
79
|
+
spine/spend/contracts.py,sha256=jEdnUbYUqtdJ5DikUffoi0YNoO8qZzyFpOxUYQMNv4U,6594
|
|
80
|
+
spine/spend/reconciliation.py,sha256=Z96AkiqGH4VhvSHr0WAcqIY4cWaSNfcnyZeCzi4tCCA,8674
|
|
81
|
+
spine/spend/router.py,sha256=6ilblr3C5Nl1VScKVjwV5vwlzhu764D3hGIdJ3A7Quk,2310
|
|
82
|
+
spine/spend/service.py,sha256=aVFnRByAosYcTscmaEzZWgBwT9Ai-e8aL4kb-2znweg,9119
|
|
83
|
+
spine/spend/views.py,sha256=wL0XJASOSpjQNVBVq-S0OXM4QrXvu8qJBYGwHbZiWB4,2199
|
|
84
|
+
spine/symphony/__init__.py,sha256=qVN_9GFHqmUXcdN9vgcpqpFZ5HqT43dyCermT-qWUQQ,62
|
|
85
|
+
spine/symphony/contracts.py,sha256=TKX2ydURIaq4vtFi2Psp_RsdBebLzgafV9o5Ev92z1Y,3718
|
|
86
|
+
spine/symphony/router.py,sha256=JONgjZf4TJfBDc9u0ek5b1DH32wzutwZWR7GRpu_xTM,2506
|
|
87
|
+
spine/symphony/service.py,sha256=eWBtlslEbzhzKLz1hVVFVLBKl8e05j476j9og8hjG4s,10290
|
|
88
|
+
spine/transcripts/__init__.py,sha256=_SvXLYM2QWZ9ZHNxtifW6BNfpzHYtEYU75tAVJ1-MCI,60
|
|
89
|
+
spine/transcripts/contracts.py,sha256=LgtteVI3zKc0ZuD73F_g0eJXaUWIsDbWt8oWcuZDPcE,3636
|
|
90
|
+
spine/transcripts/router.py,sha256=G8mHEcnKHL2GcU0VRUJBUW1_hnkrALCCbMNTZroTUEQ,1970
|
|
91
|
+
spine/transcripts/service.py,sha256=I9SwrtutqA0ZXMD7m3mPpdvIAJ4opCogJvRGyywlrFc,4571
|
|
92
|
+
spine/vitals/__init__.py,sha256=4rSztnPya_42tC3QXjKJ2YdAs59XhMndri49pt8432g,212
|
|
93
|
+
spine/vitals/contracts.py,sha256=7Tfl99th96iQlBpphFLHApsvM-LRK4CfP9Qw9yO2Co4,7870
|
|
94
|
+
spine/vitals/router.py,sha256=ZKtkNFTE0Z9GSc2bx3E3b7DqyD86-O7qj40y2ZJMNyc,1980
|
|
95
|
+
spine/vitals/service.py,sha256=rFjCN2kvbtW89ISGXV6I_KvyMDeLPi276jNPycLHkhA,14379
|
|
96
|
+
spine/_deploy/Dockerfile,sha256=pEY1KLEndKPj9RIfLw26vF0EScC0l2ypWt2zearo-Ws,616
|
|
97
|
+
spine/_deploy/README.md,sha256=mzomN0CLnDh5C5OlEb7n3DA_4B21RDJa-VQqBdgXwuY,1219
|
|
98
|
+
spine/_deploy/pyproject.toml,sha256=KZ98V28iA9YtKlRuNG1RDZySe1JhOTWy7xMYx57GGOc,2187
|
|
99
|
+
spine/_deploy/billing-breaker/README.md,sha256=mMxXySfIVpxNLy9yVpiS2wU4RO1ddbsqW4RlNUt3b_M,25950
|
|
100
|
+
spine/_deploy/billing-breaker/billing_breaker.py,sha256=bcPG_VrELnkjbptnc7peKJVmsXjGc9rcBvak2WAOlVE,7296
|
|
101
|
+
spine/_deploy/billing-breaker/deploy.sh,sha256=IMdDsPFDH4_gTLnbpI0w6kcuEvMNptcOS-bXwSKId-w,26317
|
|
102
|
+
spine/_deploy/billing-breaker/deployment_checks.py,sha256=UZCFnOLM_0KPpeesUU0rOG3vQ9XixD77HeG4A3HotTs,40231
|
|
103
|
+
spine/_deploy/billing-breaker/main.py,sha256=ZTIa7LaY3zeHCUJZvifFuBr_-SC8yXER0oKZVGjut58,1713
|
|
104
|
+
spine/_deploy/billing-breaker/requirements.txt,sha256=JbDeMJhf0tfknfMa9P7_Fm3C4GdWKisSPAhQrADSYFE,57
|
|
105
|
+
nocturne_memory-0.1.12.dist-info/METADATA,sha256=kJiXMdr1fEDP1kwnYtAX1C2E9avDYFZSzGXsaQh8i40,2089
|
|
106
|
+
nocturne_memory-0.1.12.dist-info/WHEEL,sha256=zOwg4jB6zX2kU910N-cMawjivD6tO8NEWvE12je1bVk,87
|
|
107
|
+
nocturne_memory-0.1.12.dist-info/RECORD,,
|
spine/__init__.py
ADDED
spine/_deploy/Dockerfile
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
FROM python:3.12.13-slim@sha256:57cd7c3a7a273101a6485ba99423ee568157882804b1124b4dd04266317710de AS base
|
|
2
|
+
|
|
3
|
+
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
4
|
+
PYTHONUNBUFFERED=1
|
|
5
|
+
|
|
6
|
+
FROM base AS builder
|
|
7
|
+
|
|
8
|
+
WORKDIR /build
|
|
9
|
+
|
|
10
|
+
COPY pyproject.toml ./
|
|
11
|
+
COPY README.md ./
|
|
12
|
+
COPY Dockerfile ./
|
|
13
|
+
COPY src ./src
|
|
14
|
+
COPY infra ./infra
|
|
15
|
+
|
|
16
|
+
RUN pip wheel --no-cache-dir --no-deps --wheel-dir /wheels .
|
|
17
|
+
|
|
18
|
+
FROM base AS runtime
|
|
19
|
+
|
|
20
|
+
WORKDIR /app
|
|
21
|
+
|
|
22
|
+
COPY --from=builder /wheels /wheels
|
|
23
|
+
|
|
24
|
+
RUN pip install --no-cache-dir /wheels/nocturne_memory-*.whl && rm -rf /wheels
|
|
25
|
+
|
|
26
|
+
EXPOSE 8000
|
|
27
|
+
|
|
28
|
+
CMD ["uvicorn", "spine.main:create_app", "--factory", "--host", "0.0.0.0", "--port", "8000"]
|
spine/_deploy/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# nocturne-memory
|
|
2
|
+
|
|
3
|
+
`nocturne-memory` is NOCTURNE's Memory Palace service and migration package. It
|
|
4
|
+
is released in lockstep as a dependency of the public `nocturne-harness`
|
|
5
|
+
distribution.
|
|
6
|
+
|
|
7
|
+
The service owns the extraction consent boundary at `/v1/extractions` and
|
|
8
|
+
`/v1/approval-queue`. Pending units use the internal `candidate` lifecycle
|
|
9
|
+
state and are excluded from ordinary memory listing, search, and injection.
|
|
10
|
+
Queue decisions are append-only; approval enacts the proposed verdict through
|
|
11
|
+
revisioned head changes and typed lineage edges, while denial revision-
|
|
12
|
+
tombstones the candidate as rejected.
|
|
13
|
+
|
|
14
|
+
Injection treats memory room as a versioned share of the active model context
|
|
15
|
+
window. The share is a ceiling, not a quota: unused room remains available to
|
|
16
|
+
conversation, while pinned memories always inject and report any overflow in
|
|
17
|
+
the prepare allocation. Share and threshold join the ordinary replay learner
|
|
18
|
+
after 100 authentic, hygiene-filtered owner dispositions; every learned
|
|
19
|
+
generation remains proposed until the owner activates it.
|
|
20
|
+
|
|
21
|
+
New users should start at the [NOCTURNE quickstart](https://github.com/Nate0-1999/nocturne)
|
|
22
|
+
and install `nocturne-harness`; they do not need to install this package separately.
|