sourcecode 1.35.34__tar.gz → 1.35.36__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 (112) hide show
  1. {sourcecode-1.35.34 → sourcecode-1.35.36}/PKG-INFO +36 -7
  2. {sourcecode-1.35.34 → sourcecode-1.35.36}/README.md +35 -6
  3. {sourcecode-1.35.34 → sourcecode-1.35.36}/pyproject.toml +1 -1
  4. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/__init__.py +1 -1
  5. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/cli.py +239 -355
  6. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/explain.py +3 -0
  7. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/license.py +128 -27
  8. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/prepare_context.py +8 -1
  9. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/serializer.py +9 -7
  10. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_findings.py +1 -0
  11. sourcecode-1.35.36/supabase/functions/README.md +35 -0
  12. sourcecode-1.35.36/supabase/functions/get-license/index.ts +83 -0
  13. sourcecode-1.35.36/supabase/functions/lemonsqueezy-webhook/index.ts +163 -0
  14. {sourcecode-1.35.34 → sourcecode-1.35.36}/.github/workflows/build-windows.yml +0 -0
  15. {sourcecode-1.35.34 → sourcecode-1.35.36}/.gitignore +0 -0
  16. {sourcecode-1.35.34 → sourcecode-1.35.36}/.ruff.toml +0 -0
  17. {sourcecode-1.35.34 → sourcecode-1.35.36}/CHANGELOG.md +0 -0
  18. {sourcecode-1.35.34 → sourcecode-1.35.36}/CONTRIBUTING.md +0 -0
  19. {sourcecode-1.35.34 → sourcecode-1.35.36}/LICENSE +0 -0
  20. {sourcecode-1.35.34 → sourcecode-1.35.36}/SECURITY.md +0 -0
  21. {sourcecode-1.35.34 → sourcecode-1.35.36}/raw +0 -0
  22. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/adaptive_scanner.py +0 -0
  23. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/architecture_analyzer.py +0 -0
  24. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/architecture_summary.py +0 -0
  25. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/ast_extractor.py +0 -0
  26. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/cache.py +0 -0
  27. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/canonical_ir.py +0 -0
  28. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/cir_graphs.py +0 -0
  29. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/classifier.py +0 -0
  30. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/code_notes_analyzer.py +0 -0
  31. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/confidence_analyzer.py +0 -0
  32. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/context_scorer.py +0 -0
  33. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/context_summarizer.py +0 -0
  34. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/contract_model.py +0 -0
  35. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/contract_pipeline.py +0 -0
  36. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/coverage_parser.py +0 -0
  37. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/dependency_analyzer.py +0 -0
  38. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/__init__.py +0 -0
  39. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/base.py +0 -0
  40. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/csproj_parser.py +0 -0
  41. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/dart.py +0 -0
  42. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/dotnet.py +0 -0
  43. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/elixir.py +0 -0
  44. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/go.py +0 -0
  45. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/heuristic.py +0 -0
  46. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/hybrid.py +0 -0
  47. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/java.py +0 -0
  48. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/jvm_ext.py +0 -0
  49. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/nodejs.py +0 -0
  50. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/parsers.py +0 -0
  51. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/php.py +0 -0
  52. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/project.py +0 -0
  53. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/python.py +0 -0
  54. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/ruby.py +0 -0
  55. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/rust.py +0 -0
  56. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/systems.py +0 -0
  57. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/terraform.py +0 -0
  58. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/detectors/tooling.py +0 -0
  59. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/doc_analyzer.py +0 -0
  60. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/entrypoint_classifier.py +0 -0
  61. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/env_analyzer.py +0 -0
  62. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/error_schema.py +0 -0
  63. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/file_chunker.py +0 -0
  64. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/file_classifier.py +0 -0
  65. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/flow_analyzer.py +0 -0
  66. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/fqn_utils.py +0 -0
  67. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/git_analyzer.py +0 -0
  68. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/graph_analyzer.py +0 -0
  69. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/__init__.py +0 -0
  70. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/onboarding/__init__.py +0 -0
  71. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/onboarding/applier.py +0 -0
  72. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/onboarding/backup.py +0 -0
  73. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/onboarding/detector.py +0 -0
  74. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/onboarding/planner.py +0 -0
  75. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/orchestrator.py +0 -0
  76. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/registry.py +0 -0
  77. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/runner.py +0 -0
  78. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp/server.py +0 -0
  79. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/mcp_nudge.py +0 -0
  80. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/metrics_analyzer.py +0 -0
  81. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/migrate_check.py +0 -0
  82. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/output_budget.py +0 -0
  83. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/path_filters.py +0 -0
  84. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/pr_comment_renderer.py +0 -0
  85. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/pr_impact.py +0 -0
  86. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/progress.py +0 -0
  87. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/ranking_engine.py +0 -0
  88. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/redactor.py +0 -0
  89. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/relevance_scorer.py +0 -0
  90. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/rename_refactor.py +0 -0
  91. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/repo_classifier.py +0 -0
  92. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/repository_ir.py +0 -0
  93. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/ris.py +0 -0
  94. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/runtime_classifier.py +0 -0
  95. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/scanner.py +0 -0
  96. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/schema.py +0 -0
  97. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/semantic_analyzer.py +0 -0
  98. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_event_topology.py +0 -0
  99. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_impact.py +0 -0
  100. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_model.py +0 -0
  101. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_security_audit.py +0 -0
  102. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_semantic.py +0 -0
  103. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/spring_tx_analyzer.py +0 -0
  104. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/summarizer.py +0 -0
  105. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/__init__.py +0 -0
  106. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/config.py +0 -0
  107. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/consent.py +0 -0
  108. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/events.py +0 -0
  109. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/filters.py +0 -0
  110. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/telemetry/transport.py +0 -0
  111. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/tree_utils.py +0 -0
  112. {sourcecode-1.35.34 → sourcecode-1.35.36}/src/sourcecode/workspace.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sourcecode
3
- Version: 1.35.34
3
+ Version: 1.35.36
4
4
  Summary: Persistent structural context and ultra-fast repeated analysis for AI coding agents
5
5
  License-File: LICENSE
6
6
  Keywords: agents,ai,codebase,context,developer-tools,llm
@@ -40,7 +40,7 @@ Description-Content-Type: text/markdown
40
40
 
41
41
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
42
42
 
43
- ![Version](https://img.shields.io/badge/version-1.35.33-blue)
43
+ ![Version](https://img.shields.io/badge/version-1.35.36-blue)
44
44
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
45
45
 
46
46
  ---
@@ -114,7 +114,7 @@ pipx install sourcecode
114
114
 
115
115
  ```bash
116
116
  sourcecode version
117
- # sourcecode 1.35.34
117
+ # sourcecode 1.35.36
118
118
  ```
119
119
 
120
120
  ---
@@ -290,6 +290,35 @@ Specifically:
290
290
 
291
291
  ---
292
292
 
293
+ ## Pricing
294
+
295
+ Two tiers. **Gating is by repo size and automation — never by command.** Every
296
+ command runs at full power on Free for small and mid-size repos. You upgrade
297
+ when the work gets bigger or automated.
298
+
299
+ | | **Free** — €0 | **Pro** — €19/mo · €190/yr per dev |
300
+ |---|---|---|
301
+ | Repo size | ≤ 500 Java source files | **> 500 Java files** (enterprise monoliths) |
302
+ | Commands | All of them, full output | Same commands, unlocked at scale |
303
+ | `impact` / `fix-bug` / `review-pr` / `modernize` | ✅ full on small repos | ✅ full on large repos (Free gets a capped preview) |
304
+ | `--full`, git-churn ranking, uncapped graph/semantic | ✅ on small repos | ✅ on large repos |
305
+ | `prepare-context delta` | 30 free runs/repo | unlimited — CI/CD automation |
306
+ | `prepare-context generate-tests` | small repos | large repos |
307
+ | MCP local server (`mcp serve`) | ✅ | ✅ |
308
+ | Offline, no data egress, no account | ✅ | ✅ |
309
+
310
+ **Non-Java repos are free at any size** — the size limit counts Java source
311
+ files only, by design. sourcecode monetises enterprise Java monoliths.
312
+
313
+ ```bash
314
+ sourcecode auth login # browser device-code auth
315
+ sourcecode activate <key> # or activate a license key directly
316
+ ```
317
+
318
+ Full breakdown: [docs/PRODUCT_TIERS.md](docs/PRODUCT_TIERS.md).
319
+
320
+ ---
321
+
293
322
  ## Command reference
294
323
 
295
324
  ### `--compact` and `--agent`
@@ -301,7 +330,7 @@ Core flags. Feed directly to AI agents as first-message context.
301
330
  | `--compact` | High-signal summary: stacks, entry points, dependencies, confidence, gaps | ~2,500–4,000 |
302
331
  | `--agent` | Structured JSON: identity, entry points, architecture, event flows | ~4,500–5,500 |
303
332
 
304
- ### `impact` — blast-radius analysis
333
+ ### `impact` — blast-radius analysis [free ≤500 Java files · Pro above]
305
334
 
306
335
  ```bash
307
336
  sourcecode impact ClassName /path/to/repo
@@ -476,7 +505,7 @@ sourcecode onboard /path/to/repo
476
505
 
477
506
  Entry points, architecture summary, key files, confidence level, and gaps. Designed to be injected as agent context at the start of a session.
478
507
 
479
- ### `review-pr` — [Pro] PR review context
508
+ ### `review-pr` — PR review context [free ≤500 Java files · Pro above]
480
509
 
481
510
  ```bash
482
511
  sourcecode review-pr /path/to/repo --since main
@@ -485,7 +514,7 @@ sourcecode review-pr /path/to/repo --since HEAD~3
485
514
 
486
515
  Changed files, risk ranking, test coverage gaps, affected modules, and blast radius of changed classes. Returns a `ci_decision` field for CI/CD integration.
487
516
 
488
- ### `fix-bug` — [Pro] Bug triage context
517
+ ### `fix-bug` — Bug triage context [free ≤500 Java files · Pro above]
489
518
 
490
519
  ```bash
491
520
  sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
@@ -493,7 +522,7 @@ sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
493
522
 
494
523
  Risk-ranked file list correlated to the symptom: keyword extraction, path matching, content matching, git commit correlation.
495
524
 
496
- ### `modernize` — [Pro] Modernization planning
525
+ ### `modernize` — Modernization planning [free ≤500 Java files · Pro above]
497
526
 
498
527
  ```bash
499
528
  sourcecode modernize /path/to/repo
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Persistent structural context and ultra-fast repeated analysis for AI coding agents.**
4
4
 
5
- ![Version](https://img.shields.io/badge/version-1.35.33-blue)
5
+ ![Version](https://img.shields.io/badge/version-1.35.36-blue)
6
6
  ![Python](https://img.shields.io/badge/python-3.10%2B-green)
7
7
 
8
8
  ---
@@ -76,7 +76,7 @@ pipx install sourcecode
76
76
 
77
77
  ```bash
78
78
  sourcecode version
79
- # sourcecode 1.35.34
79
+ # sourcecode 1.35.36
80
80
  ```
81
81
 
82
82
  ---
@@ -252,6 +252,35 @@ Specifically:
252
252
 
253
253
  ---
254
254
 
255
+ ## Pricing
256
+
257
+ Two tiers. **Gating is by repo size and automation — never by command.** Every
258
+ command runs at full power on Free for small and mid-size repos. You upgrade
259
+ when the work gets bigger or automated.
260
+
261
+ | | **Free** — €0 | **Pro** — €19/mo · €190/yr per dev |
262
+ |---|---|---|
263
+ | Repo size | ≤ 500 Java source files | **> 500 Java files** (enterprise monoliths) |
264
+ | Commands | All of them, full output | Same commands, unlocked at scale |
265
+ | `impact` / `fix-bug` / `review-pr` / `modernize` | ✅ full on small repos | ✅ full on large repos (Free gets a capped preview) |
266
+ | `--full`, git-churn ranking, uncapped graph/semantic | ✅ on small repos | ✅ on large repos |
267
+ | `prepare-context delta` | 30 free runs/repo | unlimited — CI/CD automation |
268
+ | `prepare-context generate-tests` | small repos | large repos |
269
+ | MCP local server (`mcp serve`) | ✅ | ✅ |
270
+ | Offline, no data egress, no account | ✅ | ✅ |
271
+
272
+ **Non-Java repos are free at any size** — the size limit counts Java source
273
+ files only, by design. sourcecode monetises enterprise Java monoliths.
274
+
275
+ ```bash
276
+ sourcecode auth login # browser device-code auth
277
+ sourcecode activate <key> # or activate a license key directly
278
+ ```
279
+
280
+ Full breakdown: [docs/PRODUCT_TIERS.md](docs/PRODUCT_TIERS.md).
281
+
282
+ ---
283
+
255
284
  ## Command reference
256
285
 
257
286
  ### `--compact` and `--agent`
@@ -263,7 +292,7 @@ Core flags. Feed directly to AI agents as first-message context.
263
292
  | `--compact` | High-signal summary: stacks, entry points, dependencies, confidence, gaps | ~2,500–4,000 |
264
293
  | `--agent` | Structured JSON: identity, entry points, architecture, event flows | ~4,500–5,500 |
265
294
 
266
- ### `impact` — blast-radius analysis
295
+ ### `impact` — blast-radius analysis [free ≤500 Java files · Pro above]
267
296
 
268
297
  ```bash
269
298
  sourcecode impact ClassName /path/to/repo
@@ -438,7 +467,7 @@ sourcecode onboard /path/to/repo
438
467
 
439
468
  Entry points, architecture summary, key files, confidence level, and gaps. Designed to be injected as agent context at the start of a session.
440
469
 
441
- ### `review-pr` — [Pro] PR review context
470
+ ### `review-pr` — PR review context [free ≤500 Java files · Pro above]
442
471
 
443
472
  ```bash
444
473
  sourcecode review-pr /path/to/repo --since main
@@ -447,7 +476,7 @@ sourcecode review-pr /path/to/repo --since HEAD~3
447
476
 
448
477
  Changed files, risk ranking, test coverage gaps, affected modules, and blast radius of changed classes. Returns a `ci_decision` field for CI/CD integration.
449
478
 
450
- ### `fix-bug` — [Pro] Bug triage context
479
+ ### `fix-bug` — Bug triage context [free ≤500 Java files · Pro above]
451
480
 
452
481
  ```bash
453
482
  sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
@@ -455,7 +484,7 @@ sourcecode fix-bug /path/to/repo --symptom "NullPointerException in checkout"
455
484
 
456
485
  Risk-ranked file list correlated to the symptom: keyword extraction, path matching, content matching, git commit correlation.
457
486
 
458
- ### `modernize` — [Pro] Modernization planning
487
+ ### `modernize` — Modernization planning [free ≤500 Java files · Pro above]
459
488
 
460
489
  ```bash
461
490
  sourcecode modernize /path/to/repo
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "sourcecode"
7
- version = "1.35.34"
7
+ version = "1.35.36"
8
8
  description = "Persistent structural context and ultra-fast repeated analysis for AI coding agents"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -1,3 +1,3 @@
1
1
  """sourcecode — Deterministic codebase context maps for AI coding agents."""
2
2
 
3
- __version__ = "1.35.34"
3
+ __version__ = "1.35.36"