sf-smartfeed 3.0.0__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,13 @@
1
+ Apache License 2.0
2
+
3
+ Copyright 2026 SmartTasks Lab
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use
6
+ this file except in compliance with the License. You may obtain a copy at
7
+
8
+ https://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software distributed
11
+ under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
12
+ CONDITIONS OF ANY KIND, either express or implied. See the License for the
13
+ specific language governing permissions and limitations under the License.
@@ -0,0 +1,2 @@
1
+ include README.md LICENSE MANIFESTO.md
2
+ recursive-include demo *
@@ -0,0 +1,20 @@
1
+ # The SmartFeed Code
2
+
3
+ *In the voice of The Pangolin Code — bold in the open, disciplined where it counts.*
4
+
5
+ **I. Close the gap at the moment it bites.**
6
+ SmartFeed fires exactly when you must stay current across exploding sources; signal drowns in noise.
7
+
8
+ **II. Work on clone.**
9
+ A tool that needs setup before it proves itself doesn't spread. Ship the demo.
10
+
11
+ **III. Same seal, same family.**
12
+ `FEED-*` rules, one mascot, one manifesto. Kin, not clones.
13
+
14
+ **IV. Conform, then compose.**
15
+ Meet the IAIso §9 · Awareness bar, then stack with every sibling tool.
16
+
17
+ **V. Bare it all — except the secrets.**
18
+ Radical in the open (sf-smartfeed/), locked where it counts (private/).
19
+
20
+ *SmartFeed is part of the Smart* family. https://iaiso.org · https://smarttasks.cloud*
@@ -0,0 +1,15 @@
1
+ SmartFeed
2
+ Copyright 2026 SmartTasks Lab
3
+
4
+ Licensed under the Apache License, Version 2.0 (see LICENSE).
5
+
6
+ Names and affiliation
7
+ ---------------------
8
+
9
+ SmartFeed is published by SmartTasksOrg. The only package names it is
10
+ published under are those marked "registered": true in names.json.
11
+
12
+ SmartFeed here is not Fanout's "smartfeed" package on PyPI.
13
+ All other names are the property of their respective owners. Their use here
14
+ only says what the software reads, evaluates or connects to; it does not
15
+ imply affiliation, sponsorship or endorsement.
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.4
2
+ Name: sf-smartfeed
3
+ Version: 3.0.0
4
+ Summary: Distill the firehose. A tight brief of only what moves your work.
5
+ Author: SmartTasks Lab
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://smarttasks.cloud
8
+ Project-URL: Source, https://github.com/SmartTasksOrg/sf-smartfeed
9
+ Project-URL: Issues, https://github.com/SmartTasksOrg/sf-smartfeed/issues
10
+ Project-URL: Security, https://github.com/SmartTasksOrg/sf-smartfeed/security/policy
11
+ Project-URL: Changelog, https://github.com/SmartTasksOrg/sf-smartfeed/blob/master/CHANGELOG.md
12
+ Project-URL: Standard, https://iaiso.org
13
+ Keywords: smart,ai,iaiso,sf-smartfeed,devtools
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ License-File: NOTICE
22
+ Dynamic: license-file
23
+
24
+ <!-- mcp-name: io.github.smarttasksorg/sf-smartfeed -->
25
+ <h1 align="center">🦔 SmartFeed</h1>
26
+ <p align="center"><b>Distill the firehose. A tight brief of only what moves your work.</b></p>
27
+ <p align="center">
28
+ <a href="https://iaiso.org">IAIso §9 · Awareness</a> ·
29
+ <a href="https://smarttasks.cloud">SmartTasks.cloud</a> ·
30
+ <a href="#part-of-the-smart-family">the Smart* family</a>
31
+ </p>
32
+
33
+ ---
34
+
35
+ ## The firehose doubled; your day didn't.
36
+
37
+ As AI reshapes how we work, a new gap opens: you must stay current across exploding sources; signal drowns in noise. **SmartFeed** closes it —
38
+ `distill` at the exact moment the gap bites, and it works the second you clone it
39
+ (a synthetic demo ships in `demo/`).
40
+
41
+ ## Install
42
+
43
+ SmartFeed is not published on PyPI or any other package registry yet. Until
44
+ this section says otherwise, a package called `sf-smartfeed` on any registry
45
+ is not ours, and neither is `smartfeed`. The PyPI package `smartfeed` is a different project (Fanout); do not install it for this tool.
46
+
47
+ Install from a clone (Python 3.10 or later):
48
+
49
+ ```bash
50
+ git clone https://github.com/SmartTasksOrg/sf-smartfeed
51
+ cd sf-smartfeed
52
+ python -m venv .venv
53
+ . .venv/bin/activate # Windows PowerShell: .\.venv\Scripts\Activate.ps1
54
+ python -m pip install .
55
+ sf-smartfeed --demo
56
+ ```
57
+
58
+ ## Status
59
+
60
+ - **Version 3.0.0, experimental.** A small deterministic command-line tool with a bundled synthetic demo and two smoke tests.
61
+ - **Published:** nowhere yet; install from a clone (above).
62
+ - **Tested:** the 2 smoke tests in `tests/` on Python 3.12, Linux, on every push to master and every pull request (`.github/workflows/ci.yml`).
63
+ - **Not tested:** Windows and macOS; Python versions other than 3.12.
64
+ - **Security review:** none independent. Report vulnerabilities as described in [SECURITY.md](SECURITY.md).
65
+
66
+ ## Run it in your stack
67
+
68
+ | Where you work | How you run it |
69
+ |---|---|
70
+ | **Python** | from a clone: `python -m pip install .` (not on PyPI yet) |
71
+ | **CI / pre-commit** | add the hook from [`.pre-commit-hooks.yaml`](.pre-commit-hooks.yaml) |
72
+
73
+ ## What's in this repo
74
+
75
+ - **Core engine** — [`src/sf_smartfeed/`](src/sf_smartfeed/): distill() -> Brief. Deterministic, dependency-free.
76
+ - **CLI** — `sf-smartfeed --demo` (and `--version`): a deterministic demo of the core.
77
+ - **Also included** — a runnable [`demo/`](demo/), [`examples/`](examples/), the IAIso mapping [`spec/iaiso-map.json`](spec/iaiso-map.json), a browser [`site/playground.html`](site/playground.html), plus public smoke tests in `tests/`.
78
+
79
+ ## How it works
80
+
81
+ Rule IDs are namespaced `FEED-*` so output looks kin to the rest of the family
82
+ (SmartPangolin's `SEC-*`, etc.). Deterministic, dependency-free, fail-loud.
83
+
84
+ ### The data objects (UML)
85
+
86
+ These are real dataclasses in [`src/sf_smartfeed/models.py`](src/sf_smartfeed/models.py) — the
87
+ diagram and the code are the same thing:
88
+
89
+ ```mermaid
90
+ classDiagram
91
+ class Signal {
92
+ +source: str
93
+ +score: float
94
+ +velocity: float
95
+ }
96
+ class Brief {
97
+ +items: list[Signal]
98
+ +dedup_ratio: float
99
+ }
100
+ class IAIsoControl {
101
+ +section: str
102
+ +name: str
103
+ }
104
+ Brief ..> IAIsoControl : conforms to
105
+ ```
106
+
107
+ ## Where it sits in the architecture
108
+
109
+ SmartFeed doesn't stand alone — it stacks with the family, and everything conforms to
110
+ the IAIso standard — the same standard that governs SmartTasks' own apps, while each tool here stays standalone and drops into your architecture:
111
+
112
+ ```mermaid
113
+ graph LR
114
+ IAIso([IAIso standard]):::std
115
+ Cloud([SmartTasks.cloud]):::cloud
116
+ SmartPangolin[SmartPangolin]:::tool
117
+ SmartPrompt[SmartPrompt]:::tool
118
+ SmartCheck[SmartCheck]:::tool
119
+ SmartSeal[SmartSeal]:::tool
120
+ SmartStandard[SmartStandard]:::tool
121
+ SmartSim[SmartSim]:::tool
122
+ SmartMoat[SmartMoat]:::tool
123
+ SmartRoute[SmartRoute]:::tool
124
+ SmartFeed[SmartFeed]:::tool
125
+ SmartPangolin -->|emits clean artifacts to| SmartSeal
126
+ SmartPrompt -->|hands secret/PII flags to| SmartPangolin
127
+ SmartPrompt -->|enforces prompt rules from| SmartStandard
128
+ SmartCheck -->|stamps verified output with| SmartSeal
129
+ SmartCheck -->|checks against rules from| SmartStandard
130
+ SmartSeal -->|issues receipts consumed by| SmartCheck
131
+ SmartSeal -->|issues receipts consumed by| SmartRoute
132
+ SmartStandard -->|supplies rule sets to| SmartPrompt
133
+ SmartStandard -->|supplies rule sets to| SmartCheck
134
+ SmartSim -->|feeds role forecasts to| SmartMoat
135
+ SmartSim -->|draws signals from| SmartFeed
136
+ SmartMoat -->|consumes forecasts from| SmartSim
137
+ SmartRoute -->|verifies receipts from| SmartSeal
138
+ SmartRoute -->|enforces the standard from| SmartStandard
139
+ SmartFeed -->|feeds signals to| SmartSim
140
+ SmartFeed -->|feeds signals to| SmartMoat
141
+ SmartPangolin -.conforms.-> IAIso
142
+ SmartPangolin -.shares IAIso with.-> Cloud
143
+ SmartPrompt -.conforms.-> IAIso
144
+ SmartPrompt -.shares IAIso with.-> Cloud
145
+ SmartCheck -.conforms.-> IAIso
146
+ SmartCheck -.shares IAIso with.-> Cloud
147
+ SmartSeal -.conforms.-> IAIso
148
+ SmartSeal -.shares IAIso with.-> Cloud
149
+ SmartStandard -.conforms.-> IAIso
150
+ SmartStandard -.shares IAIso with.-> Cloud
151
+ SmartSim -.conforms.-> IAIso
152
+ SmartSim -.shares IAIso with.-> Cloud
153
+ SmartMoat -.conforms.-> IAIso
154
+ SmartMoat -.shares IAIso with.-> Cloud
155
+ SmartRoute -.conforms.-> IAIso
156
+ SmartRoute -.shares IAIso with.-> Cloud
157
+ SmartFeed -.conforms.-> IAIso
158
+ SmartFeed -.shares IAIso with.-> Cloud
159
+ IAIso -.governs.-> Cloud
160
+ classDef tool fill:#1c232d,stroke:#f5b83d,color:#efe9f5;
161
+ classDef std fill:#04121f,stroke:#46d6c8,color:#46d6c8;
162
+ classDef cloud fill:#1a1327,stroke:#a78bfa,color:#a78bfa;
163
+ style SmartFeed stroke-width:3px,stroke:#ff6b6b;
164
+ ```
165
+
166
+ - **SmartFeed feeds signals to SmartSim** →
167
+ - **SmartFeed feeds signals to SmartMoat** →
168
+
169
+ Open [`site/playground.html`](site/playground.html) for the interactive version.
170
+
171
+ ## Part of the Smart* family
172
+
173
+ One system, not nine projects — same mascot, same manifesto voice, same rule-ID style,
174
+ all aligned to the [IAIso standard](https://github.com/SmartTasksOrg/IAIso). Each is an independent, open-source, single-purpose tool you can integrate into your own architecture:
175
+
176
+ | Tool | IAIso | What it does |
177
+ |---|---|---|
178
+ | [SmartPangolin](https://github.com/SmartTasksOrg/sf-smartpangolin) | §1 · Secure Sharing | Scan before you share. Stop leaking secrets into AI models, agents, and tools. |
179
+ | [SmartPrompt](https://github.com/SmartTasksOrg/sf-smartprompt) | §4 · Context | Lint before you send. Bad prompt in, bad work out — and it's your name on it. |
180
+ | [SmartCheck](https://github.com/SmartTasksOrg/sf-smartcheck) | §2 · Verification | Check before you sign off. Catch the AI when it's confidently wrong. |
181
+ | [SmartSeal](https://github.com/SmartTasksOrg/sf-smartseal) | §3 · Provenance | Seal what you ship. A signed receipt so anyone can verify what they received. |
182
+ | [SmartStandard](https://github.com/SmartTasksOrg/sf-smartstandard) | §7 · Standards | Standardize before you scale. One shared, auditable convention for AI-assisted work. |
183
+ | [SmartSim](https://github.com/SmartTasksOrg/sf-smartsim) | §8 · Foresight | Simulate before it hits you. See your role's task-by-task collapse sequence. |
184
+ | [SmartMoat](https://github.com/SmartTasksOrg/sf-smartmoat) | §6 · Workforce | Know your moat. Score the tasks AI can't easily take — and widen them. |
185
+ | [SmartRoute](https://github.com/SmartTasksOrg/sf-smartroute) | §5 · Orchestration | Route only what you trust. Gate agents and tools with trust scores and guardrails. |
186
+
187
+ **Backed by the standard:** SmartFeed implements **IAIso §9 · Awareness**.
188
+ **Open-source edition:** this repo is the simplified, single-purpose version, built for any org to integrate into its own architecture. SmartTasks' desktop app and [SmartTasks.cloud](https://smarttasks.cloud) run a more advanced, deeply-integrated implementation of the same IAIso governance — a separate product, not this code bundled.
189
+
190
+ ## Who's behind this
191
+
192
+ - **Roen Branham** — CEO & AI Strategy Architect · CISSP-certified AI, security & governance architect; author of IAIso and sole inventor of the Z4 Semantic Fabric patent application. [LinkedIn](https://www.linkedin.com/in/roen-branham-167ab29/)
193
+ - **Le Vu Tanh** — CTO & Core Engineering Lead · Chief architect of the Cortex engine; large-scale system reliability and low-latency infrastructure — the engineer who ships what gets architected. [LinkedIn](https://www.linkedin.com/in/lee-thanh-76aa8ba0/)
194
+
195
+ The team behind IAIso & SmartTasks: a CISSP-certified security & governance architect
196
+ and a large-scale systems engineer — 20+ years shipping secure, AI-driven platforms for
197
+ regulated, blue-chip environments (Allianz, BMW, Rolls-Royce, Heidenhain).
198
+
199
+ <!-- SMARTTASKS-MODELS:START -->
200
+ ## Runs on governed local models
201
+
202
+ Governed local models let you run the whole family offline.
203
+
204
+ This tool is local-first, so pair it with models you can actually vet. **SmartTasks** publishes 21+ governance-validated GGUF builds on Hugging Face — each with a machine-readable **scorecard** (capability tiers L1 Layman → L5 Agentic, IAIso conformance invariants (pass/warn/fail), OWASP-mapped garak red-team, transparency probes (viewpoint-alignment / over-refusal), and per-file SHA-256). Gate model selection on evidence, not vibes — and every finding, including warnings, is published in full.
205
+
206
+ → **[SmartTasks on Hugging Face](https://huggingface.co/smarttasks)** · [Qwen3.6-27B](https://huggingface.co/smarttasks/Qwen3.6-27B-GGUF) (L5 agentic) · [react-agent-coder-llama-3.1-8b](https://huggingface.co/smarttasks/react-agent-coder-llama-3.1-8b-GGUF) (agentic coder) · [gpt-oss-20b](https://huggingface.co/smarttasks/gpt-oss-20b-GGUF) (open reasoning)
207
+ <!-- SMARTTASKS-MODELS:END -->
208
+
209
+ ## Get in touch
210
+
211
+ - **Companies & enterprises:** [enterprise@smarttasks.cloud](mailto:enterprise@smarttasks.cloud) — we help
212
+ teams integrate SmartFeed + IAIso into their architecture so governance and
213
+ audit-readiness become a byproduct of how they already work.
214
+ - **The standard:** [IAIso](https://github.com/SmartTasksOrg/IAIso) · [iaiso.org](https://iaiso.org)
215
+ - **The product:** [SmartTasks.cloud](https://smarttasks.cloud)
216
+
217
+ Built by **SmartTasks Lab**. Apache-2.0. Contributions welcome.
@@ -0,0 +1,194 @@
1
+ <!-- mcp-name: io.github.smarttasksorg/sf-smartfeed -->
2
+ <h1 align="center">🦔 SmartFeed</h1>
3
+ <p align="center"><b>Distill the firehose. A tight brief of only what moves your work.</b></p>
4
+ <p align="center">
5
+ <a href="https://iaiso.org">IAIso §9 · Awareness</a> ·
6
+ <a href="https://smarttasks.cloud">SmartTasks.cloud</a> ·
7
+ <a href="#part-of-the-smart-family">the Smart* family</a>
8
+ </p>
9
+
10
+ ---
11
+
12
+ ## The firehose doubled; your day didn't.
13
+
14
+ As AI reshapes how we work, a new gap opens: you must stay current across exploding sources; signal drowns in noise. **SmartFeed** closes it —
15
+ `distill` at the exact moment the gap bites, and it works the second you clone it
16
+ (a synthetic demo ships in `demo/`).
17
+
18
+ ## Install
19
+
20
+ SmartFeed is not published on PyPI or any other package registry yet. Until
21
+ this section says otherwise, a package called `sf-smartfeed` on any registry
22
+ is not ours, and neither is `smartfeed`. The PyPI package `smartfeed` is a different project (Fanout); do not install it for this tool.
23
+
24
+ Install from a clone (Python 3.10 or later):
25
+
26
+ ```bash
27
+ git clone https://github.com/SmartTasksOrg/sf-smartfeed
28
+ cd sf-smartfeed
29
+ python -m venv .venv
30
+ . .venv/bin/activate # Windows PowerShell: .\.venv\Scripts\Activate.ps1
31
+ python -m pip install .
32
+ sf-smartfeed --demo
33
+ ```
34
+
35
+ ## Status
36
+
37
+ - **Version 3.0.0, experimental.** A small deterministic command-line tool with a bundled synthetic demo and two smoke tests.
38
+ - **Published:** nowhere yet; install from a clone (above).
39
+ - **Tested:** the 2 smoke tests in `tests/` on Python 3.12, Linux, on every push to master and every pull request (`.github/workflows/ci.yml`).
40
+ - **Not tested:** Windows and macOS; Python versions other than 3.12.
41
+ - **Security review:** none independent. Report vulnerabilities as described in [SECURITY.md](SECURITY.md).
42
+
43
+ ## Run it in your stack
44
+
45
+ | Where you work | How you run it |
46
+ |---|---|
47
+ | **Python** | from a clone: `python -m pip install .` (not on PyPI yet) |
48
+ | **CI / pre-commit** | add the hook from [`.pre-commit-hooks.yaml`](.pre-commit-hooks.yaml) |
49
+
50
+ ## What's in this repo
51
+
52
+ - **Core engine** — [`src/sf_smartfeed/`](src/sf_smartfeed/): distill() -> Brief. Deterministic, dependency-free.
53
+ - **CLI** — `sf-smartfeed --demo` (and `--version`): a deterministic demo of the core.
54
+ - **Also included** — a runnable [`demo/`](demo/), [`examples/`](examples/), the IAIso mapping [`spec/iaiso-map.json`](spec/iaiso-map.json), a browser [`site/playground.html`](site/playground.html), plus public smoke tests in `tests/`.
55
+
56
+ ## How it works
57
+
58
+ Rule IDs are namespaced `FEED-*` so output looks kin to the rest of the family
59
+ (SmartPangolin's `SEC-*`, etc.). Deterministic, dependency-free, fail-loud.
60
+
61
+ ### The data objects (UML)
62
+
63
+ These are real dataclasses in [`src/sf_smartfeed/models.py`](src/sf_smartfeed/models.py) — the
64
+ diagram and the code are the same thing:
65
+
66
+ ```mermaid
67
+ classDiagram
68
+ class Signal {
69
+ +source: str
70
+ +score: float
71
+ +velocity: float
72
+ }
73
+ class Brief {
74
+ +items: list[Signal]
75
+ +dedup_ratio: float
76
+ }
77
+ class IAIsoControl {
78
+ +section: str
79
+ +name: str
80
+ }
81
+ Brief ..> IAIsoControl : conforms to
82
+ ```
83
+
84
+ ## Where it sits in the architecture
85
+
86
+ SmartFeed doesn't stand alone — it stacks with the family, and everything conforms to
87
+ the IAIso standard — the same standard that governs SmartTasks' own apps, while each tool here stays standalone and drops into your architecture:
88
+
89
+ ```mermaid
90
+ graph LR
91
+ IAIso([IAIso standard]):::std
92
+ Cloud([SmartTasks.cloud]):::cloud
93
+ SmartPangolin[SmartPangolin]:::tool
94
+ SmartPrompt[SmartPrompt]:::tool
95
+ SmartCheck[SmartCheck]:::tool
96
+ SmartSeal[SmartSeal]:::tool
97
+ SmartStandard[SmartStandard]:::tool
98
+ SmartSim[SmartSim]:::tool
99
+ SmartMoat[SmartMoat]:::tool
100
+ SmartRoute[SmartRoute]:::tool
101
+ SmartFeed[SmartFeed]:::tool
102
+ SmartPangolin -->|emits clean artifacts to| SmartSeal
103
+ SmartPrompt -->|hands secret/PII flags to| SmartPangolin
104
+ SmartPrompt -->|enforces prompt rules from| SmartStandard
105
+ SmartCheck -->|stamps verified output with| SmartSeal
106
+ SmartCheck -->|checks against rules from| SmartStandard
107
+ SmartSeal -->|issues receipts consumed by| SmartCheck
108
+ SmartSeal -->|issues receipts consumed by| SmartRoute
109
+ SmartStandard -->|supplies rule sets to| SmartPrompt
110
+ SmartStandard -->|supplies rule sets to| SmartCheck
111
+ SmartSim -->|feeds role forecasts to| SmartMoat
112
+ SmartSim -->|draws signals from| SmartFeed
113
+ SmartMoat -->|consumes forecasts from| SmartSim
114
+ SmartRoute -->|verifies receipts from| SmartSeal
115
+ SmartRoute -->|enforces the standard from| SmartStandard
116
+ SmartFeed -->|feeds signals to| SmartSim
117
+ SmartFeed -->|feeds signals to| SmartMoat
118
+ SmartPangolin -.conforms.-> IAIso
119
+ SmartPangolin -.shares IAIso with.-> Cloud
120
+ SmartPrompt -.conforms.-> IAIso
121
+ SmartPrompt -.shares IAIso with.-> Cloud
122
+ SmartCheck -.conforms.-> IAIso
123
+ SmartCheck -.shares IAIso with.-> Cloud
124
+ SmartSeal -.conforms.-> IAIso
125
+ SmartSeal -.shares IAIso with.-> Cloud
126
+ SmartStandard -.conforms.-> IAIso
127
+ SmartStandard -.shares IAIso with.-> Cloud
128
+ SmartSim -.conforms.-> IAIso
129
+ SmartSim -.shares IAIso with.-> Cloud
130
+ SmartMoat -.conforms.-> IAIso
131
+ SmartMoat -.shares IAIso with.-> Cloud
132
+ SmartRoute -.conforms.-> IAIso
133
+ SmartRoute -.shares IAIso with.-> Cloud
134
+ SmartFeed -.conforms.-> IAIso
135
+ SmartFeed -.shares IAIso with.-> Cloud
136
+ IAIso -.governs.-> Cloud
137
+ classDef tool fill:#1c232d,stroke:#f5b83d,color:#efe9f5;
138
+ classDef std fill:#04121f,stroke:#46d6c8,color:#46d6c8;
139
+ classDef cloud fill:#1a1327,stroke:#a78bfa,color:#a78bfa;
140
+ style SmartFeed stroke-width:3px,stroke:#ff6b6b;
141
+ ```
142
+
143
+ - **SmartFeed feeds signals to SmartSim** →
144
+ - **SmartFeed feeds signals to SmartMoat** →
145
+
146
+ Open [`site/playground.html`](site/playground.html) for the interactive version.
147
+
148
+ ## Part of the Smart* family
149
+
150
+ One system, not nine projects — same mascot, same manifesto voice, same rule-ID style,
151
+ all aligned to the [IAIso standard](https://github.com/SmartTasksOrg/IAIso). Each is an independent, open-source, single-purpose tool you can integrate into your own architecture:
152
+
153
+ | Tool | IAIso | What it does |
154
+ |---|---|---|
155
+ | [SmartPangolin](https://github.com/SmartTasksOrg/sf-smartpangolin) | §1 · Secure Sharing | Scan before you share. Stop leaking secrets into AI models, agents, and tools. |
156
+ | [SmartPrompt](https://github.com/SmartTasksOrg/sf-smartprompt) | §4 · Context | Lint before you send. Bad prompt in, bad work out — and it's your name on it. |
157
+ | [SmartCheck](https://github.com/SmartTasksOrg/sf-smartcheck) | §2 · Verification | Check before you sign off. Catch the AI when it's confidently wrong. |
158
+ | [SmartSeal](https://github.com/SmartTasksOrg/sf-smartseal) | §3 · Provenance | Seal what you ship. A signed receipt so anyone can verify what they received. |
159
+ | [SmartStandard](https://github.com/SmartTasksOrg/sf-smartstandard) | §7 · Standards | Standardize before you scale. One shared, auditable convention for AI-assisted work. |
160
+ | [SmartSim](https://github.com/SmartTasksOrg/sf-smartsim) | §8 · Foresight | Simulate before it hits you. See your role's task-by-task collapse sequence. |
161
+ | [SmartMoat](https://github.com/SmartTasksOrg/sf-smartmoat) | §6 · Workforce | Know your moat. Score the tasks AI can't easily take — and widen them. |
162
+ | [SmartRoute](https://github.com/SmartTasksOrg/sf-smartroute) | §5 · Orchestration | Route only what you trust. Gate agents and tools with trust scores and guardrails. |
163
+
164
+ **Backed by the standard:** SmartFeed implements **IAIso §9 · Awareness**.
165
+ **Open-source edition:** this repo is the simplified, single-purpose version, built for any org to integrate into its own architecture. SmartTasks' desktop app and [SmartTasks.cloud](https://smarttasks.cloud) run a more advanced, deeply-integrated implementation of the same IAIso governance — a separate product, not this code bundled.
166
+
167
+ ## Who's behind this
168
+
169
+ - **Roen Branham** — CEO & AI Strategy Architect · CISSP-certified AI, security & governance architect; author of IAIso and sole inventor of the Z4 Semantic Fabric patent application. [LinkedIn](https://www.linkedin.com/in/roen-branham-167ab29/)
170
+ - **Le Vu Tanh** — CTO & Core Engineering Lead · Chief architect of the Cortex engine; large-scale system reliability and low-latency infrastructure — the engineer who ships what gets architected. [LinkedIn](https://www.linkedin.com/in/lee-thanh-76aa8ba0/)
171
+
172
+ The team behind IAIso & SmartTasks: a CISSP-certified security & governance architect
173
+ and a large-scale systems engineer — 20+ years shipping secure, AI-driven platforms for
174
+ regulated, blue-chip environments (Allianz, BMW, Rolls-Royce, Heidenhain).
175
+
176
+ <!-- SMARTTASKS-MODELS:START -->
177
+ ## Runs on governed local models
178
+
179
+ Governed local models let you run the whole family offline.
180
+
181
+ This tool is local-first, so pair it with models you can actually vet. **SmartTasks** publishes 21+ governance-validated GGUF builds on Hugging Face — each with a machine-readable **scorecard** (capability tiers L1 Layman → L5 Agentic, IAIso conformance invariants (pass/warn/fail), OWASP-mapped garak red-team, transparency probes (viewpoint-alignment / over-refusal), and per-file SHA-256). Gate model selection on evidence, not vibes — and every finding, including warnings, is published in full.
182
+
183
+ → **[SmartTasks on Hugging Face](https://huggingface.co/smarttasks)** · [Qwen3.6-27B](https://huggingface.co/smarttasks/Qwen3.6-27B-GGUF) (L5 agentic) · [react-agent-coder-llama-3.1-8b](https://huggingface.co/smarttasks/react-agent-coder-llama-3.1-8b-GGUF) (agentic coder) · [gpt-oss-20b](https://huggingface.co/smarttasks/gpt-oss-20b-GGUF) (open reasoning)
184
+ <!-- SMARTTASKS-MODELS:END -->
185
+
186
+ ## Get in touch
187
+
188
+ - **Companies & enterprises:** [enterprise@smarttasks.cloud](mailto:enterprise@smarttasks.cloud) — we help
189
+ teams integrate SmartFeed + IAIso into their architecture so governance and
190
+ audit-readiness become a byproduct of how they already work.
191
+ - **The standard:** [IAIso](https://github.com/SmartTasksOrg/IAIso) · [iaiso.org](https://iaiso.org)
192
+ - **The product:** [SmartTasks.cloud](https://smarttasks.cloud)
193
+
194
+ Built by **SmartTasks Lab**. Apache-2.0. Contributions welcome.
@@ -0,0 +1,2 @@
1
+ # SmartFeed demo
2
+ Bundled sample data; `sf-smartfeed --demo` uses built-ins.
@@ -0,0 +1,35 @@
1
+ [build-system]
2
+ requires = ["setuptools>=77"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "sf-smartfeed"
7
+ version = "3.0.0"
8
+ description = "Distill the firehose. A tight brief of only what moves your work."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = "Apache-2.0"
12
+ authors = [{ name = "SmartTasks Lab" }]
13
+ keywords = ["smart", "ai", "iaiso", "sf-smartfeed", "devtools"]
14
+ dependencies = []
15
+ license-files = ["LICENSE", "NOTICE"]
16
+ classifiers = [
17
+ "Development Status :: 3 - Alpha",
18
+ "Intended Audience :: Developers",
19
+ "Operating System :: OS Independent",
20
+ "Programming Language :: Python :: 3",
21
+ ]
22
+
23
+ [project.urls]
24
+ Homepage = "https://smarttasks.cloud"
25
+ Source = "https://github.com/SmartTasksOrg/sf-smartfeed"
26
+ Issues = "https://github.com/SmartTasksOrg/sf-smartfeed/issues"
27
+ Security = "https://github.com/SmartTasksOrg/sf-smartfeed/security/policy"
28
+ Changelog = "https://github.com/SmartTasksOrg/sf-smartfeed/blob/master/CHANGELOG.md"
29
+ Standard = "https://iaiso.org"
30
+
31
+ [project.scripts]
32
+ sf-smartfeed = "sf_smartfeed.cli:main"
33
+
34
+ [tool.setuptools.packages.find]
35
+ where = ["src"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,2 @@
1
+ """SmartFeed — Distill the firehose. A tight brief of only what moves your work."""
2
+ from ._version import __version__
@@ -0,0 +1,3 @@
1
+ from .cli import main
2
+ import sys
3
+ sys.exit(main())
@@ -0,0 +1 @@
1
+ __version__ = "3.0.0"
@@ -0,0 +1,35 @@
1
+ """SmartFeed CLI — run `sf-smartfeed --demo`."""
2
+ import os, sys, json
3
+ from . import core
4
+ from ._version import __version__
5
+
6
+
7
+ def _demo_dir():
8
+ return os.path.join(os.path.dirname(__file__), "..", "..", "demo")
9
+
10
+
11
+ def main(argv=None):
12
+ argv = argv if argv is not None else sys.argv[1:]
13
+ if "--version" in argv:
14
+ print(f"SmartFeed {__version__}"); return 0
15
+ demo = "--demo" in argv or not argv
16
+ print(f"\n🦔 SmartFeed {__version__} · IAIso §9 · Awareness")
17
+ result = core_demo()
18
+ print(result)
19
+ print(f"\nBacked by IAIso §9 · Awareness · part of the Smart* family · https://smarttasks.cloud\n")
20
+ return 0
21
+
22
+
23
+ def core_demo() -> str:
24
+ return _DEMO()
25
+
26
+
27
+ def _DEMO():
28
+ b = core.distill()
29
+ out = [f"distilled brief (dedup {int(b.dedup_ratio*100)}%):"]
30
+ for s in b.items:
31
+ out.append(f" • [{s.source}] score {s.score} (v{s.velocity})")
32
+ return "\n".join(out)
33
+
34
+ if __name__ == "__main__":
35
+ sys.exit(main())
@@ -0,0 +1,19 @@
1
+ """SmartFeed core — distill the firehose into a brief."""
2
+ import json, os
3
+ from .models import Signal, Brief
4
+
5
+ def _stream():
6
+ return [Signal("hn", 88, 9.1), Signal("hn", 86, 8.8), Signal("reddit", 62, 4.2),
7
+ Signal("gtrends", 70, 6.0), Signal("reddit", 61, 4.0), Signal("arxiv", 55, 3.1),
8
+ Signal("gtrends", 71, 6.2), Signal("news", 66, 5.0)]
9
+
10
+ def distill(top: int = 5) -> Brief:
11
+ sigs = _stream()
12
+ seen, deduped = set(), []
13
+ for s in sorted(sigs, key=lambda x: -x.score):
14
+ key = (s.source, round(s.score / 5))
15
+ if key in seen:
16
+ continue
17
+ seen.add(key); deduped.append(s)
18
+ dedup_ratio = round(1 - len(deduped) / len(sigs), 2)
19
+ return Brief(deduped[:top], dedup_ratio)
@@ -0,0 +1,14 @@
1
+ """UML data objects for SmartFeed — the diagram in the README is these classes."""
2
+ from __future__ import annotations
3
+ from dataclasses import dataclass, field
4
+
5
+ @dataclass
6
+ class Signal:
7
+ source: str
8
+ score: float
9
+ velocity: float
10
+
11
+ @dataclass
12
+ class Brief:
13
+ items: list[Signal]
14
+ dedup_ratio: float
@@ -0,0 +1,217 @@
1
+ Metadata-Version: 2.4
2
+ Name: sf-smartfeed
3
+ Version: 3.0.0
4
+ Summary: Distill the firehose. A tight brief of only what moves your work.
5
+ Author: SmartTasks Lab
6
+ License-Expression: Apache-2.0
7
+ Project-URL: Homepage, https://smarttasks.cloud
8
+ Project-URL: Source, https://github.com/SmartTasksOrg/sf-smartfeed
9
+ Project-URL: Issues, https://github.com/SmartTasksOrg/sf-smartfeed/issues
10
+ Project-URL: Security, https://github.com/SmartTasksOrg/sf-smartfeed/security/policy
11
+ Project-URL: Changelog, https://github.com/SmartTasksOrg/sf-smartfeed/blob/master/CHANGELOG.md
12
+ Project-URL: Standard, https://iaiso.org
13
+ Keywords: smart,ai,iaiso,sf-smartfeed,devtools
14
+ Classifier: Development Status :: 3 - Alpha
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Programming Language :: Python :: 3
18
+ Requires-Python: >=3.10
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ License-File: NOTICE
22
+ Dynamic: license-file
23
+
24
+ <!-- mcp-name: io.github.smarttasksorg/sf-smartfeed -->
25
+ <h1 align="center">🦔 SmartFeed</h1>
26
+ <p align="center"><b>Distill the firehose. A tight brief of only what moves your work.</b></p>
27
+ <p align="center">
28
+ <a href="https://iaiso.org">IAIso §9 · Awareness</a> ·
29
+ <a href="https://smarttasks.cloud">SmartTasks.cloud</a> ·
30
+ <a href="#part-of-the-smart-family">the Smart* family</a>
31
+ </p>
32
+
33
+ ---
34
+
35
+ ## The firehose doubled; your day didn't.
36
+
37
+ As AI reshapes how we work, a new gap opens: you must stay current across exploding sources; signal drowns in noise. **SmartFeed** closes it —
38
+ `distill` at the exact moment the gap bites, and it works the second you clone it
39
+ (a synthetic demo ships in `demo/`).
40
+
41
+ ## Install
42
+
43
+ SmartFeed is not published on PyPI or any other package registry yet. Until
44
+ this section says otherwise, a package called `sf-smartfeed` on any registry
45
+ is not ours, and neither is `smartfeed`. The PyPI package `smartfeed` is a different project (Fanout); do not install it for this tool.
46
+
47
+ Install from a clone (Python 3.10 or later):
48
+
49
+ ```bash
50
+ git clone https://github.com/SmartTasksOrg/sf-smartfeed
51
+ cd sf-smartfeed
52
+ python -m venv .venv
53
+ . .venv/bin/activate # Windows PowerShell: .\.venv\Scripts\Activate.ps1
54
+ python -m pip install .
55
+ sf-smartfeed --demo
56
+ ```
57
+
58
+ ## Status
59
+
60
+ - **Version 3.0.0, experimental.** A small deterministic command-line tool with a bundled synthetic demo and two smoke tests.
61
+ - **Published:** nowhere yet; install from a clone (above).
62
+ - **Tested:** the 2 smoke tests in `tests/` on Python 3.12, Linux, on every push to master and every pull request (`.github/workflows/ci.yml`).
63
+ - **Not tested:** Windows and macOS; Python versions other than 3.12.
64
+ - **Security review:** none independent. Report vulnerabilities as described in [SECURITY.md](SECURITY.md).
65
+
66
+ ## Run it in your stack
67
+
68
+ | Where you work | How you run it |
69
+ |---|---|
70
+ | **Python** | from a clone: `python -m pip install .` (not on PyPI yet) |
71
+ | **CI / pre-commit** | add the hook from [`.pre-commit-hooks.yaml`](.pre-commit-hooks.yaml) |
72
+
73
+ ## What's in this repo
74
+
75
+ - **Core engine** — [`src/sf_smartfeed/`](src/sf_smartfeed/): distill() -> Brief. Deterministic, dependency-free.
76
+ - **CLI** — `sf-smartfeed --demo` (and `--version`): a deterministic demo of the core.
77
+ - **Also included** — a runnable [`demo/`](demo/), [`examples/`](examples/), the IAIso mapping [`spec/iaiso-map.json`](spec/iaiso-map.json), a browser [`site/playground.html`](site/playground.html), plus public smoke tests in `tests/`.
78
+
79
+ ## How it works
80
+
81
+ Rule IDs are namespaced `FEED-*` so output looks kin to the rest of the family
82
+ (SmartPangolin's `SEC-*`, etc.). Deterministic, dependency-free, fail-loud.
83
+
84
+ ### The data objects (UML)
85
+
86
+ These are real dataclasses in [`src/sf_smartfeed/models.py`](src/sf_smartfeed/models.py) — the
87
+ diagram and the code are the same thing:
88
+
89
+ ```mermaid
90
+ classDiagram
91
+ class Signal {
92
+ +source: str
93
+ +score: float
94
+ +velocity: float
95
+ }
96
+ class Brief {
97
+ +items: list[Signal]
98
+ +dedup_ratio: float
99
+ }
100
+ class IAIsoControl {
101
+ +section: str
102
+ +name: str
103
+ }
104
+ Brief ..> IAIsoControl : conforms to
105
+ ```
106
+
107
+ ## Where it sits in the architecture
108
+
109
+ SmartFeed doesn't stand alone — it stacks with the family, and everything conforms to
110
+ the IAIso standard — the same standard that governs SmartTasks' own apps, while each tool here stays standalone and drops into your architecture:
111
+
112
+ ```mermaid
113
+ graph LR
114
+ IAIso([IAIso standard]):::std
115
+ Cloud([SmartTasks.cloud]):::cloud
116
+ SmartPangolin[SmartPangolin]:::tool
117
+ SmartPrompt[SmartPrompt]:::tool
118
+ SmartCheck[SmartCheck]:::tool
119
+ SmartSeal[SmartSeal]:::tool
120
+ SmartStandard[SmartStandard]:::tool
121
+ SmartSim[SmartSim]:::tool
122
+ SmartMoat[SmartMoat]:::tool
123
+ SmartRoute[SmartRoute]:::tool
124
+ SmartFeed[SmartFeed]:::tool
125
+ SmartPangolin -->|emits clean artifacts to| SmartSeal
126
+ SmartPrompt -->|hands secret/PII flags to| SmartPangolin
127
+ SmartPrompt -->|enforces prompt rules from| SmartStandard
128
+ SmartCheck -->|stamps verified output with| SmartSeal
129
+ SmartCheck -->|checks against rules from| SmartStandard
130
+ SmartSeal -->|issues receipts consumed by| SmartCheck
131
+ SmartSeal -->|issues receipts consumed by| SmartRoute
132
+ SmartStandard -->|supplies rule sets to| SmartPrompt
133
+ SmartStandard -->|supplies rule sets to| SmartCheck
134
+ SmartSim -->|feeds role forecasts to| SmartMoat
135
+ SmartSim -->|draws signals from| SmartFeed
136
+ SmartMoat -->|consumes forecasts from| SmartSim
137
+ SmartRoute -->|verifies receipts from| SmartSeal
138
+ SmartRoute -->|enforces the standard from| SmartStandard
139
+ SmartFeed -->|feeds signals to| SmartSim
140
+ SmartFeed -->|feeds signals to| SmartMoat
141
+ SmartPangolin -.conforms.-> IAIso
142
+ SmartPangolin -.shares IAIso with.-> Cloud
143
+ SmartPrompt -.conforms.-> IAIso
144
+ SmartPrompt -.shares IAIso with.-> Cloud
145
+ SmartCheck -.conforms.-> IAIso
146
+ SmartCheck -.shares IAIso with.-> Cloud
147
+ SmartSeal -.conforms.-> IAIso
148
+ SmartSeal -.shares IAIso with.-> Cloud
149
+ SmartStandard -.conforms.-> IAIso
150
+ SmartStandard -.shares IAIso with.-> Cloud
151
+ SmartSim -.conforms.-> IAIso
152
+ SmartSim -.shares IAIso with.-> Cloud
153
+ SmartMoat -.conforms.-> IAIso
154
+ SmartMoat -.shares IAIso with.-> Cloud
155
+ SmartRoute -.conforms.-> IAIso
156
+ SmartRoute -.shares IAIso with.-> Cloud
157
+ SmartFeed -.conforms.-> IAIso
158
+ SmartFeed -.shares IAIso with.-> Cloud
159
+ IAIso -.governs.-> Cloud
160
+ classDef tool fill:#1c232d,stroke:#f5b83d,color:#efe9f5;
161
+ classDef std fill:#04121f,stroke:#46d6c8,color:#46d6c8;
162
+ classDef cloud fill:#1a1327,stroke:#a78bfa,color:#a78bfa;
163
+ style SmartFeed stroke-width:3px,stroke:#ff6b6b;
164
+ ```
165
+
166
+ - **SmartFeed feeds signals to SmartSim** →
167
+ - **SmartFeed feeds signals to SmartMoat** →
168
+
169
+ Open [`site/playground.html`](site/playground.html) for the interactive version.
170
+
171
+ ## Part of the Smart* family
172
+
173
+ One system, not nine projects — same mascot, same manifesto voice, same rule-ID style,
174
+ all aligned to the [IAIso standard](https://github.com/SmartTasksOrg/IAIso). Each is an independent, open-source, single-purpose tool you can integrate into your own architecture:
175
+
176
+ | Tool | IAIso | What it does |
177
+ |---|---|---|
178
+ | [SmartPangolin](https://github.com/SmartTasksOrg/sf-smartpangolin) | §1 · Secure Sharing | Scan before you share. Stop leaking secrets into AI models, agents, and tools. |
179
+ | [SmartPrompt](https://github.com/SmartTasksOrg/sf-smartprompt) | §4 · Context | Lint before you send. Bad prompt in, bad work out — and it's your name on it. |
180
+ | [SmartCheck](https://github.com/SmartTasksOrg/sf-smartcheck) | §2 · Verification | Check before you sign off. Catch the AI when it's confidently wrong. |
181
+ | [SmartSeal](https://github.com/SmartTasksOrg/sf-smartseal) | §3 · Provenance | Seal what you ship. A signed receipt so anyone can verify what they received. |
182
+ | [SmartStandard](https://github.com/SmartTasksOrg/sf-smartstandard) | §7 · Standards | Standardize before you scale. One shared, auditable convention for AI-assisted work. |
183
+ | [SmartSim](https://github.com/SmartTasksOrg/sf-smartsim) | §8 · Foresight | Simulate before it hits you. See your role's task-by-task collapse sequence. |
184
+ | [SmartMoat](https://github.com/SmartTasksOrg/sf-smartmoat) | §6 · Workforce | Know your moat. Score the tasks AI can't easily take — and widen them. |
185
+ | [SmartRoute](https://github.com/SmartTasksOrg/sf-smartroute) | §5 · Orchestration | Route only what you trust. Gate agents and tools with trust scores and guardrails. |
186
+
187
+ **Backed by the standard:** SmartFeed implements **IAIso §9 · Awareness**.
188
+ **Open-source edition:** this repo is the simplified, single-purpose version, built for any org to integrate into its own architecture. SmartTasks' desktop app and [SmartTasks.cloud](https://smarttasks.cloud) run a more advanced, deeply-integrated implementation of the same IAIso governance — a separate product, not this code bundled.
189
+
190
+ ## Who's behind this
191
+
192
+ - **Roen Branham** — CEO & AI Strategy Architect · CISSP-certified AI, security & governance architect; author of IAIso and sole inventor of the Z4 Semantic Fabric patent application. [LinkedIn](https://www.linkedin.com/in/roen-branham-167ab29/)
193
+ - **Le Vu Tanh** — CTO & Core Engineering Lead · Chief architect of the Cortex engine; large-scale system reliability and low-latency infrastructure — the engineer who ships what gets architected. [LinkedIn](https://www.linkedin.com/in/lee-thanh-76aa8ba0/)
194
+
195
+ The team behind IAIso & SmartTasks: a CISSP-certified security & governance architect
196
+ and a large-scale systems engineer — 20+ years shipping secure, AI-driven platforms for
197
+ regulated, blue-chip environments (Allianz, BMW, Rolls-Royce, Heidenhain).
198
+
199
+ <!-- SMARTTASKS-MODELS:START -->
200
+ ## Runs on governed local models
201
+
202
+ Governed local models let you run the whole family offline.
203
+
204
+ This tool is local-first, so pair it with models you can actually vet. **SmartTasks** publishes 21+ governance-validated GGUF builds on Hugging Face — each with a machine-readable **scorecard** (capability tiers L1 Layman → L5 Agentic, IAIso conformance invariants (pass/warn/fail), OWASP-mapped garak red-team, transparency probes (viewpoint-alignment / over-refusal), and per-file SHA-256). Gate model selection on evidence, not vibes — and every finding, including warnings, is published in full.
205
+
206
+ → **[SmartTasks on Hugging Face](https://huggingface.co/smarttasks)** · [Qwen3.6-27B](https://huggingface.co/smarttasks/Qwen3.6-27B-GGUF) (L5 agentic) · [react-agent-coder-llama-3.1-8b](https://huggingface.co/smarttasks/react-agent-coder-llama-3.1-8b-GGUF) (agentic coder) · [gpt-oss-20b](https://huggingface.co/smarttasks/gpt-oss-20b-GGUF) (open reasoning)
207
+ <!-- SMARTTASKS-MODELS:END -->
208
+
209
+ ## Get in touch
210
+
211
+ - **Companies & enterprises:** [enterprise@smarttasks.cloud](mailto:enterprise@smarttasks.cloud) — we help
212
+ teams integrate SmartFeed + IAIso into their architecture so governance and
213
+ audit-readiness become a byproduct of how they already work.
214
+ - **The standard:** [IAIso](https://github.com/SmartTasksOrg/IAIso) · [iaiso.org](https://iaiso.org)
215
+ - **The product:** [SmartTasks.cloud](https://smarttasks.cloud)
216
+
217
+ Built by **SmartTasks Lab**. Apache-2.0. Contributions welcome.
@@ -0,0 +1,19 @@
1
+ LICENSE
2
+ MANIFEST.in
3
+ MANIFESTO.md
4
+ NOTICE
5
+ README.md
6
+ pyproject.toml
7
+ demo/README.md
8
+ src/sf_smartfeed/__init__.py
9
+ src/sf_smartfeed/__main__.py
10
+ src/sf_smartfeed/_version.py
11
+ src/sf_smartfeed/cli.py
12
+ src/sf_smartfeed/core.py
13
+ src/sf_smartfeed/models.py
14
+ src/sf_smartfeed.egg-info/PKG-INFO
15
+ src/sf_smartfeed.egg-info/SOURCES.txt
16
+ src/sf_smartfeed.egg-info/dependency_links.txt
17
+ src/sf_smartfeed.egg-info/entry_points.txt
18
+ src/sf_smartfeed.egg-info/top_level.txt
19
+ tests/test_smartfeed.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ sf-smartfeed = sf_smartfeed.cli:main
@@ -0,0 +1 @@
1
+ sf_smartfeed
@@ -0,0 +1,8 @@
1
+ from sf_smartfeed import cli
2
+
3
+ def test_demo_runs():
4
+ assert cli.main(["--demo"]) == 0
5
+
6
+ def test_demo_produces_output():
7
+ out = cli.core_demo()
8
+ assert isinstance(out, str) and len(out) > 0