Observed since 20 Oct, 21:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
afs-connector-sdk
agentic-fs connector SDK: crawl a source and ingest into agentic-fs. Ships the fs-crawler CLI plus Local FS and S3 connectors.
Crawl a source and ingest its documents into agentic-fs.
Ships the fs-crawler CLI plus Local FS and S3 connectors.
pip install afs-connector-sdk # Local FS connector + unauthenticated/bearer APIs
pip install "afs-connector-sdk[aws]" # adds the S3 connector + SigV4 signing for AWS_IAM Function URLs
# Crawl a local folder into a dev server
fs-crawler --connector local --source ./docs \
--api-url http://localhost:8080 --namespace docs
# Crawl an S3 prefix into the deployed (AWS_IAM) Function URL
fs-crawler --connector s3 --source s3://my-bucket/reports/ \
--api-url "$FUNCTION_URL" --namespace reports --auth sigv4 --region us-east-1
# Mirror exactly (also delete docs no longer at the source)
fs-crawler --connector local --source ./docs --api-url "$URL" --namespace docs --prune
Re-runs are cheap and idempotent: a document is skipped unless its content checksum differs from what agentic-fs already has, so nothing is re-extracted needlessly.
from afs_connector_sdk import IngestClient, SyncEngine, SigV4Signer, build_connector
connector = build_connector("local", "./docs")
async with IngestClient(api_url, signer=SigV4Signer(region="us-east-1")) as client:
report = await SyncEngine(client).sync(connector, namespace="docs")
Implement afs_core.contracts.Connector (discover() → SourceItems, fetch(item) →
bytes), certify it against afs_core.testing.ConnectorConformance, and register an
afs.connectors entry point. Source-side auth lives in your connector; the SDK
handles everything else. See the connector swap guide.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
afs-coreEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | afs-core>=1.0.0 | runtime |
clickEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | click>=8 | runtime |
httpxEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | httpx>=0.27 | runtime |
boto3Environment{
"extras": "",
"marker": "extra == \"aws\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | boto3>=1.34; extra == "aws" | runtime |
google-api-python-clientEnvironment{
"extras": "",
"marker": "extra == \"gdrive\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | google-api-python-client>=2; extra == "gdrive" | runtime |
google-auth-oauthlibEnvironment{
"extras": "",
"marker": "extra == \"gdrive\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | google-auth-oauthlib>=1; extra == "gdrive" | runtime |
llama-index-coreEnvironment{
"extras": "",
"marker": "extra == \"llamahub\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | llama-index-core>=0.11; extra == "llamahub" | runtime |
bdist_wheel · 17.23 KB · Python py3
sdist · 17.85 KB · Python source
Observed since 20 Oct, 21:13 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:da21a56df8cbe25e9fd341b815dcda9e2914ec26ca3ef249d9c331b7ad615ea7