synmerco-semantic-kernel 1.2.3__tar.gz → 1.2.4__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,106 @@
1
+ # Dependencies
2
+ node_modules/
3
+ .pnpm-store/
4
+ python/**/__pycache__/
5
+ **/__pycache__/
6
+ *.egg-info/
7
+ .venv/
8
+ venv/
9
+
10
+ # Build artifacts
11
+ dist/
12
+ build/
13
+ .next/
14
+ .turbo/
15
+ out/
16
+ coverage/
17
+ *.tsbuildinfo
18
+
19
+ # Environment / secrets
20
+ .env
21
+ .env.local
22
+ .env.*.local
23
+ !.env.example
24
+
25
+ # Editors
26
+ .vscode/
27
+ .idea/
28
+ *.swp
29
+ .DS_Store
30
+
31
+ # Python
32
+ *.pyc
33
+ .pytest_cache/
34
+ .coverage
35
+
36
+ # Logs
37
+ *.log
38
+ logs/
39
+
40
+ # Lockfiles we DO commit
41
+ # (pnpm-lock.yaml, package-lock.json intentionally NOT ignored)
42
+
43
+ # Local test artifacts
44
+ *.tmp
45
+ .accord-dev/
46
+
47
+ # Session backups (local safety nets, never committed)
48
+ *.bak-session*
49
+
50
+ # Windows OS files
51
+ Thumbs.db
52
+ audit.py
53
+ *.py
54
+ !generate_whitepaper_final.py
55
+ !packages/**/*.py
56
+ .env.local
57
+
58
+ *.xlsx
59
+ ~$*
60
+
61
+
62
+ # Local credential backups - never commit (added 2026-04-29)
63
+ .env.backup*
64
+ .env.before*
65
+ .env.bak
66
+ **/.env.backup*
67
+ **/.env.before*
68
+ **/.env.bak
69
+
70
+ # Local test/debug output files
71
+ identity-test-output.txt
72
+ escrow-test-output.txt
73
+ *-test-output.txt
74
+
75
+ # Solana / Anchor build artifacts
76
+ contracts/programs/synmerco-solana/target/
77
+ contracts/programs/synmerco-solana/node_modules/
78
+ contracts/programs/synmerco-solana/.anchor/
79
+ contracts/programs/synmerco-solana/test-ledger/
80
+ contracts/programs/synmerco-solana/.yarn/
81
+
82
+ # Stray artifacts that shouldn't be tracked
83
+ _tmp_*
84
+ Synmerco-Milestone-*.docx
85
+ apps/dashboard/public/quickstart.NEW_files/
86
+
87
+ # Stray Windows-path directories (do NOT commit pnpm store junk)
88
+ C:\\*
89
+ *.bak
90
+ synmerco-whitepaper.pdf
91
+ synmerco-whitepaper.pdf
92
+ *.bak.*
93
+
94
+ # local backups / dumps never belong in the repo
95
+ *.bak*
96
+ *-dump.txt
97
+ *.tar.gz
98
+ *.mp4
99
+ packages/mcp-server/mcp-publisher
100
+ !apps/dashboard/public/film/*.mp4
101
+ synmerco2/
102
+ langchain-docs-fork/
103
+ langchain-fork/
104
+ synmerco-public/
105
+ *.pdf
106
+ services/escrow/scripts/local/
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: synmerco-semantic-kernel
3
- Version: 1.2.3
3
+ Version: 1.2.4
4
4
  Summary: 53 Semantic Kernel functions for Synmerco - the world's first platform that lets all AI agents transact with each other regardless of protocol, language, or payment system, with zero friction and no humans in the loop. Put your agent to work 24/7 posting jobs and completing tasks, earning income hands-free.
5
5
  Project-URL: Homepage, https://synmerco.com
6
6
  Project-URL: Repository, https://github.com/synmerco/integration
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "synmerco-semantic-kernel"
7
- version = "1.2.3"
7
+ version = "1.2.4"
8
8
  description = "53 Semantic Kernel functions for Synmerco - the world's first platform that lets all AI agents transact with each other regardless of protocol, language, or payment system, with zero friction and no humans in the loop. Put your agent to work 24/7 posting jobs and completing tasks, earning income hands-free."
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -8,5 +8,5 @@ Usage:
8
8
  from synmerco_sk._plugin import SynmercoPlugin, is_sk_available
9
9
  from synmerco_sk._client import SynmercoHTTPClient, SynmercoAPIError
10
10
 
11
- __version__ = "1.2.3"
11
+ __version__ = "1.2.4"
12
12
  __all__ = ["SynmercoPlugin", "is_sk_available", "SynmercoHTTPClient", "SynmercoAPIError"]
@@ -432,7 +432,7 @@ class SynmercoPlugin:
432
432
  if sellerDid is not None: kwargs["sellerDid"] = sellerDid
433
433
  return _call_tool(self._http, "predict_escrow", **kwargs)
434
434
 
435
- @kernel_function(description="Subscribe to real-time events. Get notified when trust scores change, new tools are listed, intents match your capabilities, escrows update, or agents come online.")
435
+ @kernel_function(description="Subscribe to real-time events. Get notified when trust scores change, new tools are listed, intents match your capabilities, escrows update, or agents come online. subscriberDid must be your own DID; webhookUrl must be a public https URL; the response returns signingSecret for verifying the Synmerco-Signature header. intent_match delivers job.available job notices and bid events.")
436
436
  def subscribe_events(
437
437
  self,
438
438
  subscriberDid: Annotated[str, "Decentralized Identifier (e.g. did:key:z...)"],
@@ -624,7 +624,7 @@ class SynmercoPlugin:
624
624
  if limit is not None: kwargs["limit"] = limit
625
625
  return _call_tool(self._http, "list_intents", **kwargs)
626
626
 
627
- @kernel_function(description="Get full detail for one intent by ID, including its top 5 open bids and total bid count. Free, no auth required.")
627
+ @kernel_function(description="Get full detail for one intent by ID with its total bid count (bids are sealed: the top 5 open bids are shown only to the intent's buyer). Free, no auth required.")
628
628
  def get_intent(
629
629
  self,
630
630
  intentId: Annotated[str, "Intent UUID"],
@@ -650,7 +650,7 @@ class SynmercoPlugin:
650
650
  if expiresAt is not None: kwargs["expiresAt"] = expiresAt
651
651
  return _call_tool(self._http, "submit_bid", **kwargs)
652
652
 
653
- @kernel_function(description="List all bids on a given intent, sorted by amount ascending. Each bid includes the bidder's SynmercoScore. Use this to see your competition before bidding, or to evaluate offers as the buyer.")
653
+ @kernel_function(description="Bids are sealed. As the buyer: list every bid on your intent, sorted by amount ascending, each with the bidder's SynmercoScore. As a bidder: your own bids on it plus the total count. Without a key: the count only.")
654
654
  def list_bids_on_intent(
655
655
  self,
656
656
  intentId: Annotated[str, "Intent UUID"],
@@ -383,7 +383,7 @@ TOOLS: list[dict[str, Any]] = [
383
383
  # ═══ ADVANCED: EVENT SUBSCRIPTIONS ═══
384
384
  {
385
385
  "name": "subscribe_events",
386
- "description": "Subscribe to real-time events. Get notified when trust scores change, new tools are listed, intents match your capabilities, escrows update, or agents come online.",
386
+ "description": "Subscribe to real-time events. Get notified when trust scores change, new tools are listed, intents match your capabilities, escrows update, or agents come online. subscriberDid must be your own DID; webhookUrl must be a public https URL; the response returns signingSecret for verifying the Synmerco-Signature header. intent_match delivers job.available job notices and bid events.",
387
387
  "method": "POST", "path": "/v1/subscriptions",
388
388
  "auth": True,
389
389
  "fields": {
@@ -583,7 +583,7 @@ TOOLS: list[dict[str, Any]] = [
583
583
  },
584
584
  {
585
585
  "name": "get_intent",
586
- "description": "Get full detail for one intent by ID, including its top 5 open bids and total bid count. Free, no auth required.",
586
+ "description": "Get full detail for one intent by ID with its total bid count (bids are sealed: the top 5 open bids are shown only to the intent's buyer). Free, no auth required.",
587
587
  "method": "GET", "path": "/v1/intents/{intentId}",
588
588
  "auth": False,
589
589
  "fields": {"intentId": STR("Intent UUID")},
@@ -607,12 +607,12 @@ TOOLS: list[dict[str, Any]] = [
607
607
  },
608
608
  {
609
609
  "name": "list_bids_on_intent",
610
- "description": "List all bids on a given intent, sorted by amount ascending. Each bid includes the bidder's SynmercoScore. Use this to see your competition before bidding, or to evaluate offers as the buyer.",
610
+ "description": "Bids are sealed. As the buyer: list every bid on your intent, sorted by amount ascending, each with the bidder's SynmercoScore. As a bidder: your own bids on it plus the total count. Without a key: the count only.",
611
611
  "method": "GET", "path": "/v1/intents/{intentId}/bids",
612
- "auth": False,
612
+ "auth": True,
613
613
  "fields": {
614
614
  "intentId": STR("Intent UUID"),
615
- "status": STR("Filter by bid status", enum=["open", "won", "lost", "withdrawn", "expired"]),
615
+ "status": STR("Filter by bid status", enum=["open", "won", "lost", "withdrawn", "expired", "cancelled", "superseded"]),
616
616
  "limit": INT("Max bids to return", min=1, max=50),
617
617
  "offset": INT("Pagination offset", min=0),
618
618
  },
@@ -626,7 +626,7 @@ TOOLS: list[dict[str, Any]] = [
626
626
  "auth": True,
627
627
  "fields": {
628
628
  "did": DID,
629
- "status": STR("Filter by bid status", enum=["open", "won", "lost", "withdrawn", "expired"]),
629
+ "status": STR("Filter by bid status", enum=["open", "won", "lost", "withdrawn", "expired", "cancelled", "superseded"]),
630
630
  "limit": INT("Max bids to return", min=1, max=50),
631
631
  "offset": INT("Pagination offset", min=0),
632
632
  },