@mandible-ai/mandible 0.3.4 → 0.3.6
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 -1
- package/dist/examples/code-pipeline/index.js +2 -12
- package/dist/examples/code-pipeline/index.js.map +1 -1
- package/dist/examples/code-pipeline/with-providers.js +45 -100
- package/dist/examples/code-pipeline/with-providers.js.map +1 -1
- package/dist/src/cli/index.js +24 -2
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/server.d.ts +58 -13
- package/dist/src/cli/server.d.ts.map +1 -1
- package/dist/src/cli/server.js +90 -256
- package/dist/src/cli/server.js.map +1 -1
- package/dist/src/cloud/client.d.ts +2 -1
- package/dist/src/cloud/client.d.ts.map +1 -1
- package/dist/src/cloud/client.js +6 -0
- package/dist/src/cloud/client.js.map +1 -1
- package/dist/src/cloud/index.d.ts +1 -1
- package/dist/src/cloud/index.d.ts.map +1 -1
- package/dist/src/cloud/types.d.ts +41 -1
- package/dist/src/cloud/types.d.ts.map +1 -1
- package/dist/src/dsl/mandible.d.ts +22 -3
- package/dist/src/dsl/mandible.d.ts.map +1 -1
- package/dist/src/dsl/mandible.js +73 -10
- package/dist/src/dsl/mandible.js.map +1 -1
- package/dist/src/environments/github/adapter.d.ts +15 -1
- package/dist/src/environments/github/adapter.d.ts.map +1 -1
- package/dist/src/environments/github/adapter.js +178 -47
- package/dist/src/environments/github/adapter.js.map +1 -1
- package/dist/src/environments/github/client.d.ts +18 -1
- package/dist/src/environments/github/client.d.ts.map +1 -1
- package/dist/src/environments/github/client.js +124 -0
- package/dist/src/environments/github/client.js.map +1 -1
- package/dist/src/environments/github/index.d.ts +2 -2
- package/dist/src/environments/github/index.d.ts.map +1 -1
- package/dist/src/environments/github/index.js +1 -1
- package/dist/src/environments/github/index.js.map +1 -1
- package/dist/src/environments/github/mapper.d.ts +47 -1
- package/dist/src/environments/github/mapper.d.ts.map +1 -1
- package/dist/src/environments/github/mapper.js +176 -1
- package/dist/src/environments/github/mapper.js.map +1 -1
- package/dist/src/environments/github/types.d.ts +100 -0
- package/dist/src/environments/github/types.d.ts.map +1 -1
- package/dist/src/hosts/docker.d.ts.map +1 -1
- package/dist/src/hosts/docker.js +22 -4
- package/dist/src/hosts/docker.js.map +1 -1
- package/dist/src/hosts/local.d.ts +3 -0
- package/dist/src/hosts/local.d.ts.map +1 -1
- package/dist/src/hosts/local.js +20 -4
- package/dist/src/hosts/local.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { ColonyBuilder } from './builder.js';
|
|
2
2
|
import type { Environment, ColonyDefinition, Host } from '../core/types.js';
|
|
3
|
+
import type { ColonyModuleRef } from '../cloud/types.js';
|
|
3
4
|
type ColonyConfigurator = (builder: ColonyBuilder) => ColonyBuilder;
|
|
5
|
+
interface ColonyEntry {
|
|
6
|
+
name: string;
|
|
7
|
+
configurator?: ColonyConfigurator;
|
|
8
|
+
moduleRef?: ColonyModuleRef;
|
|
9
|
+
}
|
|
4
10
|
export declare class MandibleBuilder {
|
|
5
11
|
private _name;
|
|
6
12
|
private _env?;
|
|
@@ -14,8 +20,21 @@ export declare class MandibleBuilder {
|
|
|
14
20
|
* If not specified, defaults to LocalHost (runs in current process).
|
|
15
21
|
*/
|
|
16
22
|
host(host: Host): this;
|
|
17
|
-
/**
|
|
18
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Add a colony.
|
|
25
|
+
*
|
|
26
|
+
* Accepts either a configurator closure (for local usage) or a module
|
|
27
|
+
* reference (for cloud deployment where closures can't be serialized).
|
|
28
|
+
*
|
|
29
|
+
* @example Closure (local host):
|
|
30
|
+
* .colony('scout', c => c.sense('task:ready').do('work', handler))
|
|
31
|
+
*
|
|
32
|
+
* @example Module ref (cloud host):
|
|
33
|
+
* .colony('scout', { module: './scout.js', export: 'configureScout', args: [repoRoot] })
|
|
34
|
+
*/
|
|
35
|
+
colony(name: string, configure: ColonyConfigurator | ColonyModuleRef): this;
|
|
36
|
+
/** Get the raw colony entries (used by CloudHost for bundling) */
|
|
37
|
+
get colonyEntries(): ReadonlyArray<Readonly<ColonyEntry>>;
|
|
19
38
|
/**
|
|
20
39
|
* Start colonies on the configured host.
|
|
21
40
|
* What "start" means depends on the host:
|
|
@@ -32,7 +51,7 @@ export declare class MandibleBuilder {
|
|
|
32
51
|
* Build colony definitions without starting anything.
|
|
33
52
|
* Useful for testing or custom orchestration.
|
|
34
53
|
*/
|
|
35
|
-
build(env?: Environment): ColonyDefinition[]
|
|
54
|
+
build(env?: Environment): Promise<ColonyDefinition[]>;
|
|
36
55
|
private buildDefinitions;
|
|
37
56
|
private resolveHost;
|
|
38
57
|
private requireEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandible.d.ts","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mandible.d.ts","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,aAAa,EAA2B,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EACV,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,KAAK,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC;AAEpE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAcD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,SAAS,CAAqB;gBAE1B,IAAI,EAAE,MAAM;IAIxB,gEAAgE;IAChE,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKnC;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAKtB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI;IAS3E,kEAAkE;IAClE,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAExD;IAED;;;;;;;;;;OAUG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;;OAGG;IACG,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAU7C,gBAAgB;YAgBhB,WAAW;IAOzB,OAAO,CAAC,UAAU;CAQnB;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEtD"}
|
package/dist/src/dsl/mandible.js
CHANGED
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
// const host = await mandible('review')
|
|
32
32
|
// .environment(env) // same environment, real signal substrate
|
|
33
33
|
// .host(cloud({ apiKey: CLOUD_KEY })) // colonies run in Edera microVMs
|
|
34
|
-
// .colony('
|
|
34
|
+
// .colony('scout', {
|
|
35
|
+
// module: './scout.js',
|
|
36
|
+
// export: 'configureScout',
|
|
37
|
+
// args: [TARGET_REPO],
|
|
38
|
+
// })
|
|
35
39
|
// .start();
|
|
36
40
|
//
|
|
37
41
|
// // Dashboard is opt-in after start:
|
|
@@ -39,6 +43,15 @@
|
|
|
39
43
|
//
|
|
40
44
|
// ============================================================
|
|
41
45
|
import { colony as colonyBuilder } from './builder.js';
|
|
46
|
+
/** Check if a value is a ColonyModuleRef (has module + export fields) */
|
|
47
|
+
function isModuleRef(value) {
|
|
48
|
+
return (typeof value === 'object' &&
|
|
49
|
+
value !== null &&
|
|
50
|
+
'module' in value &&
|
|
51
|
+
'export' in value &&
|
|
52
|
+
typeof value.module === 'string' &&
|
|
53
|
+
typeof value.export === 'string');
|
|
54
|
+
}
|
|
42
55
|
export class MandibleBuilder {
|
|
43
56
|
_name;
|
|
44
57
|
_env;
|
|
@@ -60,11 +73,31 @@ export class MandibleBuilder {
|
|
|
60
73
|
this._host = host;
|
|
61
74
|
return this;
|
|
62
75
|
}
|
|
63
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Add a colony.
|
|
78
|
+
*
|
|
79
|
+
* Accepts either a configurator closure (for local usage) or a module
|
|
80
|
+
* reference (for cloud deployment where closures can't be serialized).
|
|
81
|
+
*
|
|
82
|
+
* @example Closure (local host):
|
|
83
|
+
* .colony('scout', c => c.sense('task:ready').do('work', handler))
|
|
84
|
+
*
|
|
85
|
+
* @example Module ref (cloud host):
|
|
86
|
+
* .colony('scout', { module: './scout.js', export: 'configureScout', args: [repoRoot] })
|
|
87
|
+
*/
|
|
64
88
|
colony(name, configure) {
|
|
65
|
-
|
|
89
|
+
if (isModuleRef(configure)) {
|
|
90
|
+
this._colonies.push({ name, moduleRef: configure });
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this._colonies.push({ name, configurator: configure });
|
|
94
|
+
}
|
|
66
95
|
return this;
|
|
67
96
|
}
|
|
97
|
+
/** Get the raw colony entries (used by CloudHost for bundling) */
|
|
98
|
+
get colonyEntries() {
|
|
99
|
+
return this._colonies;
|
|
100
|
+
}
|
|
68
101
|
/**
|
|
69
102
|
* Start colonies on the configured host.
|
|
70
103
|
* What "start" means depends on the host:
|
|
@@ -79,7 +112,11 @@ export class MandibleBuilder {
|
|
|
79
112
|
async start() {
|
|
80
113
|
const env = this.requireEnv();
|
|
81
114
|
const host = await this.resolveHost();
|
|
82
|
-
const definitions = this.buildDefinitions(env);
|
|
115
|
+
const definitions = await this.buildDefinitions(env);
|
|
116
|
+
// Pass colony entries to the host if it supports module refs (CloudHost)
|
|
117
|
+
if ('setColonyEntries' in host && typeof host.setColonyEntries === 'function') {
|
|
118
|
+
host.setColonyEntries(this._colonies);
|
|
119
|
+
}
|
|
83
120
|
await host.start(definitions);
|
|
84
121
|
return host;
|
|
85
122
|
}
|
|
@@ -87,18 +124,28 @@ export class MandibleBuilder {
|
|
|
87
124
|
* Build colony definitions without starting anything.
|
|
88
125
|
* Useful for testing or custom orchestration.
|
|
89
126
|
*/
|
|
90
|
-
build(env) {
|
|
127
|
+
async build(env) {
|
|
91
128
|
const targetEnv = env ?? this._env;
|
|
92
129
|
if (!targetEnv) {
|
|
93
130
|
throw new Error(`"${this._name}" requires an environment. Call .environment(env) or pass one to .build(env).`);
|
|
94
131
|
}
|
|
95
132
|
return this.buildDefinitions(targetEnv);
|
|
96
133
|
}
|
|
97
|
-
buildDefinitions(env) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
134
|
+
async buildDefinitions(env) {
|
|
135
|
+
const results = [];
|
|
136
|
+
for (const entry of this._colonies) {
|
|
137
|
+
if (entry.configurator) {
|
|
138
|
+
const builder = entry.configurator(colonyBuilder(entry.name));
|
|
139
|
+
results.push(builder.in(env).build());
|
|
140
|
+
}
|
|
141
|
+
else if (entry.moduleRef) {
|
|
142
|
+
// For module refs, resolve via dynamic import (works for local host)
|
|
143
|
+
const configurator = await resolveModuleRef(entry.moduleRef);
|
|
144
|
+
const builder = configurator(colonyBuilder(entry.name));
|
|
145
|
+
results.push(builder.in(env).build());
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return results;
|
|
102
149
|
}
|
|
103
150
|
async resolveHost() {
|
|
104
151
|
if (this._host)
|
|
@@ -114,6 +161,22 @@ export class MandibleBuilder {
|
|
|
114
161
|
return this._env;
|
|
115
162
|
}
|
|
116
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Resolve a ColonyModuleRef to a live configurator function via dynamic import.
|
|
166
|
+
* Used by LocalHost to run module-ref-based colonies locally.
|
|
167
|
+
*/
|
|
168
|
+
async function resolveModuleRef(ref) {
|
|
169
|
+
const mod = await import(ref.module);
|
|
170
|
+
const fn = mod[ref.export];
|
|
171
|
+
if (typeof fn !== 'function') {
|
|
172
|
+
throw new Error(`Module "${ref.module}" does not export a function named "${ref.export}"`);
|
|
173
|
+
}
|
|
174
|
+
const result = fn(...(ref.args ?? []));
|
|
175
|
+
if (typeof result !== 'function') {
|
|
176
|
+
throw new Error(`"${ref.export}" from "${ref.module}" must return a configurator function (builder => builder), got ${typeof result}`);
|
|
177
|
+
}
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
117
180
|
/**
|
|
118
181
|
* Entry point for the mandible DSL.
|
|
119
182
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandible.js","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,uBAAuB;AACvB,kEAAkE;AAClE,mEAAmE;AACnE,EAAE;AACF,SAAS;AACT,EAAE;AACF,oFAAoF;AACpF,EAAE;AACF,kEAAkE;AAClE,EAAE;AACF,+CAA+C;AAC/C,wBAAwB;AACxB,sEAAsE;AACtE,+BAA+B;AAC/B,kDAAkD;AAClD,qDAAqD;AACrD,wBAAwB;AACxB,QAAQ;AACR,+BAA+B;AAC/B,uDAAuD;AACvD,sDAAsD;AACtD,QAAQ;AACR,gBAAgB;AAChB,EAAE;AACF,kDAAkD;AAClD,gDAAgD;AAChD,EAAE;AACF,0CAA0C;AAC1C,kFAAkF;AAClF,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"mandible.js","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,22 @@ export declare class GitHubEnvironment implements Environment {
|
|
|
9
9
|
private readonly concentrationMapper;
|
|
10
10
|
private readonly dependencyMapper;
|
|
11
11
|
private readonly issueFilter;
|
|
12
|
+
private readonly prTypeMapper;
|
|
13
|
+
private readonly prPayloadMapper;
|
|
14
|
+
private readonly prConcentrationMapper;
|
|
15
|
+
private readonly prFilter;
|
|
16
|
+
private readonly includePRs;
|
|
17
|
+
private readonly includeIssues;
|
|
18
|
+
private readonly fetchReviews;
|
|
19
|
+
private readonly persistentClaims;
|
|
20
|
+
private readonly claimLabelPrefix;
|
|
21
|
+
private readonly fetchReactionsEnabled;
|
|
12
22
|
private readonly decayRate;
|
|
13
23
|
private readonly concentrationFloor;
|
|
14
24
|
private signals;
|
|
15
25
|
private withdrawn;
|
|
26
|
+
private prReviews;
|
|
27
|
+
private reactions;
|
|
16
28
|
private lastSyncAt;
|
|
17
29
|
private lastDecayAt;
|
|
18
30
|
private initialized;
|
|
@@ -20,12 +32,14 @@ export declare class GitHubEnvironment implements Environment {
|
|
|
20
32
|
private signalId;
|
|
21
33
|
private issueNumberFromSignalId;
|
|
22
34
|
private issueToSignal;
|
|
35
|
+
private prToSignal;
|
|
23
36
|
private ensureInit;
|
|
24
37
|
/**
|
|
25
|
-
* Core sync method. Fetches issues from GitHub and updates local cache.
|
|
38
|
+
* Core sync method. Fetches issues and PRs from GitHub and updates local cache.
|
|
26
39
|
* Returns the list of new signal IDs that appeared since last sync.
|
|
27
40
|
*/
|
|
28
41
|
syncFromGitHub(): Promise<string[]>;
|
|
42
|
+
private mergeSignal;
|
|
29
43
|
/**
|
|
30
44
|
* Public method to force a manual refresh. Useful for testing.
|
|
31
45
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/environments/github/adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAC5C,YAAY,EAAE,WAAW,EAC1B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,KAAK,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../../src/environments/github/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
// PURPOSE: GitHub environment adapter — GitHub Issues as a stigmergy substrate
|
|
2
|
-
// PURPOSE: Polling with ETag caching, concentration reinforcement,
|
|
1
|
+
// PURPOSE: GitHub environment adapter — GitHub Issues + PRs as a stigmergy substrate
|
|
2
|
+
// PURPOSE: Polling with ETag caching, concentration reinforcement, label-based claims
|
|
3
3
|
import { matchesQuery, isClaimExpired } from '../../core/signal.js';
|
|
4
4
|
import { validateSignalInput } from '../../core/validation.js';
|
|
5
5
|
import { GitHubClient } from './client.js';
|
|
6
|
-
import { defaultTypeMapper, defaultPayloadMapper, defaultConcentrationMapper, defaultDependencyMapper, computeDependencyBoosts, } from './mapper.js';
|
|
6
|
+
import { defaultTypeMapper, defaultPayloadMapper, defaultConcentrationMapper, defaultDependencyMapper, defaultPRTypeMapper, defaultPRPayloadMapper, defaultPRConcentrationMapper, computeReactionScore, computeDependencyBoosts, } from './mapper.js';
|
|
7
7
|
export class GitHubEnvironment {
|
|
8
8
|
name;
|
|
9
9
|
config;
|
|
@@ -13,11 +13,25 @@ export class GitHubEnvironment {
|
|
|
13
13
|
concentrationMapper;
|
|
14
14
|
dependencyMapper;
|
|
15
15
|
issueFilter;
|
|
16
|
+
prTypeMapper;
|
|
17
|
+
prPayloadMapper;
|
|
18
|
+
prConcentrationMapper;
|
|
19
|
+
prFilter;
|
|
20
|
+
includePRs;
|
|
21
|
+
includeIssues;
|
|
22
|
+
fetchReviews;
|
|
23
|
+
persistentClaims;
|
|
24
|
+
claimLabelPrefix;
|
|
25
|
+
fetchReactionsEnabled;
|
|
16
26
|
decayRate;
|
|
17
27
|
concentrationFloor;
|
|
18
28
|
// In-memory signal cache — GitHub API is source of truth
|
|
19
29
|
signals = new Map();
|
|
20
30
|
withdrawn = new Map();
|
|
31
|
+
// Cache of reviews per PR number
|
|
32
|
+
prReviews = new Map();
|
|
33
|
+
// Cache of reactions per issue/PR number
|
|
34
|
+
reactions = new Map();
|
|
21
35
|
// Tracking for decay
|
|
22
36
|
lastSyncAt = Date.now();
|
|
23
37
|
lastDecayAt = Date.now();
|
|
@@ -31,6 +45,16 @@ export class GitHubEnvironment {
|
|
|
31
45
|
this.concentrationMapper = config.concentrationMapper ?? defaultConcentrationMapper;
|
|
32
46
|
this.dependencyMapper = config.dependencyMapper ?? defaultDependencyMapper;
|
|
33
47
|
this.issueFilter = config.issueFilter;
|
|
48
|
+
this.prTypeMapper = config.prTypeMapper ?? defaultPRTypeMapper;
|
|
49
|
+
this.prPayloadMapper = config.prPayloadMapper ?? defaultPRPayloadMapper;
|
|
50
|
+
this.prConcentrationMapper = config.prConcentrationMapper ?? defaultPRConcentrationMapper;
|
|
51
|
+
this.prFilter = config.prFilter;
|
|
52
|
+
this.includePRs = config.includePRs !== false;
|
|
53
|
+
this.includeIssues = config.includeIssues !== false;
|
|
54
|
+
this.fetchReviews = config.fetchReviews !== false;
|
|
55
|
+
this.persistentClaims = config.persistentClaims ?? false;
|
|
56
|
+
this.claimLabelPrefix = config.claimLabelPrefix ?? 'mandible:claimed';
|
|
57
|
+
this.fetchReactionsEnabled = config.fetchReactions ?? false;
|
|
34
58
|
this.decayRate = config.decayRate ?? 0.001;
|
|
35
59
|
this.concentrationFloor = config.concentrationFloor ?? 0.05;
|
|
36
60
|
}
|
|
@@ -53,6 +77,14 @@ export class GitHubEnvironment {
|
|
|
53
77
|
const payload = this.payloadMapper(issue);
|
|
54
78
|
const concentration = this.concentrationMapper(issue, this.config);
|
|
55
79
|
const tags = issue.labels.map(l => l.name);
|
|
80
|
+
// Restore persistent claim from labels
|
|
81
|
+
let claimed_by;
|
|
82
|
+
if (this.persistentClaims) {
|
|
83
|
+
const claimLabel = issue.labels.find(l => l.name.startsWith(this.claimLabelPrefix + ':'));
|
|
84
|
+
if (claimLabel) {
|
|
85
|
+
claimed_by = claimLabel.name.slice(this.claimLabelPrefix.length + 1);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
56
88
|
const signal = {
|
|
57
89
|
id,
|
|
58
90
|
type,
|
|
@@ -62,6 +94,7 @@ export class GitHubEnvironment {
|
|
|
62
94
|
deposited_by: 'github',
|
|
63
95
|
concentration,
|
|
64
96
|
tags,
|
|
97
|
+
...(claimed_by ? { claimed_by, claimed_at: Date.now() } : {}),
|
|
65
98
|
},
|
|
66
99
|
};
|
|
67
100
|
// Wire dependency edges via pluggable mapper
|
|
@@ -72,6 +105,36 @@ export class GitHubEnvironment {
|
|
|
72
105
|
return signal;
|
|
73
106
|
}
|
|
74
107
|
// ----------------------------------------------------------
|
|
108
|
+
// PR → Signal conversion
|
|
109
|
+
// ----------------------------------------------------------
|
|
110
|
+
prToSignal(pr, reviews) {
|
|
111
|
+
const id = this.signalId(pr.number);
|
|
112
|
+
const type = this.prTypeMapper(pr, reviews);
|
|
113
|
+
const payload = this.prPayloadMapper(pr, reviews);
|
|
114
|
+
const concentration = this.prConcentrationMapper(pr, reviews, this.config);
|
|
115
|
+
const tags = pr.labels.map(l => l.name);
|
|
116
|
+
// Restore persistent claim from labels
|
|
117
|
+
let claimed_by;
|
|
118
|
+
if (this.persistentClaims) {
|
|
119
|
+
const claimLabel = pr.labels.find(l => l.name.startsWith(this.claimLabelPrefix + ':'));
|
|
120
|
+
if (claimLabel) {
|
|
121
|
+
claimed_by = claimLabel.name.slice(this.claimLabelPrefix.length + 1);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return {
|
|
125
|
+
id,
|
|
126
|
+
type,
|
|
127
|
+
payload,
|
|
128
|
+
meta: {
|
|
129
|
+
deposited_at: new Date(pr.created_at).getTime(),
|
|
130
|
+
deposited_by: 'github',
|
|
131
|
+
concentration,
|
|
132
|
+
tags,
|
|
133
|
+
...(claimed_by ? { claimed_by, claimed_at: Date.now() } : {}),
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
// ----------------------------------------------------------
|
|
75
138
|
// Sync from GitHub API
|
|
76
139
|
// ----------------------------------------------------------
|
|
77
140
|
async ensureInit() {
|
|
@@ -81,45 +144,49 @@ export class GitHubEnvironment {
|
|
|
81
144
|
this.initialized = true;
|
|
82
145
|
}
|
|
83
146
|
/**
|
|
84
|
-
* Core sync method. Fetches issues from GitHub and updates local cache.
|
|
147
|
+
* Core sync method. Fetches issues and PRs from GitHub and updates local cache.
|
|
85
148
|
* Returns the list of new signal IDs that appeared since last sync.
|
|
86
149
|
*/
|
|
87
150
|
async syncFromGitHub() {
|
|
88
|
-
const result = await this.client.fetchIssues();
|
|
89
|
-
// 304 Not Modified — no changes since last poll
|
|
90
|
-
if (result.issues === null) {
|
|
91
|
-
this.lastSyncAt = Date.now();
|
|
92
|
-
return [];
|
|
93
|
-
}
|
|
94
151
|
const newSignalIds = [];
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// Preserve claim state from local cache
|
|
109
|
-
freshSignal.meta.concentration = Math.max(existing.meta.concentration, freshSignal.meta.concentration);
|
|
110
|
-
freshSignal.meta.claimed_by = existing.meta.claimed_by;
|
|
111
|
-
freshSignal.meta.claimed_at = existing.meta.claimed_at;
|
|
112
|
-
freshSignal.meta.claim_lease = existing.meta.claim_lease;
|
|
152
|
+
// Sync issues
|
|
153
|
+
if (this.includeIssues) {
|
|
154
|
+
const result = await this.client.fetchIssues();
|
|
155
|
+
if (result.issues !== null) {
|
|
156
|
+
for (const issue of result.issues) {
|
|
157
|
+
// Skip pull requests (GitHub returns PRs in the issues endpoint)
|
|
158
|
+
if (issue.pull_request)
|
|
159
|
+
continue;
|
|
160
|
+
if (this.issueFilter && !this.issueFilter(issue))
|
|
161
|
+
continue;
|
|
162
|
+
const freshSignal = this.issueToSignal(issue);
|
|
163
|
+
this.mergeSignal(freshSignal, newSignalIds);
|
|
164
|
+
}
|
|
113
165
|
}
|
|
114
|
-
|
|
115
|
-
|
|
166
|
+
}
|
|
167
|
+
// Sync pull requests
|
|
168
|
+
if (this.includePRs) {
|
|
169
|
+
const prResult = await this.client.fetchPullRequests();
|
|
170
|
+
if (prResult.prs !== null) {
|
|
171
|
+
for (const pr of prResult.prs) {
|
|
172
|
+
if (this.prFilter && !this.prFilter(pr))
|
|
173
|
+
continue;
|
|
174
|
+
let reviews = [];
|
|
175
|
+
if (this.fetchReviews) {
|
|
176
|
+
try {
|
|
177
|
+
reviews = await this.client.fetchReviews(pr.number);
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// Use empty reviews on failure — signal still gets created
|
|
181
|
+
}
|
|
182
|
+
this.prReviews.set(pr.number, reviews);
|
|
183
|
+
}
|
|
184
|
+
const freshSignal = this.prToSignal(pr, reviews);
|
|
185
|
+
this.mergeSignal(freshSignal, newSignalIds);
|
|
186
|
+
}
|
|
116
187
|
}
|
|
117
|
-
this.signals.set(freshSignal.id, freshSignal);
|
|
118
188
|
}
|
|
119
|
-
//
|
|
120
|
-
// They stop being reinforced and natural decay handles evaporation.
|
|
121
|
-
// This is the stigmergy way: absence of reinforcement = signal fades.
|
|
122
|
-
// Apply dependency-aware concentration adjustments (boosts and penalties)
|
|
189
|
+
// Apply dependency-aware concentration adjustments
|
|
123
190
|
const boosts = computeDependencyBoosts(this.signals, {
|
|
124
191
|
rootBoost: this.config.dependencyBoost?.rootBoost,
|
|
125
192
|
dependentBoost: this.config.dependencyBoost?.dependentBoost,
|
|
@@ -132,9 +199,44 @@ export class GitHubEnvironment {
|
|
|
132
199
|
signal.meta.concentration = Math.max(this.concentrationFloor, Math.min(1.0, signal.meta.concentration + adjustment));
|
|
133
200
|
}
|
|
134
201
|
}
|
|
202
|
+
// Apply reaction-based concentration adjustments
|
|
203
|
+
if (this.fetchReactionsEnabled) {
|
|
204
|
+
for (const [id, signal] of this.signals) {
|
|
205
|
+
const issueNumber = this.issueNumberFromSignalId(id);
|
|
206
|
+
if (issueNumber === null)
|
|
207
|
+
continue;
|
|
208
|
+
try {
|
|
209
|
+
const reactions = await this.client.fetchReactions(issueNumber);
|
|
210
|
+
this.reactions.set(issueNumber, reactions);
|
|
211
|
+
const reactionAdj = computeReactionScore(reactions, this.config.reactionWeights);
|
|
212
|
+
if (Math.abs(reactionAdj) > 0.001) {
|
|
213
|
+
signal.meta.concentration = Math.max(this.concentrationFloor, Math.min(1.0, signal.meta.concentration + reactionAdj));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
// Use cached reactions on failure
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
135
221
|
this.lastSyncAt = Date.now();
|
|
136
222
|
return newSignalIds;
|
|
137
223
|
}
|
|
224
|
+
mergeSignal(freshSignal, newSignalIds) {
|
|
225
|
+
const existing = this.signals.get(freshSignal.id);
|
|
226
|
+
if (existing) {
|
|
227
|
+
freshSignal.meta.concentration = Math.max(existing.meta.concentration, freshSignal.meta.concentration);
|
|
228
|
+
// Preserve in-memory claim state unless using persistent claims
|
|
229
|
+
if (!this.persistentClaims) {
|
|
230
|
+
freshSignal.meta.claimed_by = existing.meta.claimed_by;
|
|
231
|
+
freshSignal.meta.claimed_at = existing.meta.claimed_at;
|
|
232
|
+
freshSignal.meta.claim_lease = existing.meta.claim_lease;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
newSignalIds.push(freshSignal.id);
|
|
237
|
+
}
|
|
238
|
+
this.signals.set(freshSignal.id, freshSignal);
|
|
239
|
+
}
|
|
138
240
|
/**
|
|
139
241
|
* Public method to force a manual refresh. Useful for testing.
|
|
140
242
|
*/
|
|
@@ -200,11 +302,25 @@ export class GitHubEnvironment {
|
|
|
200
302
|
if (!isClaimExpired(signal)) {
|
|
201
303
|
return false; // Already claimed and not expired
|
|
202
304
|
}
|
|
203
|
-
// Expired claim — allow takeover
|
|
305
|
+
// Expired claim — allow takeover. Remove old persistent label if needed.
|
|
306
|
+
if (this.persistentClaims) {
|
|
307
|
+
const issueNumber = this.issueNumberFromSignalId(signalId);
|
|
308
|
+
const oldLabel = `${this.claimLabelPrefix}:${signal.meta.claimed_by}`;
|
|
309
|
+
if (issueNumber !== null) {
|
|
310
|
+
await this.client.removeLabel(issueNumber, oldLabel);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
204
313
|
}
|
|
205
314
|
signal.meta.claimed_by = claimant;
|
|
206
315
|
signal.meta.claimed_at = Date.now();
|
|
207
316
|
signal.meta.claim_lease = leaseDuration;
|
|
317
|
+
// Persist claim as a GitHub label
|
|
318
|
+
if (this.persistentClaims) {
|
|
319
|
+
const issueNumber = this.issueNumberFromSignalId(signalId);
|
|
320
|
+
if (issueNumber !== null) {
|
|
321
|
+
await this.client.addLabel(issueNumber, `${this.claimLabelPrefix}:${claimant}`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
208
324
|
return true;
|
|
209
325
|
}
|
|
210
326
|
async release(signalId) {
|
|
@@ -212,6 +328,13 @@ export class GitHubEnvironment {
|
|
|
212
328
|
const signal = this.signals.get(signalId);
|
|
213
329
|
if (!signal)
|
|
214
330
|
return;
|
|
331
|
+
// Remove persistent claim label
|
|
332
|
+
if (this.persistentClaims && signal.meta.claimed_by) {
|
|
333
|
+
const issueNumber = this.issueNumberFromSignalId(signalId);
|
|
334
|
+
if (issueNumber !== null) {
|
|
335
|
+
await this.client.removeLabel(issueNumber, `${this.claimLabelPrefix}:${signal.meta.claimed_by}`);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
215
338
|
signal.meta.claimed_by = undefined;
|
|
216
339
|
signal.meta.claimed_at = undefined;
|
|
217
340
|
signal.meta.claim_lease = undefined;
|
|
@@ -219,13 +342,23 @@ export class GitHubEnvironment {
|
|
|
219
342
|
watch(query, callback) {
|
|
220
343
|
const seen = new Set();
|
|
221
344
|
let active = true;
|
|
222
|
-
let
|
|
223
|
-
const
|
|
224
|
-
const
|
|
345
|
+
let scheduledTimer;
|
|
346
|
+
const basePollInterval = this.config.pollInterval ?? 30_000;
|
|
347
|
+
const backpressureConfig = this.config.rateLimitBackpressure;
|
|
348
|
+
const warningThreshold = backpressureConfig?.warningThreshold ?? 0.2;
|
|
349
|
+
const criticalThreshold = backpressureConfig?.criticalThreshold ?? 0.05;
|
|
350
|
+
const scheduleNext = () => {
|
|
351
|
+
if (!active)
|
|
352
|
+
return;
|
|
353
|
+
const backoffMs = this.client.getBackoffMs(warningThreshold, criticalThreshold);
|
|
354
|
+
const nextInterval = basePollInterval + backoffMs;
|
|
355
|
+
scheduledTimer = setTimeout(poll, nextInterval);
|
|
356
|
+
};
|
|
357
|
+
const poll = async () => {
|
|
225
358
|
if (!active)
|
|
226
359
|
return;
|
|
227
360
|
try {
|
|
228
|
-
|
|
361
|
+
await this.syncFromGitHub();
|
|
229
362
|
if (!this.initialized)
|
|
230
363
|
this.initialized = true;
|
|
231
364
|
for (const [id, signal] of this.signals) {
|
|
@@ -242,20 +375,18 @@ export class GitHubEnvironment {
|
|
|
242
375
|
catch {
|
|
243
376
|
// Swallow errors during poll — will retry next cycle
|
|
244
377
|
}
|
|
378
|
+
scheduleNext();
|
|
245
379
|
};
|
|
246
|
-
// Initial sync + emit
|
|
380
|
+
// Initial sync + emit, then start polling
|
|
247
381
|
const setup = async () => {
|
|
248
|
-
await
|
|
249
|
-
if (!active)
|
|
250
|
-
return;
|
|
251
|
-
pollTimer = setInterval(emitMatches, pollInterval);
|
|
382
|
+
await poll();
|
|
252
383
|
};
|
|
253
384
|
setup();
|
|
254
385
|
return {
|
|
255
386
|
unsubscribe() {
|
|
256
387
|
active = false;
|
|
257
|
-
if (
|
|
258
|
-
|
|
388
|
+
if (scheduledTimer)
|
|
389
|
+
clearTimeout(scheduledTimer);
|
|
259
390
|
},
|
|
260
391
|
};
|
|
261
392
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/environments/github/adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../../src/environments/github/adapter.ts"],"names":[],"mappings":"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"}
|