typebulb 0.55.5 → 0.56.1
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 +4 -4
- package/SKILL.md +6 -6
- package/dist/agents/claude/client.js +69 -66
- package/dist/agents/codex/client.js +67 -64
- package/dist/agents/pi/client.js +208 -205
- package/dist/index.js +264 -256
- package/dist/render.js +35 -32
- package/dist/resolver/semver.d.ts +2 -0
- package/dist/resolver/semver.d.ts.map +1 -1
- package/dist/resolver/semver.js +5 -1
- package/dist/resolver/semver.js.map +1 -1
- package/dist/resolver/versionResolver.d.ts.map +1 -1
- package/dist/resolver/versionResolver.js +6 -4
- package/dist/resolver/versionResolver.js.map +1 -1
- package/dist/servers.js +67 -64
- package/package.json +1 -1
|
@@ -9,6 +9,8 @@ export declare class SemverService {
|
|
|
9
9
|
}): Version | undefined;
|
|
10
10
|
majorOf(v: Version): number;
|
|
11
11
|
isExactVersion(version: string): boolean;
|
|
12
|
+
/** False for a dist-tag such as `next`, which npm accepts as a spec but no semver check can judge. */
|
|
13
|
+
isRange(range: string): boolean;
|
|
12
14
|
}
|
|
13
15
|
export declare const semverService: SemverService;
|
|
14
16
|
//# sourceMappingURL=semver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../resolver/src/semver.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAI5B,qBAAa,aAAa;IAExB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM;IAKnC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAK7C,iBAAiB,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,GACA,OAAO,GAAG,SAAS;IAuBtB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM;IAI3B,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"semver.d.ts","sourceRoot":"","sources":["../../resolver/src/semver.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAI5B,qBAAa,aAAa;IAExB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,MAAM;IAKnC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO;IAK7C,iBAAiB,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACjC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,OAAO,CAAA;KACvB,GACA,OAAO,GAAG,SAAS;IAuBtB,OAAO,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM;IAI3B,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,sGAAsG;IACtG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGhC;AACD,eAAO,MAAM,aAAa,eAAsB,CAAA"}
|
package/dist/resolver/semver.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { gt, satisfies as satisfiesFn, maxSatisfying, major, valid } from 'semver';
|
|
1
|
+
import { gt, satisfies as satisfiesFn, maxSatisfying, major, valid, validRange } from 'semver';
|
|
2
2
|
export class SemverService {
|
|
3
3
|
cmp(a, b) {
|
|
4
4
|
if (a === b)
|
|
@@ -36,6 +36,10 @@ export class SemverService {
|
|
|
36
36
|
isExactVersion(version) {
|
|
37
37
|
return valid(version) !== null;
|
|
38
38
|
}
|
|
39
|
+
/** False for a dist-tag such as `next`, which npm accepts as a spec but no semver check can judge. */
|
|
40
|
+
isRange(range) {
|
|
41
|
+
return validRange(range) !== null;
|
|
42
|
+
}
|
|
39
43
|
}
|
|
40
44
|
export const semverService = new SemverService();
|
|
41
45
|
//# sourceMappingURL=semver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../resolver/src/semver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,SAAS,IAAI,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"semver.js","sourceRoot":"","sources":["../../resolver/src/semver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,SAAS,IAAI,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAE9F,MAAM,OAAO,aAAa;IAExB,GAAG,CAAC,CAAU,EAAE,CAAU;QACxB,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAA;QACrB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,CAAU;QACjC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAA;QACxC,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,iBAAiB,CACf,QAAmB,EACnB,OAIC;QAED,IAAI,CAAC,QAAQ,EAAE,MAAM;YAAE,OAAO,SAAS,CAAA;QAEvC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAG,CAAA;QAC3C,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,IAAI,CAAA;QAElD,+DAA+D;QAC/D,MAAM,MAAM,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAA;QACxC,IAAI,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;YACzE,OAAO,MAAM,CAAA;QACf,CAAC;QAED,mDAAmD;QACnD,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAkB,CAAA;YAC5F,IAAI,MAAM;gBAAE,OAAO,MAAM,CAAA;QAC3B,CAAC;QAED,oEAAoE;QACpE,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAkB,CAAA;QACxF,OAAO,GAAG,IAAI,SAAS,CAAA;IACzB,CAAC;IAED,OAAO,CAAC,CAAU;QAChB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAED,cAAc,CAAC,OAAe;QAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;IAChC,CAAC;IAED,sGAAsG;IACtG,OAAO,CAAC,KAAa;QACnB,OAAO,UAAU,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;IACnC,CAAC;CACF;AACD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versionResolver.d.ts","sourceRoot":"","sources":["../../resolver/src/versionResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,KAAK;IAAgB,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,MAAM;gBAA3D,KAAK,EAAE,YAAY,EAAU,GAAG,EAAE,SAAS,EAAU,MAAM,EAAE,aAAa;IAE9F;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"versionResolver.d.ts","sourceRoot":"","sources":["../../resolver/src/versionResolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAG3C,MAAM,MAAM,sBAAsB,GAAG;IACnC,gBAAgB,EAAE,MAAM,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,KAAK;IAAgB,OAAO,CAAC,GAAG;IAAa,OAAO,CAAC,MAAM;gBAA3D,KAAK,EAAE,YAAY,EAAU,GAAG,EAAE,SAAS,EAAU,MAAM,EAAE,aAAa;IAE9F;;;OAGG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS5D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IA4ChD,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;;;;;;CAc1D"}
|
|
@@ -22,15 +22,17 @@ export class VersionResolver {
|
|
|
22
22
|
async resolveExactForRoot(root, range) {
|
|
23
23
|
if (!range)
|
|
24
24
|
return this.learnExactVersion(root);
|
|
25
|
+
// A dist-tag "range" (`next`) has nothing to check; only a real semver range constrains the pin.
|
|
26
|
+
const inRange = (v) => !this.semver.isRange(range) || this.semver.satisfies(range, v);
|
|
25
27
|
const pinned = await this.cache.getPinnedExact(root, range);
|
|
26
28
|
if (pinned) {
|
|
27
|
-
if (this.semver.isExactVersion(pinned))
|
|
29
|
+
if (this.semver.isExactVersion(pinned) && inRange(pinned))
|
|
28
30
|
return pinned;
|
|
29
|
-
// Routine, not an error: a
|
|
30
|
-
console.debug('[typebulb] cached version for', root, 'is not exact (', pinned, '); re-resolving from registry');
|
|
31
|
+
// Routine, not an error: a pin that isn't exact or falls outside the range just gets re-resolved below.
|
|
32
|
+
console.debug('[typebulb] cached version for', root, 'is not exact or not in', range, '(', pinned, '); re-resolving from registry');
|
|
31
33
|
}
|
|
32
34
|
const pinIfExact = async (v) => {
|
|
33
|
-
if (v && this.semver.isExactVersion(v)) {
|
|
35
|
+
if (v && this.semver.isExactVersion(v) && inRange(v)) {
|
|
34
36
|
await this.cache.setPinnedExact(root, range, v);
|
|
35
37
|
return v;
|
|
36
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versionResolver.js","sourceRoot":"","sources":["../../resolver/src/versionResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAStC,MAAM,OAAO,eAAe;IAC1B,YAAoB,KAAmB,EAAU,GAAc,EAAU,MAAqB;QAA1E,UAAK,GAAL,KAAK,CAAc;QAAU,QAAG,GAAH,GAAG,CAAW;QAAU,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAElG;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,IAAY;QAClC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAA;QAClE,IAAI,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;YACvF,IAAI,OAAO;gBAAE,OAAO,OAAO,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY,EAAE,KAAc;QACpD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC3D,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC;gBAAE,OAAO,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"versionResolver.js","sourceRoot":"","sources":["../../resolver/src/versionResolver.ts"],"names":[],"mappings":"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"}
|