@altura_ma/onemcp 0.2.0 → 0.3.0
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.
- package/dist/connectors/geo-france.d.ts +93 -0
- package/dist/connectors/geo-france.d.ts.map +1 -0
- package/dist/connectors/geo-france.js +84 -0
- package/dist/connectors/geo-france.js.map +1 -0
- package/dist/connectors/index.d.ts +6 -1
- package/dist/connectors/index.d.ts.map +1 -1
- package/dist/connectors/index.js +6 -1
- package/dist/connectors/index.js.map +1 -1
- package/dist/connectors/opendatasoft.d.ts +51 -0
- package/dist/connectors/opendatasoft.d.ts.map +1 -0
- package/dist/connectors/opendatasoft.js +86 -0
- package/dist/connectors/opendatasoft.js.map +1 -0
- package/dist/tools/admin-geo.d.ts +3 -0
- package/dist/tools/admin-geo.d.ts.map +1 -0
- package/dist/tools/admin-geo.js +72 -0
- package/dist/tools/admin-geo.js.map +1 -0
- package/dist/tools/index.d.ts +3 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +5 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/public-contracts.d.ts +3 -0
- package/dist/tools/public-contracts.d.ts.map +1 -0
- package/dist/tools/public-contracts.js +51 -0
- package/dist/tools/public-contracts.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { Provenance } from "../schemas/canonical.js";
|
|
2
|
+
import { Connector, type ConnectorMetadata } from "./base.js";
|
|
3
|
+
export interface Commune {
|
|
4
|
+
code: string;
|
|
5
|
+
nom: string;
|
|
6
|
+
codeDepartement?: string;
|
|
7
|
+
codeRegion?: string;
|
|
8
|
+
codesPostaux?: string[];
|
|
9
|
+
population?: number;
|
|
10
|
+
centre?: {
|
|
11
|
+
type: string;
|
|
12
|
+
coordinates: [number, number];
|
|
13
|
+
};
|
|
14
|
+
surface?: number;
|
|
15
|
+
siren?: string;
|
|
16
|
+
codeEpci?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Departement {
|
|
19
|
+
code: string;
|
|
20
|
+
nom: string;
|
|
21
|
+
codeRegion: string;
|
|
22
|
+
}
|
|
23
|
+
export interface Region {
|
|
24
|
+
code: string;
|
|
25
|
+
nom: string;
|
|
26
|
+
}
|
|
27
|
+
export interface Epci {
|
|
28
|
+
code: string;
|
|
29
|
+
nom: string;
|
|
30
|
+
type?: string;
|
|
31
|
+
populationTotale?: number;
|
|
32
|
+
financesPubliques?: unknown;
|
|
33
|
+
}
|
|
34
|
+
interface CommuneFilters {
|
|
35
|
+
nom?: string;
|
|
36
|
+
code?: string;
|
|
37
|
+
codePostal?: string;
|
|
38
|
+
codeDepartement?: string;
|
|
39
|
+
codeRegion?: string;
|
|
40
|
+
codeEpci?: string;
|
|
41
|
+
lat?: number;
|
|
42
|
+
lon?: number;
|
|
43
|
+
limit?: number;
|
|
44
|
+
}
|
|
45
|
+
export declare class GeoFranceConnector extends Connector {
|
|
46
|
+
readonly metadata: ConnectorMetadata;
|
|
47
|
+
private prov;
|
|
48
|
+
listCommunes(filters?: CommuneFilters): Promise<{
|
|
49
|
+
data: Commune[];
|
|
50
|
+
provenance: Provenance[];
|
|
51
|
+
}>;
|
|
52
|
+
getCommune(code: string): Promise<{
|
|
53
|
+
data: Commune;
|
|
54
|
+
provenance: Provenance[];
|
|
55
|
+
}>;
|
|
56
|
+
listDepartements(codeRegion?: string): Promise<{
|
|
57
|
+
data: Departement[];
|
|
58
|
+
provenance: Provenance[];
|
|
59
|
+
}>;
|
|
60
|
+
getDepartement(code: string): Promise<{
|
|
61
|
+
data: Departement;
|
|
62
|
+
provenance: Provenance[];
|
|
63
|
+
}>;
|
|
64
|
+
listCommunesByDepartement(code: string): Promise<{
|
|
65
|
+
data: Commune[];
|
|
66
|
+
provenance: Provenance[];
|
|
67
|
+
}>;
|
|
68
|
+
listRegions(): Promise<{
|
|
69
|
+
data: Region[];
|
|
70
|
+
provenance: Provenance[];
|
|
71
|
+
}>;
|
|
72
|
+
getRegion(code: string): Promise<{
|
|
73
|
+
data: Region;
|
|
74
|
+
provenance: Provenance[];
|
|
75
|
+
}>;
|
|
76
|
+
listEpcis(filters?: {
|
|
77
|
+
codeRegion?: string;
|
|
78
|
+
codeDepartement?: string;
|
|
79
|
+
}): Promise<{
|
|
80
|
+
data: Epci[];
|
|
81
|
+
provenance: Provenance[];
|
|
82
|
+
}>;
|
|
83
|
+
getEpci(code: string): Promise<{
|
|
84
|
+
data: Epci;
|
|
85
|
+
provenance: Provenance[];
|
|
86
|
+
}>;
|
|
87
|
+
listCommunesByEpci(code: string): Promise<{
|
|
88
|
+
data: Commune[];
|
|
89
|
+
provenance: Provenance[];
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
export {};
|
|
93
|
+
//# sourceMappingURL=geo-france.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geo-france.d.ts","sourceRoot":"","sources":["../../src/connectors/geo-france.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Connector } from "./base.js";
|
|
2
|
+
const BASE_URL = "https://geo.api.gouv.fr";
|
|
3
|
+
export class GeoFranceConnector extends Connector {
|
|
4
|
+
metadata = {
|
|
5
|
+
id: "geo-france",
|
|
6
|
+
name: "Découpage administratif (DINUM)",
|
|
7
|
+
description: "Référentiel officiel des communes, départements, régions et EPCI français.",
|
|
8
|
+
source: "https://geo.api.gouv.fr",
|
|
9
|
+
license: "Licence Ouverte 2.0 (Etalab)",
|
|
10
|
+
authRequired: false,
|
|
11
|
+
defaultTtlSeconds: 86400 * 30,
|
|
12
|
+
};
|
|
13
|
+
prov(url) {
|
|
14
|
+
return {
|
|
15
|
+
source: this.metadata.id,
|
|
16
|
+
source_url: url,
|
|
17
|
+
fetched_at: new Date().toISOString(),
|
|
18
|
+
license: this.metadata.license,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
async listCommunes(filters = {}) {
|
|
22
|
+
const params = new URLSearchParams();
|
|
23
|
+
for (const [k, v] of Object.entries(filters)) {
|
|
24
|
+
if (v !== undefined && v !== null)
|
|
25
|
+
params.set(k, String(v));
|
|
26
|
+
}
|
|
27
|
+
const fields = "nom,code,codesPostaux,codeDepartement,codeRegion,codeEpci,population,centre,siren";
|
|
28
|
+
params.set("fields", fields);
|
|
29
|
+
const url = `${BASE_URL}/communes?${params}`;
|
|
30
|
+
const data = await this.getJson(url);
|
|
31
|
+
return { data, provenance: [this.prov(url)] };
|
|
32
|
+
}
|
|
33
|
+
async getCommune(code) {
|
|
34
|
+
const url = `${BASE_URL}/communes/${encodeURIComponent(code)}?fields=nom,code,codesPostaux,codeDepartement,codeRegion,codeEpci,population,centre,surface,siren`;
|
|
35
|
+
const data = await this.getJson(url);
|
|
36
|
+
return { data, provenance: [this.prov(url)] };
|
|
37
|
+
}
|
|
38
|
+
async listDepartements(codeRegion) {
|
|
39
|
+
const url = `${BASE_URL}/departements${codeRegion ? `?codeRegion=${encodeURIComponent(codeRegion)}` : ""}`;
|
|
40
|
+
const data = await this.getJson(url);
|
|
41
|
+
return { data, provenance: [this.prov(url)] };
|
|
42
|
+
}
|
|
43
|
+
async getDepartement(code) {
|
|
44
|
+
const url = `${BASE_URL}/departements/${encodeURIComponent(code)}`;
|
|
45
|
+
const data = await this.getJson(url);
|
|
46
|
+
return { data, provenance: [this.prov(url)] };
|
|
47
|
+
}
|
|
48
|
+
async listCommunesByDepartement(code) {
|
|
49
|
+
const url = `${BASE_URL}/departements/${encodeURIComponent(code)}/communes?fields=nom,code,codesPostaux,codeRegion,codeEpci,population`;
|
|
50
|
+
const data = await this.getJson(url);
|
|
51
|
+
return { data, provenance: [this.prov(url)] };
|
|
52
|
+
}
|
|
53
|
+
async listRegions() {
|
|
54
|
+
const url = `${BASE_URL}/regions`;
|
|
55
|
+
const data = await this.getJson(url);
|
|
56
|
+
return { data, provenance: [this.prov(url)] };
|
|
57
|
+
}
|
|
58
|
+
async getRegion(code) {
|
|
59
|
+
const url = `${BASE_URL}/regions/${encodeURIComponent(code)}`;
|
|
60
|
+
const data = await this.getJson(url);
|
|
61
|
+
return { data, provenance: [this.prov(url)] };
|
|
62
|
+
}
|
|
63
|
+
async listEpcis(filters = {}) {
|
|
64
|
+
const params = new URLSearchParams();
|
|
65
|
+
for (const [k, v] of Object.entries(filters)) {
|
|
66
|
+
if (v)
|
|
67
|
+
params.set(k, String(v));
|
|
68
|
+
}
|
|
69
|
+
const url = `${BASE_URL}/epcis${params.toString() ? `?${params}` : ""}`;
|
|
70
|
+
const data = await this.getJson(url);
|
|
71
|
+
return { data, provenance: [this.prov(url)] };
|
|
72
|
+
}
|
|
73
|
+
async getEpci(code) {
|
|
74
|
+
const url = `${BASE_URL}/epcis/${encodeURIComponent(code)}`;
|
|
75
|
+
const data = await this.getJson(url);
|
|
76
|
+
return { data, provenance: [this.prov(url)] };
|
|
77
|
+
}
|
|
78
|
+
async listCommunesByEpci(code) {
|
|
79
|
+
const url = `${BASE_URL}/epcis/${encodeURIComponent(code)}/communes?fields=nom,code,codesPostaux,codeDepartement,codeRegion,population`;
|
|
80
|
+
const data = await this.getJson(url);
|
|
81
|
+
return { data, provenance: [this.prov(url)] };
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=geo-france.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geo-france.js","sourceRoot":"","sources":["../../src/connectors/geo-france.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,12 @@ import { CompaniesHouseConnector } from "./companies-house.js";
|
|
|
4
4
|
import { DvfConnector } from "./dvf.js";
|
|
5
5
|
import { EpoOpsConnector } from "./epo-ops.js";
|
|
6
6
|
import { FranceTravailConnector } from "./france-travail.js";
|
|
7
|
+
import { GeoFranceConnector } from "./geo-france.js";
|
|
7
8
|
import { GeorisquesConnector } from "./georisques.js";
|
|
8
9
|
import { GleifConnector } from "./gleif.js";
|
|
9
10
|
import { InpiRneConnector } from "./inpi-rne.js";
|
|
10
11
|
import { InseeSireneConnector } from "./insee-sirene.js";
|
|
12
|
+
import { OpendatasoftConnector } from "./opendatasoft.js";
|
|
11
13
|
import { RechercheEntreprisesConnector } from "./recherche-entreprises.js";
|
|
12
14
|
import { ViesConnector } from "./vies.js";
|
|
13
15
|
export declare const connectors: {
|
|
@@ -23,7 +25,10 @@ export declare const connectors: {
|
|
|
23
25
|
readonly companiesHouse: CompaniesHouseConnector;
|
|
24
26
|
readonly epoOps: EpoOpsConnector;
|
|
25
27
|
readonly franceTravail: FranceTravailConnector;
|
|
28
|
+
readonly geoFrance: GeoFranceConnector;
|
|
29
|
+
readonly decp: OpendatasoftConnector;
|
|
30
|
+
readonly infogreffe: OpendatasoftConnector;
|
|
26
31
|
};
|
|
27
32
|
export type Connectors = typeof connectors;
|
|
28
|
-
export { BanConnector, BodaccConnector, CompaniesHouseConnector, DvfConnector, EpoOpsConnector, FranceTravailConnector, GeorisquesConnector, GleifConnector, InpiRneConnector, InseeSireneConnector, RechercheEntreprisesConnector, ViesConnector, };
|
|
33
|
+
export { BanConnector, BodaccConnector, CompaniesHouseConnector, DvfConnector, EpoOpsConnector, FranceTravailConnector, GeoFranceConnector, GeorisquesConnector, GleifConnector, InpiRneConnector, InseeSireneConnector, OpendatasoftConnector, RechercheEntreprisesConnector, ViesConnector, };
|
|
29
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAsC,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC;AAE3C,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,aAAa,GACd,CAAC"}
|
package/dist/connectors/index.js
CHANGED
|
@@ -4,10 +4,12 @@ import { CompaniesHouseConnector } from "./companies-house.js";
|
|
|
4
4
|
import { DvfConnector } from "./dvf.js";
|
|
5
5
|
import { EpoOpsConnector } from "./epo-ops.js";
|
|
6
6
|
import { FranceTravailConnector } from "./france-travail.js";
|
|
7
|
+
import { GeoFranceConnector } from "./geo-france.js";
|
|
7
8
|
import { GeorisquesConnector } from "./georisques.js";
|
|
8
9
|
import { GleifConnector } from "./gleif.js";
|
|
9
10
|
import { InpiRneConnector } from "./inpi-rne.js";
|
|
10
11
|
import { InseeSireneConnector } from "./insee-sirene.js";
|
|
12
|
+
import { OpendatasoftConnector, decpConnector, infogreffeConnector } from "./opendatasoft.js";
|
|
11
13
|
import { RechercheEntreprisesConnector } from "./recherche-entreprises.js";
|
|
12
14
|
import { ViesConnector } from "./vies.js";
|
|
13
15
|
export const connectors = {
|
|
@@ -23,6 +25,9 @@ export const connectors = {
|
|
|
23
25
|
companiesHouse: new CompaniesHouseConnector(),
|
|
24
26
|
epoOps: new EpoOpsConnector(),
|
|
25
27
|
franceTravail: new FranceTravailConnector(),
|
|
28
|
+
geoFrance: new GeoFranceConnector(),
|
|
29
|
+
decp: decpConnector,
|
|
30
|
+
infogreffe: infogreffeConnector,
|
|
26
31
|
};
|
|
27
|
-
export { BanConnector, BodaccConnector, CompaniesHouseConnector, DvfConnector, EpoOpsConnector, FranceTravailConnector, GeorisquesConnector, GleifConnector, InpiRneConnector, InseeSireneConnector, RechercheEntreprisesConnector, ViesConnector, };
|
|
32
|
+
export { BanConnector, BodaccConnector, CompaniesHouseConnector, DvfConnector, EpoOpsConnector, FranceTravailConnector, GeoFranceConnector, GeorisquesConnector, GleifConnector, InpiRneConnector, InseeSireneConnector, OpendatasoftConnector, RechercheEntreprisesConnector, ViesConnector, };
|
|
28
33
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,oBAAoB,EAAE,IAAI,6BAA6B,EAAE;IACzD,IAAI,EAAE,IAAI,aAAa,EAAE;IACzB,KAAK,EAAE,IAAI,cAAc,EAAE;IAC3B,GAAG,EAAE,IAAI,YAAY,EAAE;IACvB,MAAM,EAAE,IAAI,eAAe,EAAE;IAC7B,GAAG,EAAE,IAAI,YAAY,EAAE;IACvB,UAAU,EAAE,IAAI,mBAAmB,EAAE;IACrC,WAAW,EAAE,IAAI,oBAAoB,EAAE;IACvC,OAAO,EAAE,IAAI,gBAAgB,EAAE;IAC/B,cAAc,EAAE,IAAI,uBAAuB,EAAE;IAC7C,MAAM,EAAE,IAAI,eAAe,EAAE;IAC7B,aAAa,EAAE,IAAI,sBAAsB,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/connectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,oBAAoB,EAAE,IAAI,6BAA6B,EAAE;IACzD,IAAI,EAAE,IAAI,aAAa,EAAE;IACzB,KAAK,EAAE,IAAI,cAAc,EAAE;IAC3B,GAAG,EAAE,IAAI,YAAY,EAAE;IACvB,MAAM,EAAE,IAAI,eAAe,EAAE;IAC7B,GAAG,EAAE,IAAI,YAAY,EAAE;IACvB,UAAU,EAAE,IAAI,mBAAmB,EAAE;IACrC,WAAW,EAAE,IAAI,oBAAoB,EAAE;IACvC,OAAO,EAAE,IAAI,gBAAgB,EAAE;IAC/B,cAAc,EAAE,IAAI,uBAAuB,EAAE;IAC7C,MAAM,EAAE,IAAI,eAAe,EAAE;IAC7B,aAAa,EAAE,IAAI,sBAAsB,EAAE;IAC3C,SAAS,EAAE,IAAI,kBAAkB,EAAE;IACnC,IAAI,EAAE,aAAa;IACnB,UAAU,EAAE,mBAAmB;CACvB,CAAC;AAIX,OAAO,EACL,YAAY,EACZ,eAAe,EACf,uBAAuB,EACvB,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,aAAa,GACd,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Provenance } from "../schemas/canonical.js";
|
|
2
|
+
import { Connector, type ConnectorMetadata } from "./base.js";
|
|
3
|
+
export interface OdsQuery {
|
|
4
|
+
where?: string;
|
|
5
|
+
select?: string;
|
|
6
|
+
groupBy?: string;
|
|
7
|
+
orderBy?: string;
|
|
8
|
+
limit?: number;
|
|
9
|
+
offset?: number;
|
|
10
|
+
refine?: string[];
|
|
11
|
+
exclude?: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface OdsResponse<T = Record<string, unknown>> {
|
|
14
|
+
total_count: number;
|
|
15
|
+
results: T[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generic Opendatasoft Explore API v2.1 connector.
|
|
19
|
+
* Configured per-instance with `baseUrl` (e.g. https://data.economie.gouv.fr/api/explore/v2.1).
|
|
20
|
+
*/
|
|
21
|
+
export declare class OpendatasoftConnector extends Connector {
|
|
22
|
+
readonly metadata: ConnectorMetadata;
|
|
23
|
+
private readonly baseUrl;
|
|
24
|
+
constructor(opts: {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
source: string;
|
|
28
|
+
license: string;
|
|
29
|
+
baseUrl: string;
|
|
30
|
+
ttlSeconds?: number;
|
|
31
|
+
});
|
|
32
|
+
private prov;
|
|
33
|
+
private buildQuery;
|
|
34
|
+
records<T = Record<string, unknown>>(datasetId: string, query?: OdsQuery): Promise<{
|
|
35
|
+
data: OdsResponse<T>;
|
|
36
|
+
provenance: Provenance[];
|
|
37
|
+
}>;
|
|
38
|
+
dataset(datasetId: string): Promise<{
|
|
39
|
+
data: unknown;
|
|
40
|
+
provenance: Provenance[];
|
|
41
|
+
}>;
|
|
42
|
+
listDatasets(query?: OdsQuery): Promise<{
|
|
43
|
+
data: OdsResponse;
|
|
44
|
+
provenance: Provenance[];
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
/** Marchés Publics DECP (data.economie.gouv.fr). */
|
|
48
|
+
export declare const decpConnector: OpendatasoftConnector;
|
|
49
|
+
/** Infogreffe Open Data. */
|
|
50
|
+
export declare const infogreffeConnector: OpendatasoftConnector;
|
|
51
|
+
//# sourceMappingURL=opendatasoft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opendatasoft.d.ts","sourceRoot":"","sources":["../../src/connectors/opendatasoft.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,MAAM,WAAW,QAAQ;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,EAAE,CAAC;CACd;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,SAAS;IAClD,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,IAAI,EAAE;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IAcD,OAAO,CAAC,IAAI;IASZ,OAAO,CAAC,UAAU;IAaZ,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,QAAa,GACnB,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;QAAC,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAOxD,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAMhF,YAAY,CAAC,KAAK,GAAE,QAAa,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;CAMnG;AAED,oDAAoD;AACpD,eAAO,MAAM,aAAa,uBAOxB,CAAC;AAEH,4BAA4B;AAC5B,eAAO,MAAM,mBAAmB,uBAO9B,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Connector } from "./base.js";
|
|
2
|
+
/**
|
|
3
|
+
* Generic Opendatasoft Explore API v2.1 connector.
|
|
4
|
+
* Configured per-instance with `baseUrl` (e.g. https://data.economie.gouv.fr/api/explore/v2.1).
|
|
5
|
+
*/
|
|
6
|
+
export class OpendatasoftConnector extends Connector {
|
|
7
|
+
metadata;
|
|
8
|
+
baseUrl;
|
|
9
|
+
constructor(opts) {
|
|
10
|
+
super();
|
|
11
|
+
this.baseUrl = opts.baseUrl.replace(/\/$/, "");
|
|
12
|
+
this.metadata = {
|
|
13
|
+
id: opts.id,
|
|
14
|
+
name: opts.name,
|
|
15
|
+
description: `Opendatasoft API — ${opts.name}`,
|
|
16
|
+
source: opts.source,
|
|
17
|
+
license: opts.license,
|
|
18
|
+
authRequired: false,
|
|
19
|
+
defaultTtlSeconds: opts.ttlSeconds ?? 3600 * 6,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
prov(url) {
|
|
23
|
+
return {
|
|
24
|
+
source: this.metadata.id,
|
|
25
|
+
source_url: url,
|
|
26
|
+
fetched_at: new Date().toISOString(),
|
|
27
|
+
license: this.metadata.license,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
buildQuery(q) {
|
|
31
|
+
const params = new URLSearchParams();
|
|
32
|
+
if (q.where)
|
|
33
|
+
params.set("where", q.where);
|
|
34
|
+
if (q.select)
|
|
35
|
+
params.set("select", q.select);
|
|
36
|
+
if (q.groupBy)
|
|
37
|
+
params.set("group_by", q.groupBy);
|
|
38
|
+
if (q.orderBy)
|
|
39
|
+
params.set("order_by", q.orderBy);
|
|
40
|
+
if (q.limit !== undefined)
|
|
41
|
+
params.set("limit", String(q.limit));
|
|
42
|
+
if (q.offset !== undefined)
|
|
43
|
+
params.set("offset", String(q.offset));
|
|
44
|
+
for (const r of q.refine ?? [])
|
|
45
|
+
params.append("refine", r);
|
|
46
|
+
for (const e of q.exclude ?? [])
|
|
47
|
+
params.append("exclude", e);
|
|
48
|
+
return params.toString();
|
|
49
|
+
}
|
|
50
|
+
async records(datasetId, query = {}) {
|
|
51
|
+
const qs = this.buildQuery({ limit: 20, ...query });
|
|
52
|
+
const url = `${this.baseUrl}/catalog/datasets/${encodeURIComponent(datasetId)}/records${qs ? `?${qs}` : ""}`;
|
|
53
|
+
const data = await this.getJson(url);
|
|
54
|
+
return { data, provenance: [this.prov(url)] };
|
|
55
|
+
}
|
|
56
|
+
async dataset(datasetId) {
|
|
57
|
+
const url = `${this.baseUrl}/catalog/datasets/${encodeURIComponent(datasetId)}`;
|
|
58
|
+
const data = await this.getJson(url);
|
|
59
|
+
return { data, provenance: [this.prov(url)] };
|
|
60
|
+
}
|
|
61
|
+
async listDatasets(query = {}) {
|
|
62
|
+
const qs = this.buildQuery({ limit: 20, ...query });
|
|
63
|
+
const url = `${this.baseUrl}/catalog/datasets${qs ? `?${qs}` : ""}`;
|
|
64
|
+
const data = await this.getJson(url);
|
|
65
|
+
return { data, provenance: [this.prov(url)] };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** Marchés Publics DECP (data.economie.gouv.fr). */
|
|
69
|
+
export const decpConnector = new OpendatasoftConnector({
|
|
70
|
+
id: "decp",
|
|
71
|
+
name: "DECP — Marchés Publics",
|
|
72
|
+
source: "https://data.economie.gouv.fr",
|
|
73
|
+
license: "Licence Ouverte 2.0 (Etalab)",
|
|
74
|
+
baseUrl: "https://data.economie.gouv.fr/api/explore/v2.1",
|
|
75
|
+
ttlSeconds: 86400,
|
|
76
|
+
});
|
|
77
|
+
/** Infogreffe Open Data. */
|
|
78
|
+
export const infogreffeConnector = new OpendatasoftConnector({
|
|
79
|
+
id: "infogreffe",
|
|
80
|
+
name: "Infogreffe Open Data",
|
|
81
|
+
source: "https://opendata.datainfogreffe.fr",
|
|
82
|
+
license: "Licence Ouverte 2.0 (Etalab)",
|
|
83
|
+
baseUrl: "https://opendata.datainfogreffe.fr/api/explore/v2.1",
|
|
84
|
+
ttlSeconds: 86400,
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=opendatasoft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opendatasoft.js","sourceRoot":"","sources":["../../src/connectors/opendatasoft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-geo.d.ts","sourceRoot":"","sources":["../../src/tools/admin-geo.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AA2EtD,eAAO,MAAM,aAAa,EAAE,OAAO,EAQlC,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { connectors } from "../connectors/index.js";
|
|
3
|
+
import { defineTool } from "./types.js";
|
|
4
|
+
const adminCommuneSearch = defineTool({
|
|
5
|
+
name: "admin_commune_search",
|
|
6
|
+
description: "Recherche une commune française par nom, code INSEE, code postal ou coordonnées GPS. " +
|
|
7
|
+
"Retourne nom officiel, code INSEE, département, région, EPCI, population, centre. " +
|
|
8
|
+
"Source : Découpage administratif officiel (DINUM, geo.api.gouv.fr).",
|
|
9
|
+
inputSchema: z.object({
|
|
10
|
+
nom: z.string().optional(),
|
|
11
|
+
codePostal: z.string().optional(),
|
|
12
|
+
codeDepartement: z.string().optional(),
|
|
13
|
+
lat: z.number().min(-90).max(90).optional(),
|
|
14
|
+
lon: z.number().min(-180).max(180).optional(),
|
|
15
|
+
limit: z.number().int().min(1).max(50).default(20).optional(),
|
|
16
|
+
}),
|
|
17
|
+
handler: async (input) => connectors.geoFrance.listCommunes(input),
|
|
18
|
+
});
|
|
19
|
+
const adminCommuneGet = defineTool({
|
|
20
|
+
name: "admin_commune_get",
|
|
21
|
+
description: "Fiche détaillée d'une commune française par code INSEE (5 chiffres, ex: 75056 pour Paris). " +
|
|
22
|
+
"Retourne population, surface, SIREN, codes postaux, département/région/EPCI de rattachement.",
|
|
23
|
+
inputSchema: z.object({ code: z.string().regex(/^\d{5}[A-Z]?$/) }),
|
|
24
|
+
handler: async (input) => connectors.geoFrance.getCommune(input.code),
|
|
25
|
+
});
|
|
26
|
+
const adminDepartementList = defineTool({
|
|
27
|
+
name: "admin_departement_list",
|
|
28
|
+
description: "Liste des 101 départements français (code 2 chiffres / 2A / 2B / 971-976). " +
|
|
29
|
+
"Filtrable par code région. Source officielle DINUM.",
|
|
30
|
+
inputSchema: z.object({ codeRegion: z.string().optional() }),
|
|
31
|
+
handler: async (input) => connectors.geoFrance.listDepartements(input.codeRegion),
|
|
32
|
+
});
|
|
33
|
+
const adminDepartementCommunes = defineTool({
|
|
34
|
+
name: "admin_departement_communes",
|
|
35
|
+
description: "Liste toutes les communes d'un département (par code département : 75, 13, 2A, 971…). " +
|
|
36
|
+
"Très utile pour énumérer un territoire (B2B sectorisation, prospection locale).",
|
|
37
|
+
inputSchema: z.object({ code: z.string().min(2).max(3) }),
|
|
38
|
+
handler: async (input) => connectors.geoFrance.listCommunesByDepartement(input.code),
|
|
39
|
+
});
|
|
40
|
+
const adminRegionList = defineTool({
|
|
41
|
+
name: "admin_region_list",
|
|
42
|
+
description: "Liste des 18 régions françaises (13 métropole + 5 DOM). Retourne code et nom officiel.",
|
|
43
|
+
inputSchema: z.object({}),
|
|
44
|
+
handler: async () => connectors.geoFrance.listRegions(),
|
|
45
|
+
});
|
|
46
|
+
const adminEpciList = defineTool({
|
|
47
|
+
name: "admin_epci_list",
|
|
48
|
+
description: "Liste des EPCI (intercommunalités : métropoles, communautés d'agglomération, communautés de communes). " +
|
|
49
|
+
"Filtrable par région ou département. Critique pour comprendre les compétences territoriales.",
|
|
50
|
+
inputSchema: z.object({
|
|
51
|
+
codeRegion: z.string().optional(),
|
|
52
|
+
codeDepartement: z.string().optional(),
|
|
53
|
+
}),
|
|
54
|
+
handler: async (input) => connectors.geoFrance.listEpcis(input),
|
|
55
|
+
});
|
|
56
|
+
const adminEpciCommunes = defineTool({
|
|
57
|
+
name: "admin_epci_communes",
|
|
58
|
+
description: "Liste les communes membres d'une EPCI par son code SIREN. " +
|
|
59
|
+
"Source : Découpage administratif officiel.",
|
|
60
|
+
inputSchema: z.object({ code: z.string().regex(/^\d{9}$/) }),
|
|
61
|
+
handler: async (input) => connectors.geoFrance.listCommunesByEpci(input.code),
|
|
62
|
+
});
|
|
63
|
+
export const adminGeoTools = [
|
|
64
|
+
adminCommuneSearch,
|
|
65
|
+
adminCommuneGet,
|
|
66
|
+
adminDepartementList,
|
|
67
|
+
adminDepartementCommunes,
|
|
68
|
+
adminRegionList,
|
|
69
|
+
adminEpciList,
|
|
70
|
+
adminEpciCommunes,
|
|
71
|
+
];
|
|
72
|
+
//# sourceMappingURL=admin-geo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-geo.js","sourceRoot":"","sources":["../../src/tools/admin-geo.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { adminGeoTools } from "./admin-geo.js";
|
|
1
2
|
import { companyLayer2Tools } from "./company-layer2.js";
|
|
2
3
|
import { companyTools } from "./company.js";
|
|
3
4
|
import { geoTools } from "./geo.js";
|
|
@@ -5,10 +6,11 @@ import { identityTools } from "./identity.js";
|
|
|
5
6
|
import { jobTools } from "./jobs.js";
|
|
6
7
|
import { legalTools } from "./legal.js";
|
|
7
8
|
import { patentTools } from "./patents.js";
|
|
9
|
+
import { publicContractTools } from "./public-contracts.js";
|
|
8
10
|
import { realEstateTools } from "./realestate.js";
|
|
9
11
|
import { sourceTools } from "./sources.js";
|
|
10
12
|
import type { AnyTool } from "./types.js";
|
|
11
13
|
export declare const allTools: AnyTool[];
|
|
12
|
-
export { companyLayer2Tools, companyTools, geoTools, identityTools, jobTools, legalTools, patentTools, realEstateTools, sourceTools, };
|
|
14
|
+
export { adminGeoTools, companyLayer2Tools, companyTools, geoTools, identityTools, jobTools, legalTools, patentTools, publicContractTools, realEstateTools, sourceTools, };
|
|
13
15
|
export type { AnyTool, ToolDefinition } from "./types.js";
|
|
14
16
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,QAAQ,EAAE,OAAO,EAY7B,CAAC;AAEF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,GACZ,CAAC;AACF,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/tools/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { adminGeoTools } from "./admin-geo.js";
|
|
1
2
|
import { companyLayer2Tools } from "./company-layer2.js";
|
|
2
3
|
import { companyTools } from "./company.js";
|
|
3
4
|
import { geoTools } from "./geo.js";
|
|
@@ -5,6 +6,7 @@ import { identityTools } from "./identity.js";
|
|
|
5
6
|
import { jobTools } from "./jobs.js";
|
|
6
7
|
import { legalTools } from "./legal.js";
|
|
7
8
|
import { patentTools } from "./patents.js";
|
|
9
|
+
import { publicContractTools } from "./public-contracts.js";
|
|
8
10
|
import { realEstateTools } from "./realestate.js";
|
|
9
11
|
import { sourceTools } from "./sources.js";
|
|
10
12
|
export const allTools = [
|
|
@@ -12,11 +14,13 @@ export const allTools = [
|
|
|
12
14
|
...companyLayer2Tools,
|
|
13
15
|
...legalTools,
|
|
14
16
|
...geoTools,
|
|
17
|
+
...adminGeoTools,
|
|
15
18
|
...realEstateTools,
|
|
16
19
|
...identityTools,
|
|
17
20
|
...patentTools,
|
|
18
21
|
...jobTools,
|
|
22
|
+
...publicContractTools,
|
|
19
23
|
...sourceTools,
|
|
20
24
|
];
|
|
21
|
-
export { companyLayer2Tools, companyTools, geoTools, identityTools, jobTools, legalTools, patentTools, realEstateTools, sourceTools, };
|
|
25
|
+
export { adminGeoTools, companyLayer2Tools, companyTools, geoTools, identityTools, jobTools, legalTools, patentTools, publicContractTools, realEstateTools, sourceTools, };
|
|
22
26
|
//# sourceMappingURL=index.js.map
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,GAAG,YAAY;IACf,GAAG,kBAAkB;IACrB,GAAG,UAAU;IACb,GAAG,QAAQ;IACX,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,QAAQ;IACX,GAAG,WAAW;CACf,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,WAAW,GACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,CAAC,MAAM,QAAQ,GAAc;IACjC,GAAG,YAAY;IACf,GAAG,kBAAkB;IACrB,GAAG,UAAU;IACb,GAAG,QAAQ;IACX,GAAG,aAAa;IAChB,GAAG,eAAe;IAClB,GAAG,aAAa;IAChB,GAAG,WAAW;IACd,GAAG,QAAQ;IACX,GAAG,mBAAmB;IACtB,GAAG,WAAW;CACf,CAAC;AAEF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,WAAW,GACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-contracts.d.ts","sourceRoot":"","sources":["../../src/tools/public-contracts.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AA2DtD,eAAO,MAAM,mBAAmB,EAAE,OAAO,EAA4B,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { connectors } from "../connectors/index.js";
|
|
3
|
+
import { defineTool } from "./types.js";
|
|
4
|
+
const DECP_DATASET = "decp-2022-marches-valides";
|
|
5
|
+
const publicContractsSearch = defineTool({
|
|
6
|
+
name: "public_contracts_search",
|
|
7
|
+
description: "Recherche dans les marchés publics français (DECP — Données Essentielles de la Commande Publique). " +
|
|
8
|
+
"Permet de trouver tous les marchés attribués par acheteur (SIREN), titulaire (SIRET), objet, code CPV, " +
|
|
9
|
+
"département d'exécution, ou plage de dates. Gold mine B2B : qui gagne quels contrats publics ? " +
|
|
10
|
+
"Source officielle : data.economie.gouv.fr.",
|
|
11
|
+
inputSchema: z.object({
|
|
12
|
+
siret_titulaire: z.string().regex(/^\d{14}$/).optional().describe("SIRET de l'entreprise titulaire"),
|
|
13
|
+
siren_titulaire: z.string().regex(/^\d{9}$/).optional().describe("SIREN de l'entreprise titulaire (matche tous ses SIRET)"),
|
|
14
|
+
siret_acheteur: z.string().regex(/^\d{14}$/).optional().describe("SIRET de l'acheteur public"),
|
|
15
|
+
objet_contains: z.string().min(3).optional().describe("Recherche dans l'objet du marché"),
|
|
16
|
+
code_cpv: z.string().optional().describe("Code CPV (ex: 45000000 pour BTP)"),
|
|
17
|
+
departement: z.string().min(2).max(3).optional().describe("Code département du lieu d'exécution"),
|
|
18
|
+
date_from: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("Date notification minimale (YYYY-MM-DD)"),
|
|
19
|
+
date_to: z.string().regex(/^\d{4}-\d{2}-\d{2}$/).optional().describe("Date notification maximale (YYYY-MM-DD)"),
|
|
20
|
+
montant_min: z.number().optional(),
|
|
21
|
+
limit: z.number().int().min(1).max(100).default(20).optional(),
|
|
22
|
+
}),
|
|
23
|
+
handler: async (input) => {
|
|
24
|
+
const where = [];
|
|
25
|
+
if (input.siret_titulaire)
|
|
26
|
+
where.push(`titulaire_id_1="${input.siret_titulaire}"`);
|
|
27
|
+
if (input.siren_titulaire)
|
|
28
|
+
where.push(`startswith(titulaire_id_1,"${input.siren_titulaire}")`);
|
|
29
|
+
if (input.siret_acheteur)
|
|
30
|
+
where.push(`acheteur_id="${input.siret_acheteur}"`);
|
|
31
|
+
if (input.objet_contains)
|
|
32
|
+
where.push(`search(objet,"${input.objet_contains.replace(/"/g, '\\"')}")`);
|
|
33
|
+
if (input.code_cpv)
|
|
34
|
+
where.push(`startswith(codecpv,"${input.code_cpv}")`);
|
|
35
|
+
if (input.departement)
|
|
36
|
+
where.push(`lieuexecution_code="${input.departement}"`);
|
|
37
|
+
if (input.date_from)
|
|
38
|
+
where.push(`datenotification>=date'${input.date_from}'`);
|
|
39
|
+
if (input.date_to)
|
|
40
|
+
where.push(`datenotification<=date'${input.date_to}'`);
|
|
41
|
+
if (input.montant_min !== undefined)
|
|
42
|
+
where.push(`montant>=${input.montant_min}`);
|
|
43
|
+
return connectors.decp.records(DECP_DATASET, {
|
|
44
|
+
where: where.length ? where.join(" AND ") : undefined,
|
|
45
|
+
orderBy: "datenotification desc",
|
|
46
|
+
limit: input.limit ?? 20,
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
export const publicContractTools = [publicContractsSearch];
|
|
51
|
+
//# sourceMappingURL=public-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-contracts.js","sourceRoot":"","sources":["../../src/tools/public-contracts.ts"],"names":[],"mappings":"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"}
|