forge-obsidian 0.1.1__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.
@@ -0,0 +1,11 @@
1
+ .venv/
2
+ __pycache__/
3
+ *.pyc
4
+ .productforge/
5
+ dist/
6
+ *.egg-info/
7
+ .pytest_cache/
8
+ .product-forge/
9
+ graphify-out/
10
+ .claude/
11
+ .claude-flow/
@@ -0,0 +1,31 @@
1
+ Metadata-Version: 2.5
2
+ Name: forge-obsidian
3
+ Version: 0.1.1
4
+ Summary: Neutral, safe Obsidian interoperability primitives for Forge adapters
5
+ Project-URL: Repository, https://github.com/EdgarSocrates98/product-forge
6
+ Author: Edgar Socrates Caria
7
+ License: MIT
8
+ Keywords: forge,knowledge,obsidian,synchronization
9
+ Classifier: Development Status :: 3 - Alpha
10
+ Classifier: Intended Audience :: Developers
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Requires-Python: >=3.10
14
+ Requires-Dist: pyyaml<7,>=6.0
15
+ Description-Content-Type: text/markdown
16
+
17
+ # forge-obsidian
18
+
19
+ `forge-obsidian` is the neutral technical distribution for safe Obsidian
20
+ interoperability across Forge adapters. Its `src/forge_obsidian` package is the
21
+ canonical source; Product Forge embeds that same package in its own wheel
22
+ without copying or reimplementing the engine.
23
+
24
+ The library provides bounded Markdown/Canvas validation, authorized-vault path
25
+ safety, body-free scanning, import/export, sync planning, conflict handling,
26
+ atomic writes, receipts, rollback and skip operations. It has no dependency on
27
+ the Product Forge application runtime and never invokes the Obsidian CLI.
28
+
29
+ This package is technical infrastructure, not a seventh user-facing Forge.
30
+ Adapters must still enforce their own workspace, principal, classification and
31
+ approval policy before calling mutating operations.
@@ -0,0 +1,15 @@
1
+ # forge-obsidian
2
+
3
+ `forge-obsidian` is the neutral technical distribution for safe Obsidian
4
+ interoperability across Forge adapters. Its `src/forge_obsidian` package is the
5
+ canonical source; Product Forge embeds that same package in its own wheel
6
+ without copying or reimplementing the engine.
7
+
8
+ The library provides bounded Markdown/Canvas validation, authorized-vault path
9
+ safety, body-free scanning, import/export, sync planning, conflict handling,
10
+ atomic writes, receipts, rollback and skip operations. It has no dependency on
11
+ the Product Forge application runtime and never invokes the Obsidian CLI.
12
+
13
+ This package is technical infrastructure, not a seventh user-facing Forge.
14
+ Adapters must still enforce their own workspace, principal, classification and
15
+ approval policy before calling mutating operations.
@@ -0,0 +1,29 @@
1
+ [build-system]
2
+ requires = ["hatchling>=1.25"]
3
+ build-backend = "hatchling.build"
4
+
5
+ [project]
6
+ name = "forge-obsidian"
7
+ version = "0.1.1"
8
+ description = "Neutral, safe Obsidian interoperability primitives for Forge adapters"
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "MIT" }
12
+ authors = [{ name = "Edgar Socrates Caria" }]
13
+ keywords = ["obsidian", "forge", "knowledge", "synchronization"]
14
+ classifiers = [
15
+ "Development Status :: 3 - Alpha",
16
+ "Intended Audience :: Developers",
17
+ "License :: OSI Approved :: MIT License",
18
+ "Programming Language :: Python :: 3",
19
+ ]
20
+ dependencies = ["PyYAML>=6.0,<7"]
21
+
22
+ [project.urls]
23
+ Repository = "https://github.com/EdgarSocrates98/product-forge"
24
+
25
+ [tool.hatch.build.targets.wheel]
26
+ packages = ["src/forge_obsidian"]
27
+
28
+ [tool.hatch.build.targets.sdist]
29
+ include = ["README.md", "pyproject.toml", "src/forge_obsidian"]
@@ -0,0 +1,64 @@
1
+ """Neutral, dependency-light Obsidian interoperability library."""
2
+
3
+ from .obsidian import (
4
+ AttachmentResolver,
5
+ ConflictDetector,
6
+ ExportReceiptWriter,
7
+ FrontmatterAdapter,
8
+ ImportReceiptWriter,
9
+ KnowledgeProjector,
10
+ MarkdownDocumentParser,
11
+ ObsidianVaultError,
12
+ SyncPlanner,
13
+ VaultLocator,
14
+ VaultReader,
15
+ VaultScanner,
16
+ VaultWriter,
17
+ WikilinkResolver,
18
+ export_vault_document,
19
+ import_vault_document,
20
+ import_vault_documents,
21
+ list_obsidian_receipts,
22
+ obsidian_projection_metadata,
23
+ parse_markdown_document,
24
+ plan_vault_sync,
25
+ rollback_vault_document,
26
+ scan_vault_documents,
27
+ serialize_base_document,
28
+ skip_vault_sync,
29
+ validate_base_document,
30
+ validate_canvas_document,
31
+ validate_vault_authorization,
32
+ )
33
+
34
+ __all__ = [
35
+ "AttachmentResolver",
36
+ "ConflictDetector",
37
+ "ExportReceiptWriter",
38
+ "FrontmatterAdapter",
39
+ "ImportReceiptWriter",
40
+ "KnowledgeProjector",
41
+ "MarkdownDocumentParser",
42
+ "ObsidianVaultError",
43
+ "SyncPlanner",
44
+ "VaultLocator",
45
+ "VaultReader",
46
+ "VaultScanner",
47
+ "VaultWriter",
48
+ "WikilinkResolver",
49
+ "export_vault_document",
50
+ "import_vault_document",
51
+ "import_vault_documents",
52
+ "list_obsidian_receipts",
53
+ "obsidian_projection_metadata",
54
+ "parse_markdown_document",
55
+ "plan_vault_sync",
56
+ "rollback_vault_document",
57
+ "scan_vault_documents",
58
+ "serialize_base_document",
59
+ "skip_vault_sync",
60
+ "validate_base_document",
61
+ "validate_canvas_document",
62
+ "validate_vault_authorization",
63
+ ]
64
+