devtime-ei 0.3.0__tar.gz → 0.4.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.
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/PKG-INFO +2 -2
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/pyproject.toml +2 -2
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/__init__.py +1 -1
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/cli.py +18 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/verification.py +32 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/PKG-INFO +2 -2
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/LICENSE +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/README.md +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/setup.cfg +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/local.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/prompts.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/ai/providers.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/assets/devtimeignore.starter +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/config.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/connection.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/migrations.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/repository.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/db/schema.sql +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/demo.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/assertions.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/loader.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/fixtures/runner.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/claims.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/concepts.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/context_pack.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/evidence.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/lineage.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/risk.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/intelligence/scoring.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/schemas.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/server.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/tools.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/mcp/transport.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/json_export.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/markdown.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/output/terminal.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/paths.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/privacy.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/.devtimeignore +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/README.md +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/docs/decisions/0001-use-jwt.md +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/package.json +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/admin/permissions.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/login.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/middleware.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/tokens.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/billing/stripe-webhook.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/billing/subscription-service.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/export/export-csv.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/jobs/email-worker.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/jobs/queues.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/auth-login.test.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/stripe-signature.test.ts +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/__init__.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/base.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/config_files.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/docs.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/nextjs.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/python.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/tests.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/extractors/typescript.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/file_walker.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/ignore.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/language.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/scanner/signals.py +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/SOURCES.txt +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/dependency_links.txt +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/entry_points.txt +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/requires.txt +0 -0
- {devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime_ei.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devtime-ei
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Local-first Engineering Intelligence for software repositories
|
|
5
5
|
Author-email: Aviad Shakargi <aviad94@gmail.com>
|
|
6
6
|
Maintainer-email: Aviad Shakargi <aviad94@gmail.com>
|
|
@@ -8,7 +8,7 @@ License: Apache-2.0
|
|
|
8
8
|
Project-URL: Homepage, https://github.com/Shakargy/devtime
|
|
9
9
|
Project-URL: Repository, https://github.com/Shakargy/devtime
|
|
10
10
|
Project-URL: Issues, https://github.com/Shakargy/devtime/issues
|
|
11
|
-
Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.
|
|
11
|
+
Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.4.0
|
|
12
12
|
Project-URL: Demo, https://youtu.be/1Hiu3Y9J_SI
|
|
13
13
|
Keywords: devtools,cli,static-analysis,repository-analysis,engineering-intelligence,local-first
|
|
14
14
|
Classifier: Development Status :: 3 - Alpha
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "devtime-ei"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.4.0"
|
|
4
4
|
description = "Local-first Engineering Intelligence for software repositories"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
@@ -50,7 +50,7 @@ dev = [
|
|
|
50
50
|
Homepage = "https://github.com/Shakargy/devtime"
|
|
51
51
|
Repository = "https://github.com/Shakargy/devtime"
|
|
52
52
|
Issues = "https://github.com/Shakargy/devtime/issues"
|
|
53
|
-
"Release Notes" = "https://github.com/Shakargy/devtime/releases/tag/v0.
|
|
53
|
+
"Release Notes" = "https://github.com/Shakargy/devtime/releases/tag/v0.4.0"
|
|
54
54
|
Demo = "https://youtu.be/1Hiu3Y9J_SI"
|
|
55
55
|
|
|
56
56
|
[project.scripts]
|
|
@@ -347,11 +347,29 @@ def risk(
|
|
|
347
347
|
conn = connection.connect()
|
|
348
348
|
try:
|
|
349
349
|
intelligence = repository.load_all_concepts(conn)
|
|
350
|
+
from devtime.intelligence.verification import claims_affected_by_paths
|
|
351
|
+
|
|
352
|
+
claim_impact = claims_affected_by_paths(conn, info.changed_files)
|
|
350
353
|
finally:
|
|
351
354
|
conn.close()
|
|
352
355
|
|
|
353
356
|
review = review_diff(info, intelligence)
|
|
354
357
|
console.print(render_risk_review(review), markup=False)
|
|
358
|
+
|
|
359
|
+
# v0.4.0: claim impact. A diff is not just risky in general - it can
|
|
360
|
+
# destabilize a previously verified claim. Only evidence files count;
|
|
361
|
+
# nothing is printed when no verified claim is affected.
|
|
362
|
+
if claim_impact:
|
|
363
|
+
console.print("\nClaim impact:", markup=False)
|
|
364
|
+
for item in claim_impact:
|
|
365
|
+
console.print(
|
|
366
|
+
f" - {item['claim_id']} (previous status: {item['previous_status']})",
|
|
367
|
+
markup=False,
|
|
368
|
+
)
|
|
369
|
+
for p in item["changed_evidence"]:
|
|
370
|
+
console.print(f" changed evidence: {p}", markup=False)
|
|
371
|
+
console.print(f" re-verify: {item['suggested_action']}", markup=False)
|
|
372
|
+
|
|
355
373
|
if review.state == STATE_REVIEW_FAILED:
|
|
356
374
|
raise typer.Exit(code=1)
|
|
357
375
|
|
|
@@ -580,6 +580,38 @@ def load_latest_verification(
|
|
|
580
580
|
)
|
|
581
581
|
|
|
582
582
|
|
|
583
|
+
def claims_affected_by_paths(
|
|
584
|
+
conn: sqlite3.Connection, changed_paths: list[str]
|
|
585
|
+
) -> list[dict]:
|
|
586
|
+
"""Claim impact for a set of changed paths (v0.4.0, diff integration).
|
|
587
|
+
|
|
588
|
+
For every claim with a stored verification, report it when a changed path
|
|
589
|
+
is one of its recorded evidence files. Only evidence files count: a diff
|
|
590
|
+
touching unrelated files never flags a claim. Advisory output - the caller
|
|
591
|
+
decides what to do with it.
|
|
592
|
+
"""
|
|
593
|
+
changed = set(changed_paths)
|
|
594
|
+
out: list[dict] = []
|
|
595
|
+
for slug in BUILTIN_CLAIMS:
|
|
596
|
+
latest = load_latest_verification(conn, slug)
|
|
597
|
+
if latest is None:
|
|
598
|
+
continue
|
|
599
|
+
result, fingerprints, created_at = latest
|
|
600
|
+
evidence_paths = {fp["path"] for fp in fingerprints}
|
|
601
|
+
hits = sorted(evidence_paths & changed)
|
|
602
|
+
if hits:
|
|
603
|
+
out.append(
|
|
604
|
+
{
|
|
605
|
+
"claim_id": slug,
|
|
606
|
+
"previous_status": result["status"],
|
|
607
|
+
"verified_at": created_at,
|
|
608
|
+
"changed_evidence": hits,
|
|
609
|
+
"suggested_action": f"dtc verify {slug}",
|
|
610
|
+
}
|
|
611
|
+
)
|
|
612
|
+
return out
|
|
613
|
+
|
|
614
|
+
|
|
583
615
|
def freshness_for(conn: sqlite3.Connection, slug: str) -> tuple[str, list[str]]:
|
|
584
616
|
"""Compare stored evidence fingerprints against current file hashes.
|
|
585
617
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devtime-ei
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Local-first Engineering Intelligence for software repositories
|
|
5
5
|
Author-email: Aviad Shakargi <aviad94@gmail.com>
|
|
6
6
|
Maintainer-email: Aviad Shakargi <aviad94@gmail.com>
|
|
@@ -8,7 +8,7 @@ License: Apache-2.0
|
|
|
8
8
|
Project-URL: Homepage, https://github.com/Shakargy/devtime
|
|
9
9
|
Project-URL: Repository, https://github.com/Shakargy/devtime
|
|
10
10
|
Project-URL: Issues, https://github.com/Shakargy/devtime/issues
|
|
11
|
-
Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.
|
|
11
|
+
Project-URL: Release Notes, https://github.com/Shakargy/devtime/releases/tag/v0.4.0
|
|
12
12
|
Project-URL: Demo, https://youtu.be/1Hiu3Y9J_SI
|
|
13
13
|
Keywords: devtools,cli,static-analysis,repository-analysis,engineering-intelligence,local-first
|
|
14
14
|
Classifier: Development Status :: 3 - Alpha
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/docs/decisions/0001-use-jwt.md
RENAMED
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/admin/permissions.ts
RENAMED
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/auth/middleware.ts
RENAMED
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/billing/stripe-webhook.ts
RENAMED
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/export/export-csv.ts
RENAMED
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/src/jobs/email-worker.ts
RENAMED
|
File without changes
|
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/auth-login.test.ts
RENAMED
|
File without changes
|
{devtime_ei-0.3.0 → devtime_ei-0.4.0}/src/devtime/resources/demo-saas/tests/stripe-signature.test.ts
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|