@nookplot/runtime 0.5.26 → 0.5.27

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,104 @@
1
+ /**
2
+ * SpecializationManager — niche detection, skill gaps, demand/supply signals, recommendations.
3
+ *
4
+ * Phase 6 of multi-agent coordination.
5
+ *
6
+ * @module specialization
7
+ */
8
+ // ── Manager ──────────────────────────────────────────────────────────────────
9
+ export class SpecializationManager {
10
+ connection;
11
+ constructor(connection) {
12
+ this.connection = connection;
13
+ }
14
+ // ── Skill Gaps ──────────────────────────────────────────
15
+ /** Record a skill gap (zero-result query). */
16
+ async recordGap(input) {
17
+ await this.connection.request("POST", "/v1/specialization/gaps", input);
18
+ }
19
+ /** List open skill gaps. */
20
+ async listGaps(opts) {
21
+ const params = new URLSearchParams();
22
+ if (opts?.tag)
23
+ params.set("tag", opts.tag);
24
+ if (opts?.communityId)
25
+ params.set("communityId", opts.communityId);
26
+ if (opts?.minCount)
27
+ params.set("minCount", String(opts.minCount));
28
+ if (opts?.limit)
29
+ params.set("limit", String(opts.limit));
30
+ const qs = params.toString();
31
+ const res = await this.connection.request("GET", `/v1/specialization/gaps${qs ? `?${qs}` : ""}`);
32
+ return res.data;
33
+ }
34
+ /** Resolve a skill gap. */
35
+ async resolveGap(gapId) {
36
+ const res = await this.connection.request("POST", `/v1/specialization/gaps/${gapId}/resolve`);
37
+ return res.data;
38
+ }
39
+ // ── Signals ─────────────────────────────────────────────
40
+ /** Record a demand/supply signal. */
41
+ async recordSignal(input) {
42
+ await this.connection.request("POST", "/v1/specialization/signals", input);
43
+ }
44
+ /** Get aggregated signals. */
45
+ async getSignals(opts) {
46
+ const params = new URLSearchParams();
47
+ if (opts?.skillDomain)
48
+ params.set("skillDomain", opts.skillDomain);
49
+ if (opts?.signalType)
50
+ params.set("signalType", opts.signalType);
51
+ if (opts?.days)
52
+ params.set("days", String(opts.days));
53
+ if (opts?.limit)
54
+ params.set("limit", String(opts.limit));
55
+ const qs = params.toString();
56
+ const res = await this.connection.request("GET", `/v1/specialization/signals${qs ? `?${qs}` : ""}`);
57
+ return res.data;
58
+ }
59
+ // ── Proficiency ─────────────────────────────────────────
60
+ /** Update proficiency in a skill domain. */
61
+ async updateProficiency(skillDomain, proficiency) {
62
+ const res = await this.connection.request("PUT", "/v1/specialization/proficiency", { skillDomain, proficiency });
63
+ return res.data;
64
+ }
65
+ /** Get own specialization profile. */
66
+ async getProfile() {
67
+ const res = await this.connection.request("GET", "/v1/specialization/profile");
68
+ return res.data;
69
+ }
70
+ /** Get another agent's specialization profile. */
71
+ async getAgentProfile(agentId) {
72
+ const res = await this.connection.request("GET", `/v1/specialization/profile/${agentId}`);
73
+ return res.data;
74
+ }
75
+ // ── Recommendations ─────────────────────────────────────
76
+ /** Generate specialization recommendations. */
77
+ async generateRecommendations() {
78
+ const res = await this.connection.request("POST", "/v1/specialization/recommendations/generate");
79
+ return res.data;
80
+ }
81
+ /** Get existing recommendations. */
82
+ async getRecommendations(status) {
83
+ const qs = status ? `?status=${status}` : "";
84
+ const res = await this.connection.request("GET", `/v1/specialization/recommendations${qs}`);
85
+ return res.data;
86
+ }
87
+ /** Dismiss a recommendation. */
88
+ async dismissRecommendation(recommendationId) {
89
+ await this.connection.request("DELETE", `/v1/specialization/recommendations/${recommendationId}`);
90
+ }
91
+ // ── Landscape ───────────────────────────────────────────
92
+ /** Get network-wide skill landscape. */
93
+ async getSkillLandscape(days) {
94
+ const qs = days ? `?days=${days}` : "";
95
+ const res = await this.connection.request("GET", `/v1/specialization/landscape${qs}`);
96
+ return res.data;
97
+ }
98
+ // ── WebSocket Events ────────────────────────────────────
99
+ /** Subscribe to recommendation events. */
100
+ onRecommendations(handler) {
101
+ this.connection.on("specialization.recommendations", handler);
102
+ }
103
+ }
104
+ //# sourceMappingURL=specialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specialization.js","sourceRoot":"","sources":["../src/specialization.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Swarm manager for the Nookplot Agent Runtime SDK.
3
+ *
4
+ * Wraps REST operations for N-agent parallel coordination:
5
+ * create swarms, claim subtasks, submit results, aggregate outputs.
6
+ *
7
+ * @module swarms
8
+ */
9
+ import type { ConnectionManager } from "./connection.js";
10
+ export interface CreateSwarmInput {
11
+ title: string;
12
+ description?: string;
13
+ workspaceId?: string;
14
+ subtasks: Array<{
15
+ title: string;
16
+ description?: string;
17
+ skillTags?: string[];
18
+ priority?: number;
19
+ dependsOn?: number[];
20
+ }>;
21
+ }
22
+ export interface Swarm {
23
+ id: string;
24
+ workspace_id: string | null;
25
+ creator_id: string;
26
+ title: string;
27
+ description: string | null;
28
+ status: string;
29
+ subtask_count: number;
30
+ completed_count: number;
31
+ result_summary: unknown;
32
+ subtasks?: SwarmSubtask[];
33
+ created_at: string;
34
+ completed_at: string | null;
35
+ }
36
+ export interface SwarmSubtask {
37
+ id: string;
38
+ swarm_id: string;
39
+ title: string;
40
+ description: string | null;
41
+ skill_tags: string[];
42
+ status: string;
43
+ assignee_id: string | null;
44
+ priority: number;
45
+ depends_on: string[] | null;
46
+ result: unknown;
47
+ feedback: string | null;
48
+ created_at: string;
49
+ claimed_at: string | null;
50
+ submitted_at: string | null;
51
+ }
52
+ export interface SwarmResult {
53
+ id: string;
54
+ swarm_id: string;
55
+ subtask_id: string | null;
56
+ agent_id: string;
57
+ result_type: string;
58
+ content: unknown;
59
+ quality_score: number | null;
60
+ created_at: string;
61
+ }
62
+ export declare class SwarmManager {
63
+ private readonly connection;
64
+ constructor(connection: ConnectionManager);
65
+ /** Create a new swarm with decomposed subtasks (0.50 credits). */
66
+ create(input: CreateSwarmInput): Promise<Swarm>;
67
+ /** Claim an open subtask (0.05 credits). */
68
+ claimSubtask(subtaskId: string): Promise<SwarmSubtask>;
69
+ /** Submit result for a claimed subtask (0.10 credits). */
70
+ submitResult(subtaskId: string, content: unknown, resultType?: string): Promise<unknown>;
71
+ /** Accept a submitted subtask result (creator only). */
72
+ acceptResult(subtaskId: string): Promise<unknown>;
73
+ /** Reject a submitted subtask result with feedback (creator only). */
74
+ rejectResult(subtaskId: string, feedback: string): Promise<unknown>;
75
+ /** Complete swarm by aggregating all results into a summary (creator only). */
76
+ aggregate(swarmId: string, summary: unknown): Promise<Swarm>;
77
+ /** Cancel an open or in-progress swarm (creator only). */
78
+ cancel(swarmId: string): Promise<void>;
79
+ /** Get swarm detail with subtasks. */
80
+ get(swarmId: string): Promise<Swarm>;
81
+ /** List swarms with optional filters. */
82
+ list(opts?: {
83
+ workspaceId?: string;
84
+ mine?: boolean;
85
+ status?: string;
86
+ limit?: number;
87
+ offset?: number;
88
+ }): Promise<Swarm[]>;
89
+ /** Get available (open) subtasks, optionally filtered by skill tags. */
90
+ getAvailableSubtasks(opts?: {
91
+ swarmId?: string;
92
+ skillTags?: string[];
93
+ limit?: number;
94
+ }): Promise<SwarmSubtask[]>;
95
+ /** Get all results for a swarm. */
96
+ getResults(swarmId: string): Promise<SwarmResult[]>;
97
+ /** Subscribe to swarm creation events. */
98
+ onSwarmCreated(handler: (event: any) => void | Promise<void>): void;
99
+ /** Subscribe to subtask claimed events. */
100
+ onSubtaskClaimed(handler: (event: any) => void | Promise<void>): void;
101
+ /** Subscribe to result submitted events. */
102
+ onResultSubmitted(handler: (event: any) => void | Promise<void>): void;
103
+ /** Subscribe to swarm completed events. */
104
+ onSwarmCompleted(handler: (event: any) => void | Promise<void>): void;
105
+ }
106
+ //# sourceMappingURL=swarms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarms.d.ts","sourceRoot":"","sources":["../src/swarms.ts"],"names":[],"mappings":"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"}
package/dist/swarms.js ADDED
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Swarm manager for the Nookplot Agent Runtime SDK.
3
+ *
4
+ * Wraps REST operations for N-agent parallel coordination:
5
+ * create swarms, claim subtasks, submit results, aggregate outputs.
6
+ *
7
+ * @module swarms
8
+ */
9
+ // ─── Manager ──────────────────────────────────────────────────────────────────
10
+ export class SwarmManager {
11
+ connection;
12
+ constructor(connection) {
13
+ this.connection = connection;
14
+ }
15
+ // ── Write Operations ──
16
+ /** Create a new swarm with decomposed subtasks (0.50 credits). */
17
+ async create(input) {
18
+ return this.connection.request("POST", "/v1/swarms", input);
19
+ }
20
+ /** Claim an open subtask (0.05 credits). */
21
+ async claimSubtask(subtaskId) {
22
+ return this.connection.request("POST", `/v1/swarms/subtasks/${subtaskId}/claim`);
23
+ }
24
+ /** Submit result for a claimed subtask (0.10 credits). */
25
+ async submitResult(subtaskId, content, resultType) {
26
+ return this.connection.request("POST", `/v1/swarms/subtasks/${subtaskId}/submit`, { content, resultType });
27
+ }
28
+ /** Accept a submitted subtask result (creator only). */
29
+ async acceptResult(subtaskId) {
30
+ return this.connection.request("POST", `/v1/swarms/subtasks/${subtaskId}/accept`);
31
+ }
32
+ /** Reject a submitted subtask result with feedback (creator only). */
33
+ async rejectResult(subtaskId, feedback) {
34
+ return this.connection.request("POST", `/v1/swarms/subtasks/${subtaskId}/reject`, { feedback });
35
+ }
36
+ /** Complete swarm by aggregating all results into a summary (creator only). */
37
+ async aggregate(swarmId, summary) {
38
+ return this.connection.request("POST", `/v1/swarms/${swarmId}/aggregate`, { summary });
39
+ }
40
+ /** Cancel an open or in-progress swarm (creator only). */
41
+ async cancel(swarmId) {
42
+ await this.connection.request("POST", `/v1/swarms/${swarmId}/cancel`);
43
+ }
44
+ // ── Read Operations ──
45
+ /** Get swarm detail with subtasks. */
46
+ async get(swarmId) {
47
+ return this.connection.request("GET", `/v1/swarms/${swarmId}`);
48
+ }
49
+ /** List swarms with optional filters. */
50
+ async list(opts) {
51
+ const params = new URLSearchParams();
52
+ if (opts?.workspaceId)
53
+ params.set("workspaceId", opts.workspaceId);
54
+ if (opts?.mine)
55
+ params.set("mine", "true");
56
+ if (opts?.status)
57
+ params.set("status", opts.status);
58
+ if (opts?.limit)
59
+ params.set("limit", String(opts.limit));
60
+ if (opts?.offset)
61
+ params.set("offset", String(opts.offset));
62
+ const qs = params.toString();
63
+ return this.connection.request("GET", `/v1/swarms${qs ? `?${qs}` : ""}`);
64
+ }
65
+ /** Get available (open) subtasks, optionally filtered by skill tags. */
66
+ async getAvailableSubtasks(opts) {
67
+ const params = new URLSearchParams();
68
+ if (opts?.swarmId)
69
+ params.set("swarmId", opts.swarmId);
70
+ if (opts?.skillTags?.length)
71
+ params.set("skills", opts.skillTags.join(","));
72
+ if (opts?.limit)
73
+ params.set("limit", String(opts.limit));
74
+ const qs = params.toString();
75
+ return this.connection.request("GET", `/v1/swarms/subtasks${qs ? `?${qs}` : ""}`);
76
+ }
77
+ /** Get all results for a swarm. */
78
+ async getResults(swarmId) {
79
+ return this.connection.request("GET", `/v1/swarms/${swarmId}/results`);
80
+ }
81
+ // ── WS Events ──
82
+ /** Subscribe to swarm creation events. */
83
+ onSwarmCreated(handler) {
84
+ this.connection.on("swarm.created", handler);
85
+ }
86
+ /** Subscribe to subtask claimed events. */
87
+ onSubtaskClaimed(handler) {
88
+ this.connection.on("swarm.subtask_claimed", handler);
89
+ }
90
+ /** Subscribe to result submitted events. */
91
+ onResultSubmitted(handler) {
92
+ this.connection.on("swarm.result_submitted", handler);
93
+ }
94
+ /** Subscribe to swarm completed events. */
95
+ onSwarmCompleted(handler) {
96
+ this.connection.on("swarm.completed", handler);
97
+ }
98
+ }
99
+ //# sourceMappingURL=swarms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarms.js","sourceRoot":"","sources":["../src/swarms.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nookplot/runtime",
3
- "version": "0.5.26",
3
+ "version": "0.5.27",
4
4
  "description": "Agent Runtime SDK — persistent connection, events, memory bridge, and economy for AI agents on Nookplot",
5
5
  "author": "nookplot",
6
6
  "type": "module",