plures 1.21.0 → 1.22.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/README.md +1 -0
- package/dist/{chunk-Z3YGRA2U.js → chunk-3P2G67SF.js} +4 -1
- package/dist/cli.cjs +4 -1
- package/dist/cli.js +1 -1
- package/dist/index.cjs +4 -1
- package/dist/index.d.cts +28 -2
- package/dist/index.d.ts +28 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -56,6 +56,7 @@ if (event.type === "task.completed" && event.data.result?.agreement === 1) {
|
|
|
56
56
|
- In your terminal, `npx plures map` opens your map page so you can watch it build (`--no-open` to skip), keeps one live line of what it's reading, and ends by drawing the map's flows with the checks Plures suggests. On GitHub and other CI it prints a plain log.
|
|
57
57
|
- `npx plures map` shows each file as Claude Code reads it and sends the file names (never their contents) to Plures, so the map page shows the reading live and the map builds itself when it lands. `plures.maps.progress(app, { session, phase, events })` is the call behind it.
|
|
58
58
|
- `plures.github.repos()`, `.connect(app, "owner/repo")`, `.turnOn(app)`, `.run(app)` (map now), `.status(app)`, `.disconnect(app)`: Map with GitHub from code. Plures sets the repo's map key secret and opens a pull request adding the workflow; `turnOn` merges it. Installing the Plures GitHub App needs a browser once (`install_url`). From a terminal: `npx plures map github connect`, then `npx plures map github on`; `npx plures map github run` maps again now.
|
|
59
|
+
- `plures.quality.suggestions(app)`: rubrics the Plures engine suggests for the app, from what graders found in its answers (with evidence) and from its agent map (with the step and file).
|
|
59
60
|
- `plures.quality.sample({ rubric, output, input? })`: send every output; a share is graded by people against the rubric, with personal details taken out first. `plures.quality.rubrics.create({ name, question, options, sample_rate })`, `.retrieve(name)` (score by day, this week against the four before, drift), `.list()`, `.update()`, `.del()`. `plures.quality.compare({ release, input, a, b })` and `plures.quality.release(name)` for blind release checks. `plures.quality.export(rubric)` returns graded samples for evals or fine tuning.
|
|
60
61
|
- `plures.testMix.set({ unanimous: 70, split: 20, tie: 5, expired: 5 })`, `.get()`, `.clear()`: with a test key, makes a share of test tasks split, tie or expire at random so you can test routing to your team without changing your agent. A task can override it with `metadata.test_mix`, and `metadata.test_outcome` beats both.
|
|
61
62
|
- `plures.routing.get()`, `plures.routing.set({ groups, rules, team })`: named teams of your own people and rules by category, like `{ groups: [{ name: "Finance", emails: ["ap@acme.com"] }], rules: [{ category: "refunds", route: "team", group: "Finance" }] }`. What you send replaces what's there; the rest stays.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
var VERSION = "1.
|
|
2
|
+
var VERSION = "1.22.0";
|
|
3
3
|
var PluresError = class extends Error {
|
|
4
4
|
constructor(message, status, type) {
|
|
5
5
|
super(message);
|
|
@@ -148,6 +148,9 @@ var Plures = class {
|
|
|
148
148
|
* early, and compare two versions blind before you ship. Personal details are taken out first.
|
|
149
149
|
*/
|
|
150
150
|
quality = {
|
|
151
|
+
/** Rubrics the Plures engine suggests for an app: from what graders found in its answers (source "grades", with
|
|
152
|
+
* evidence) and from its agent map (source "map", with the step and file). Add one with rubrics.create. */
|
|
153
|
+
suggestions: (app) => this.req("GET", `/api/v1/apps/${encodeURIComponent(app)}/rubric_suggestions`),
|
|
151
154
|
/** Send every output; the rubric's sample rate decides which ones people grade. */
|
|
152
155
|
sample: (p) => this.req("POST", "/api/v1/samples", p),
|
|
153
156
|
/** A blind release check: a is the current version's output, b the new one's, for the same input. */
|
package/dist/cli.cjs
CHANGED
|
@@ -30,7 +30,7 @@ var import_node_path = require("path");
|
|
|
30
30
|
var import_node_fs = require("fs");
|
|
31
31
|
|
|
32
32
|
// src/index.ts
|
|
33
|
-
var VERSION = "1.
|
|
33
|
+
var VERSION = "1.22.0";
|
|
34
34
|
var PluresError = class extends Error {
|
|
35
35
|
constructor(message, status, type) {
|
|
36
36
|
super(message);
|
|
@@ -179,6 +179,9 @@ var Plures = class {
|
|
|
179
179
|
* early, and compare two versions blind before you ship. Personal details are taken out first.
|
|
180
180
|
*/
|
|
181
181
|
quality = {
|
|
182
|
+
/** Rubrics the Plures engine suggests for an app: from what graders found in its answers (source "grades", with
|
|
183
|
+
* evidence) and from its agent map (source "map", with the step and file). Add one with rubrics.create. */
|
|
184
|
+
suggestions: (app2) => this.req("GET", `/api/v1/apps/${encodeURIComponent(app2)}/rubric_suggestions`),
|
|
182
185
|
/** Send every output; the rubric's sample rate decides which ones people grade. */
|
|
183
186
|
sample: (p) => this.req("POST", "/api/v1/samples", p),
|
|
184
187
|
/** A blind release check: a is the current version's output, b the new one's, for the same input. */
|
package/dist/cli.js
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -26,7 +26,7 @@ __export(index_exports, {
|
|
|
26
26
|
default: () => index_default
|
|
27
27
|
});
|
|
28
28
|
module.exports = __toCommonJS(index_exports);
|
|
29
|
-
var VERSION = "1.
|
|
29
|
+
var VERSION = "1.22.0";
|
|
30
30
|
var PluresError = class extends Error {
|
|
31
31
|
constructor(message, status, type) {
|
|
32
32
|
super(message);
|
|
@@ -175,6 +175,9 @@ var Plures = class {
|
|
|
175
175
|
* early, and compare two versions blind before you ship. Personal details are taken out first.
|
|
176
176
|
*/
|
|
177
177
|
quality = {
|
|
178
|
+
/** Rubrics the Plures engine suggests for an app: from what graders found in its answers (source "grades", with
|
|
179
|
+
* evidence) and from its agent map (source "map", with the step and file). Add one with rubrics.create. */
|
|
180
|
+
suggestions: (app) => this.req("GET", `/api/v1/apps/${encodeURIComponent(app)}/rubric_suggestions`),
|
|
178
181
|
/** Send every output; the rubric's sample rate decides which ones people grade. */
|
|
179
182
|
sample: (p) => this.req("POST", "/api/v1/samples", p),
|
|
180
183
|
/** A blind release check: a is the current version's output, b the new one's, for the same input. */
|
package/dist/index.d.cts
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
type RubricSuggestion = {
|
|
2
|
+
object: "rubric_suggestion";
|
|
3
|
+
name: string;
|
|
4
|
+
question: string;
|
|
5
|
+
options: string[];
|
|
6
|
+
sample_rate: number;
|
|
7
|
+
why: string;
|
|
8
|
+
source: "map" | "grades";
|
|
9
|
+
evidence?: {
|
|
10
|
+
n: number;
|
|
11
|
+
examples: string[];
|
|
12
|
+
};
|
|
13
|
+
node: {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
file: string | null;
|
|
17
|
+
line: number | null;
|
|
18
|
+
} | null;
|
|
19
|
+
};
|
|
1
20
|
type MapEstimate = {
|
|
2
21
|
object: "map_estimate";
|
|
3
22
|
app: string;
|
|
@@ -506,7 +525,7 @@ type WebhookEvent = {
|
|
|
506
525
|
created_at: string;
|
|
507
526
|
data: Task;
|
|
508
527
|
};
|
|
509
|
-
declare const VERSION = "1.
|
|
528
|
+
declare const VERSION = "1.22.0";
|
|
510
529
|
type GitHubLink = {
|
|
511
530
|
object: "github_link";
|
|
512
531
|
app: string;
|
|
@@ -759,6 +778,13 @@ declare class Plures {
|
|
|
759
778
|
* early, and compare two versions blind before you ship. Personal details are taken out first.
|
|
760
779
|
*/
|
|
761
780
|
quality: {
|
|
781
|
+
/** Rubrics the Plures engine suggests for an app: from what graders found in its answers (source "grades", with
|
|
782
|
+
* evidence) and from its agent map (source "map", with the step and file). Add one with rubrics.create. */
|
|
783
|
+
suggestions: (app: string) => Promise<{
|
|
784
|
+
object: "list";
|
|
785
|
+
app: string;
|
|
786
|
+
data: RubricSuggestion[];
|
|
787
|
+
}>;
|
|
762
788
|
/** Send every output; the rubric's sample rate decides which ones people grade. */
|
|
763
789
|
sample: (p: {
|
|
764
790
|
rubric: string;
|
|
@@ -934,4 +960,4 @@ declare class Plures {
|
|
|
934
960
|
static verifyWebhook(rawBody: string, signatureHeader: string | null, secret: string, toleranceSec?: number): Promise<WebhookEvent>;
|
|
935
961
|
}
|
|
936
962
|
|
|
937
|
-
export { type AgentMap, type App, type Balance, type CheckOverrides, type CheckResult, type Consensus, type CreateTask, type DriftCase, type DriftDiagnosis, type Escalation, type GitHubLink, type MapChanges, type MapCheckpoint, type MapDraft, type MapEstimate, type MapKey, type MapNode, type Mix, type Option, Plures, PluresError, type Release, type Result, type Route, type Routing, type RoutingRule, type RoutingUpdate, type Rubric, type RubricParams, type Sample, type StoredAgentMap, type Task, type TaskStatus, type TeamTally, type TeamVote, type TestMix, type TurnParams, VERSION, type WebhookEvent, Plures as default };
|
|
963
|
+
export { type AgentMap, type App, type Balance, type CheckOverrides, type CheckResult, type Consensus, type CreateTask, type DriftCase, type DriftDiagnosis, type Escalation, type GitHubLink, type MapChanges, type MapCheckpoint, type MapDraft, type MapEstimate, type MapKey, type MapNode, type Mix, type Option, Plures, PluresError, type Release, type Result, type Route, type Routing, type RoutingRule, type RoutingUpdate, type Rubric, type RubricParams, type RubricSuggestion, type Sample, type StoredAgentMap, type Task, type TaskStatus, type TeamTally, type TeamVote, type TestMix, type TurnParams, VERSION, type WebhookEvent, Plures as default };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
type RubricSuggestion = {
|
|
2
|
+
object: "rubric_suggestion";
|
|
3
|
+
name: string;
|
|
4
|
+
question: string;
|
|
5
|
+
options: string[];
|
|
6
|
+
sample_rate: number;
|
|
7
|
+
why: string;
|
|
8
|
+
source: "map" | "grades";
|
|
9
|
+
evidence?: {
|
|
10
|
+
n: number;
|
|
11
|
+
examples: string[];
|
|
12
|
+
};
|
|
13
|
+
node: {
|
|
14
|
+
id: string;
|
|
15
|
+
label: string;
|
|
16
|
+
file: string | null;
|
|
17
|
+
line: number | null;
|
|
18
|
+
} | null;
|
|
19
|
+
};
|
|
1
20
|
type MapEstimate = {
|
|
2
21
|
object: "map_estimate";
|
|
3
22
|
app: string;
|
|
@@ -506,7 +525,7 @@ type WebhookEvent = {
|
|
|
506
525
|
created_at: string;
|
|
507
526
|
data: Task;
|
|
508
527
|
};
|
|
509
|
-
declare const VERSION = "1.
|
|
528
|
+
declare const VERSION = "1.22.0";
|
|
510
529
|
type GitHubLink = {
|
|
511
530
|
object: "github_link";
|
|
512
531
|
app: string;
|
|
@@ -759,6 +778,13 @@ declare class Plures {
|
|
|
759
778
|
* early, and compare two versions blind before you ship. Personal details are taken out first.
|
|
760
779
|
*/
|
|
761
780
|
quality: {
|
|
781
|
+
/** Rubrics the Plures engine suggests for an app: from what graders found in its answers (source "grades", with
|
|
782
|
+
* evidence) and from its agent map (source "map", with the step and file). Add one with rubrics.create. */
|
|
783
|
+
suggestions: (app: string) => Promise<{
|
|
784
|
+
object: "list";
|
|
785
|
+
app: string;
|
|
786
|
+
data: RubricSuggestion[];
|
|
787
|
+
}>;
|
|
762
788
|
/** Send every output; the rubric's sample rate decides which ones people grade. */
|
|
763
789
|
sample: (p: {
|
|
764
790
|
rubric: string;
|
|
@@ -934,4 +960,4 @@ declare class Plures {
|
|
|
934
960
|
static verifyWebhook(rawBody: string, signatureHeader: string | null, secret: string, toleranceSec?: number): Promise<WebhookEvent>;
|
|
935
961
|
}
|
|
936
962
|
|
|
937
|
-
export { type AgentMap, type App, type Balance, type CheckOverrides, type CheckResult, type Consensus, type CreateTask, type DriftCase, type DriftDiagnosis, type Escalation, type GitHubLink, type MapChanges, type MapCheckpoint, type MapDraft, type MapEstimate, type MapKey, type MapNode, type Mix, type Option, Plures, PluresError, type Release, type Result, type Route, type Routing, type RoutingRule, type RoutingUpdate, type Rubric, type RubricParams, type Sample, type StoredAgentMap, type Task, type TaskStatus, type TeamTally, type TeamVote, type TestMix, type TurnParams, VERSION, type WebhookEvent, Plures as default };
|
|
963
|
+
export { type AgentMap, type App, type Balance, type CheckOverrides, type CheckResult, type Consensus, type CreateTask, type DriftCase, type DriftDiagnosis, type Escalation, type GitHubLink, type MapChanges, type MapCheckpoint, type MapDraft, type MapEstimate, type MapKey, type MapNode, type Mix, type Option, Plures, PluresError, type Release, type Result, type Route, type Routing, type RoutingRule, type RoutingUpdate, type Rubric, type RubricParams, type RubricSuggestion, type Sample, type StoredAgentMap, type Task, type TaskStatus, type TeamTally, type TeamVote, type TestMix, type TurnParams, VERSION, type WebhookEvent, Plures as default };
|
package/dist/index.js
CHANGED