@assemblyline-agents/polar 2.0.0 → 3.0.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/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2026 OpenEve contributors
3
+ Copyright (c) 2026 Assembly Line contributors
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Official Assembly Line Polar connection plugin.
4
4
 
5
- It connects agents to Polar, exposing billing and monetization tools through Polar's MCP server. The package exports `definePolarConnection(options)` to declare the connection in an agent definition and an `assemblyLinePlugin` module so the Assembly Line CLI and compiler can discover the plugin's connection metadata. A bundled skill under `skills/` teaches agents how to use the connection's tools.
5
+ It connects agents to Polar, exposing billing and monetization tools through Polar's MCP server. The package exports `definePolarConnection(options)` to declare the connection in an agent definition and an `assemblyLinePlugin` module so the Assembly Line CLI and compiler can discover the plugin's connection metadata.
6
6
 
7
7
  ## Install
8
8
 
@@ -0,0 +1,3 @@
1
+ import { type ConnectionPluginEventAdapter } from "@assemblyline-agents/core";
2
+ export declare const polarEvents: ConnectionPluginEventAdapter;
3
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,4BAA4B,EAElC,MAAM,2BAA2B,CAAC;AAInC,eAAO,MAAM,WAAW,EAAE,4BAwDzB,CAAC"}
package/dist/events.js ADDED
@@ -0,0 +1,70 @@
1
+ import { ConnectionEventError, headerValue, parseConnectionEventJson, providerJson, recordField, requireEnvironmentValue, stringField, verifyHmacSha256 } from "@assemblyline-agents/core";
2
+ const API = "https://www.polaraccesslink.com/v3/webhooks";
3
+ export const polarEvents = {
4
+ async reconcile(context) {
5
+ const authorization = basic(context.env);
6
+ let webhookId = stringField(context.state ?? {}, "webhookId");
7
+ let secret = stringField(context.state ?? {}, "secret");
8
+ if (webhookId && secret) {
9
+ await providerJson(context.fetch, `${API}/${encodeURIComponent(webhookId)}`, {
10
+ method: "PATCH", headers: headers(authorization), body: JSON.stringify({ url: context.callbackUrl, events: context.selectedEvents })
11
+ });
12
+ return { status: "active", externalId: webhookId, state: { webhookId, secret }, detail: "Polar webhook is active." };
13
+ }
14
+ const existing = await providerJson(context.fetch, API, { headers: headers(authorization) });
15
+ const data = Array.isArray(existing.data) ? existing.data : [];
16
+ for (const item of data) {
17
+ if (!item || typeof item !== "object" || Array.isArray(item))
18
+ continue;
19
+ const id = stringField(item, "id");
20
+ if (id)
21
+ await providerJson(context.fetch, `${API}/${encodeURIComponent(id)}`, { method: "DELETE", headers: headers(authorization) }, [200, 204, 404]);
22
+ }
23
+ const created = await providerJson(context.fetch, API, {
24
+ method: "POST", headers: headers(authorization), body: JSON.stringify({ url: context.callbackUrl, events: context.selectedEvents })
25
+ });
26
+ const createdData = recordField(created, "data") ?? {};
27
+ webhookId = required(createdData, "id");
28
+ secret = required(createdData, "signature_secret_key");
29
+ return { status: "active", externalId: webhookId, state: { webhookId, secret }, detail: "Polar webhook is active." };
30
+ },
31
+ async remove(context) {
32
+ const webhookId = stringField(context.state ?? {}, "webhookId");
33
+ if (!webhookId)
34
+ return;
35
+ await providerJson(context.fetch, `${API}/${encodeURIComponent(webhookId)}`, { method: "DELETE", headers: headers(basic(context.env)) }, [200, 204, 404]);
36
+ },
37
+ async check(context) {
38
+ const webhookId = stringField(context.state ?? {}, "webhookId");
39
+ if (!webhookId)
40
+ return { status: "needs_setup", detail: "Polar webhook has not been created." };
41
+ const value = await providerJson(context.fetch, API, { headers: headers(basic(context.env)) });
42
+ const data = Array.isArray(value.data) ? value.data : [];
43
+ const item = data.find((candidate) => candidate && typeof candidate === "object" && !Array.isArray(candidate) && stringField(candidate, "id") === webhookId);
44
+ return item
45
+ ? { status: item.active === false ? "degraded" : "active", detail: item.active === false ? "Polar webhook is inactive." : "Polar webhook is active." }
46
+ : { status: "degraded", detail: "Polar webhook no longer exists." };
47
+ },
48
+ ingress(request, context) {
49
+ const payload = parseConnectionEventJson(request.body);
50
+ const event = required(payload, "event");
51
+ const secret = stringField(context.state ?? {}, "secret");
52
+ if (event === "PING" && !secret) {
53
+ return { events: [], response: { status: 200, body: { ok: true } }, audit: { challenge: true } };
54
+ }
55
+ if (!secret || !verifyHmacSha256({ secret, body: request.body, signature: headerValue(request.headers, "polar-webhook-signature") })) {
56
+ throw new ConnectionEventError("Polar webhook signature is invalid.", 401);
57
+ }
58
+ if (event === "PING")
59
+ return { events: [], response: { status: 200, body: { ok: true } }, audit: { challenge: true } };
60
+ const eventId = [event, identifier(payload, "user_id"), stringField(payload, "entity_id") ?? stringField(payload, "date") ?? "", stringField(payload, "timestamp") ?? ""].join(":");
61
+ const occurredAt = stringField(payload, "timestamp");
62
+ return { events: [{ event, eventId, payload: payload, ...(occurredAt ? { occurredAt } : {}) }], response: { status: 200, body: { ok: true } }, audit: { event } };
63
+ }
64
+ };
65
+ function basic(env) { return `Basic ${Buffer.from(`${requireEnvironmentValue(env, "POLAR_CLIENT_ID")}:${requireEnvironmentValue(env, "POLAR_CLIENT_SECRET")}`).toString("base64")}`; }
66
+ function headers(authorization) { return { authorization, "content-type": "application/json" }; }
67
+ function required(value, name) { const result = stringField(value, name); if (!result)
68
+ throw new ConnectionEventError(`Polar webhook omitted ${name}.`); return result; }
69
+ function identifier(value, name) { const result = value[name]; return typeof result === "string" || typeof result === "number" ? String(result) : "unknown"; }
70
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqE,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE/I,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,yEAAwD;AAC7H,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmG,KAAK,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG7K,MAAM,MAAM,sBAAsB,GAAG,0BAA0B,CAAC;AAChE,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,yEAAiN;AACtR,eAAO,MAAM,kBAAkB,kDAA0C,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- import { connectionPluginMetadata, defineMcpPluginConnection, definePlugin } from "@assemblyline-agents/core";
1
+ import { connectionPluginMetadata, defineConnectionPluginEvents, defineMcpPluginConnection, definePlugin } from "@assemblyline-agents/core";
2
+ import { polarEvents } from "./events.js";
2
3
  const PLUGIN = connectionPluginMetadata("polar");
3
- export function definePolarConnection(options) { return defineMcpPluginConnection(PLUGIN, options); }
4
+ export function definePolarConnection(options) { const definition = defineMcpPluginConnection(PLUGIN, options); const events = defineConnectionPluginEvents(PLUGIN, options.events, polarEvents); if (events)
5
+ definition.events = events; return definition; }
4
6
  export const assemblyLinePlugin = definePlugin({ connections: [PLUGIN] });
5
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,YAAY,EAAmC,MAAM,2BAA2B,CAAC;AAC/I,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAE,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,OAA+B,IAAI,OAAO,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC7H,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,4BAA4B,EAAE,yBAAyB,EAAE,YAAY,EAAmC,MAAM,2BAA2B,CAAC;AAC7K,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,MAAM,MAAM,GAAG,wBAAwB,CAAC,OAAO,CAAE,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,OAA+B,IAAI,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,GAAG,4BAA4B,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM;IAAE,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC;AACtR,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@assemblyline-agents/polar",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
@@ -9,12 +9,11 @@
9
9
  }
10
10
  },
11
11
  "dependencies": {
12
- "@assemblyline-agents/core": "2.0.0"
12
+ "@assemblyline-agents/core": "3.0.0"
13
13
  },
14
14
  "description": "Official Assembly Line Polar connection plugin.",
15
15
  "files": [
16
- "dist",
17
- "skills"
16
+ "dist"
18
17
  ],
19
18
  "engines": {
20
19
  "node": ">=22.19.0"
@@ -1,8 +0,0 @@
1
- ---
2
- name: polar
3
- description: Use configured Polar tools for workouts, heart rate, and training context.
4
- ---
5
- # Polar
6
- Use the `polar` connection for bounded, read-only exercise lookups. Prefer specific dates and workouts.
7
-
8
- The deployment owner configures Polar AccessLink, OAuth, the MCP bridge, and credentials. Never request or reveal tokens in chat.