instar 1.3.435 → 1.3.437
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/dashboard/index.html +2 -0
- package/dashboard/subscriptions.js +18 -8
- package/dist/commands/init.d.ts +17 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +50 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +6 -1
- package/dist/commands/server.js.map +1 -1
- package/dist/core/InUseAccountResolver.d.ts +77 -0
- package/dist/core/InUseAccountResolver.d.ts.map +1 -0
- package/dist/core/InUseAccountResolver.js +123 -0
- package/dist/core/InUseAccountResolver.js.map +1 -0
- package/dist/server/AgentServer.d.ts +1 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +1 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +4 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +20 -0
- package/dist/server/routes.js.map +1 -1
- package/package.json +2 -1
- package/skills/README.md +106 -0
- package/skills/agent-identity/SKILL.md +226 -0
- package/skills/agent-memory/SKILL.md +261 -0
- package/skills/agent-passport/SKILL.md +37 -0
- package/skills/agent-readiness/SKILL.md +55 -0
- package/skills/command-guard/SKILL.md +239 -0
- package/skills/credential-leak-detector/SKILL.md +377 -0
- package/skills/instar-dev/SKILL.md +223 -0
- package/skills/instar-dev/scripts/verify-proposal-derived-runbook.mjs +319 -0
- package/skills/instar-dev/scripts/write-trace.mjs +203 -0
- package/skills/instar-dev/templates/eli16-overview.md +43 -0
- package/skills/instar-dev/templates/side-effects-artifact.md +133 -0
- package/skills/instar-feedback/SKILL.md +285 -0
- package/skills/instar-identity/SKILL.md +290 -0
- package/skills/instar-scheduler/SKILL.md +259 -0
- package/skills/instar-session/SKILL.md +270 -0
- package/skills/instar-telegram/SKILL.md +259 -0
- package/skills/iterative-converging-audit/SKILL.md +96 -0
- package/skills/knowledge-base/SKILL.md +189 -0
- package/skills/smart-web-fetch/SKILL.md +241 -0
- package/skills/spec-converge/SKILL.md +249 -0
- package/skills/spec-converge/scripts/cross-model-review.mjs +155 -0
- package/skills/spec-converge/scripts/publish-spec-review.mjs +166 -0
- package/skills/spec-converge/scripts/write-convergence-tag.mjs +199 -0
- package/skills/spec-converge/templates/report.md +76 -0
- package/skills/spec-converge/templates/reviewer-adversarial.md +37 -0
- package/skills/spec-converge/templates/reviewer-cross-model.md +28 -0
- package/skills/spec-converge/templates/reviewer-integration.md +39 -0
- package/skills/spec-converge/templates/reviewer-lessons-aware.md +101 -0
- package/skills/spec-converge/templates/reviewer-scalability.md +35 -0
- package/skills/spec-converge/templates/reviewer-security.md +36 -0
- package/skills/systematic-debugging/SKILL.md +222 -0
- package/src/data/builtin-manifest.json +47 -47
- package/upgrades/1.3.436.md +19 -0
- package/upgrades/1.3.437.md +29 -0
- package/upgrades/side-effects/builtin-skill-install-single-source.md +80 -0
- package/upgrades/side-effects/subscription-inuse-account.md +26 -0
package/dashboard/index.html
CHANGED
|
@@ -3288,6 +3288,8 @@
|
|
|
3288
3288
|
<!-- subscriptions tab (Subscription & Auth Standard P2.2 — live quota + pending logins) -->
|
|
3289
3289
|
<style>
|
|
3290
3290
|
.sub-account { border:1px solid var(--border,#2a2a2a); border-radius:10px; padding:14px 16px; margin-bottom:12px; }
|
|
3291
|
+
.sub-account-inuse { border-color:#16a34a; box-shadow:0 0 0 1px #16a34a44; }
|
|
3292
|
+
.sub-account-inuse-badge { font-size:11px; font-weight:600; color:#22c55e; margin-right:auto; }
|
|
3291
3293
|
.sub-account-head { display:flex; justify-content:space-between; align-items:baseline; gap:12px; }
|
|
3292
3294
|
.sub-account-nick { font-weight:600; font-size:15px; }
|
|
3293
3295
|
.sub-account-status { font-size:12px; opacity:.75; }
|
|
@@ -130,8 +130,11 @@ export function quotaBar(doc, label, pct, resetIso, now = Date.now()) {
|
|
|
130
130
|
return wrap;
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
-
/** Per-account rows: nickname, status, provider·framework, 5h + weekly quota bars.
|
|
134
|
-
|
|
133
|
+
/** Per-account rows: nickname, status, provider·framework, 5h + weekly quota bars.
|
|
134
|
+
* `inUseAccountId` (optional) is the account the agent is CURRENTLY running on —
|
|
135
|
+
* that card gets an "In use" marker so "active" (healthy) reads distinct from
|
|
136
|
+
* "actually running right now". */
|
|
137
|
+
export function renderAccounts(doc, target, accounts, now = Date.now(), inUseAccountId = null) {
|
|
135
138
|
if (!target) return;
|
|
136
139
|
target.replaceChildren();
|
|
137
140
|
if (!Array.isArray(accounts) || accounts.length === 0) {
|
|
@@ -139,9 +142,11 @@ export function renderAccounts(doc, target, accounts, now = Date.now()) {
|
|
|
139
142
|
return;
|
|
140
143
|
}
|
|
141
144
|
for (const a of accounts) {
|
|
142
|
-
const
|
|
145
|
+
const inUse = !!(inUseAccountId && a && a.id === inUseAccountId);
|
|
146
|
+
const card = el(doc, 'div', inUse ? 'sub-account sub-account-inuse' : 'sub-account');
|
|
143
147
|
const head = el(doc, 'div', 'sub-account-head');
|
|
144
148
|
head.appendChild(el(doc, 'span', 'sub-account-nick', sanitizeForDisplay(a && a.nickname, 'label')));
|
|
149
|
+
if (inUse) head.appendChild(el(doc, 'span', 'sub-account-inuse-badge', '● In use now'));
|
|
145
150
|
head.appendChild(el(doc, 'span', 'sub-account-status', friendlyStatus(a && a.status)));
|
|
146
151
|
card.appendChild(head);
|
|
147
152
|
card.appendChild(el(doc, 'div', 'sub-account-meta',
|
|
@@ -213,6 +218,7 @@ export function renderDisabled(doc, els) {
|
|
|
213
218
|
const URLS = {
|
|
214
219
|
accounts: '/subscription-pool',
|
|
215
220
|
pending: '/subscription-pool/pending-logins',
|
|
221
|
+
inUse: '/subscription-pool/in-use',
|
|
216
222
|
};
|
|
217
223
|
|
|
218
224
|
export function createController(opts) {
|
|
@@ -239,11 +245,14 @@ export function createController(opts) {
|
|
|
239
245
|
if (state.inFlight) { try { state.inFlight.abort(); } catch { /* superseded */ } }
|
|
240
246
|
const controller = typeof AbortController !== 'undefined' ? new AbortController() : { signal: undefined, abort() {} };
|
|
241
247
|
state.inFlight = controller;
|
|
242
|
-
let accountsBody, pendingBody;
|
|
248
|
+
let accountsBody, pendingBody, inUseBody;
|
|
243
249
|
try {
|
|
244
|
-
|
|
250
|
+
// in-use is best-effort — its failure must not blank the accounts list, so
|
|
251
|
+
// it's caught independently and degrades to "unknown" (no badge).
|
|
252
|
+
[accountsBody, pendingBody, inUseBody] = await Promise.all([
|
|
245
253
|
fetchJson(URLS.accounts, controller),
|
|
246
254
|
fetchJson(URLS.pending, controller),
|
|
255
|
+
fetchJson(URLS.inUse, controller).catch(() => null),
|
|
247
256
|
]);
|
|
248
257
|
} catch {
|
|
249
258
|
if (controller.signal && controller.signal.aborted) return;
|
|
@@ -259,14 +268,15 @@ export function createController(opts) {
|
|
|
259
268
|
reschedule();
|
|
260
269
|
return;
|
|
261
270
|
}
|
|
262
|
-
render(accountsBody, pendingBody);
|
|
271
|
+
render(accountsBody, pendingBody, inUseBody);
|
|
263
272
|
reschedule();
|
|
264
273
|
}
|
|
265
274
|
|
|
266
|
-
function render(accountsBody, pendingBody) {
|
|
275
|
+
function render(accountsBody, pendingBody, inUseBody) {
|
|
267
276
|
const accounts = accountsBody && Array.isArray(accountsBody.accounts) ? accountsBody.accounts : [];
|
|
268
277
|
const logins = pendingBody && Array.isArray(pendingBody.logins) ? pendingBody.logins : [];
|
|
269
|
-
|
|
278
|
+
const inUseAccountId = inUseBody && inUseBody.activeAccountId ? inUseBody.activeAccountId : null;
|
|
279
|
+
renderAccounts(doc, els.accounts, accounts, now(), inUseAccountId);
|
|
270
280
|
renderPendingLogins(doc, els.pending, logins, now());
|
|
271
281
|
}
|
|
272
282
|
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -74,6 +74,23 @@ export declare function initProject(options: InitOptions): Promise<void>;
|
|
|
74
74
|
* Only writes skill files that don't already exist (preserves customizations).
|
|
75
75
|
*/
|
|
76
76
|
export declare function installBuiltinSkills(skillsDir: string, port: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Canonical bundled developer-skill toolkit — the authored allowlist (single
|
|
79
|
+
* source of truth) of skills Instar uses to develop itself, installed to every
|
|
80
|
+
* agent. The skill files live as tracked dirs under the repo's `skills/<slug>/`
|
|
81
|
+
* (the one source, also referenced by SourceTreeGuard / crossModelReviewer /
|
|
82
|
+
* PostUpdateMigrator); they ship via the `skills` entry in package.json files[].
|
|
83
|
+
* Excludes document-only skills superseded by built-in infra (instar-telegram →
|
|
84
|
+
* telegram-reply.sh, command-guard → dangerous-command-guard.sh hook, etc.).
|
|
85
|
+
*/
|
|
86
|
+
export declare const BUNDLED_DEV_SKILLS: readonly ["spec-converge", "instar-dev", "systematic-debugging", "smart-web-fetch", "knowledge-base", "instar-scheduler", "agent-memory", "agent-identity", "instar-identity", "credential-leak-detector"];
|
|
87
|
+
/**
|
|
88
|
+
* Install the bundled dev-skill toolkit by copying each allowlisted skill's
|
|
89
|
+
* directory from the packaged `skills/<slug>/` source into the agent's
|
|
90
|
+
* `.claude/skills/<slug>/`. Install-if-missing (preserves user customizations);
|
|
91
|
+
* recursive so scripts/ and templates/ subdirs come along.
|
|
92
|
+
*/
|
|
93
|
+
export declare function installBundledDevSkills(skillsDir: string): void;
|
|
77
94
|
export declare function getDefaultJobs(port: number): object[];
|
|
78
95
|
/**
|
|
79
96
|
* Refresh hooks, Claude settings, and CLAUDE.md for an existing installation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAyDH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yFAAyF;IACzF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GACjF,aAAa,CAAC,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC,CAatE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAIjG,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAEvG;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE;AAw4CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAyDH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yFAAyF;IACzF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC5E;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GACjF,aAAa,CAAC,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC,CAatE;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,EAAE,aAAa,CAAC,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAIjG,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAEvG;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE;AAw4CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAg1C1E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,4MAWrB,CAAC;AAEX;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAa/D;AA8ID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAkhBrD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAqElF"}
|
package/dist/commands/init.js
CHANGED
|
@@ -2817,6 +2817,56 @@ Cherry-picked from the GSD verifier role. The insight: task completion is not go
|
|
|
2817
2817
|
installTestAsSelfSkill(skillsDir);
|
|
2818
2818
|
// Install autonomous skill with hooks and scripts (special case — needs full directory structure)
|
|
2819
2819
|
installAutonomousSkill(skillsDir);
|
|
2820
|
+
// Install the bundled developer-skill toolkit (spec-converge, instar-dev, …) —
|
|
2821
|
+
// the tools Instar uses to develop itself, so EVERY agent has the complete
|
|
2822
|
+
// capability to develop Instar (Agent Awareness + Framework-Agnostic
|
|
2823
|
+
// "one shared source of truth"). Single source: the repo's skills/<slug>/ dirs
|
|
2824
|
+
// (referenced by SourceTreeGuard / crossModelReviewer), shipped via
|
|
2825
|
+
// package.json files[] and installed here by copy, install-if-missing.
|
|
2826
|
+
installBundledDevSkills(skillsDir);
|
|
2827
|
+
}
|
|
2828
|
+
/**
|
|
2829
|
+
* Canonical bundled developer-skill toolkit — the authored allowlist (single
|
|
2830
|
+
* source of truth) of skills Instar uses to develop itself, installed to every
|
|
2831
|
+
* agent. The skill files live as tracked dirs under the repo's `skills/<slug>/`
|
|
2832
|
+
* (the one source, also referenced by SourceTreeGuard / crossModelReviewer /
|
|
2833
|
+
* PostUpdateMigrator); they ship via the `skills` entry in package.json files[].
|
|
2834
|
+
* Excludes document-only skills superseded by built-in infra (instar-telegram →
|
|
2835
|
+
* telegram-reply.sh, command-guard → dangerous-command-guard.sh hook, etc.).
|
|
2836
|
+
*/
|
|
2837
|
+
export const BUNDLED_DEV_SKILLS = [
|
|
2838
|
+
'spec-converge',
|
|
2839
|
+
'instar-dev',
|
|
2840
|
+
'systematic-debugging',
|
|
2841
|
+
'smart-web-fetch',
|
|
2842
|
+
'knowledge-base',
|
|
2843
|
+
'instar-scheduler',
|
|
2844
|
+
'agent-memory',
|
|
2845
|
+
'agent-identity',
|
|
2846
|
+
'instar-identity',
|
|
2847
|
+
'credential-leak-detector',
|
|
2848
|
+
];
|
|
2849
|
+
/**
|
|
2850
|
+
* Install the bundled dev-skill toolkit by copying each allowlisted skill's
|
|
2851
|
+
* directory from the packaged `skills/<slug>/` source into the agent's
|
|
2852
|
+
* `.claude/skills/<slug>/`. Install-if-missing (preserves user customizations);
|
|
2853
|
+
* recursive so scripts/ and templates/ subdirs come along.
|
|
2854
|
+
*/
|
|
2855
|
+
export function installBundledDevSkills(skillsDir) {
|
|
2856
|
+
const modDir = __dirname;
|
|
2857
|
+
// Package layout: dist/commands/init.js → ../../skills/<slug>
|
|
2858
|
+
const bundledRoot = path.join(modDir, '..', '..', 'skills');
|
|
2859
|
+
for (const slug of BUNDLED_DEV_SKILLS) {
|
|
2860
|
+
const targetDir = path.join(skillsDir, slug);
|
|
2861
|
+
const targetSkill = path.join(targetDir, 'SKILL.md');
|
|
2862
|
+
// Install-if-missing — check both casings (matches installBuildSkill).
|
|
2863
|
+
if (fs.existsSync(targetSkill) || fs.existsSync(path.join(targetDir, 'skill.md')))
|
|
2864
|
+
continue;
|
|
2865
|
+
const bundledDir = path.join(bundledRoot, slug);
|
|
2866
|
+
if (!fs.existsSync(path.join(bundledDir, 'SKILL.md')))
|
|
2867
|
+
continue; // not packaged — defensive skip
|
|
2868
|
+
fs.cpSync(bundledDir, targetDir, { recursive: true });
|
|
2869
|
+
}
|
|
2820
2870
|
}
|
|
2821
2871
|
/**
|
|
2822
2872
|
* Install the /build skill with its stop hook and state manager.
|