@namewta/speculo 2.0.6 → 2.1.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 +3 -0
- package/THIRD-PARTY-NOTICES.md +4 -0
- package/dist/src/agent-skills.d.ts +5 -0
- package/dist/src/agent-skills.js +10 -7
- package/dist/src/agent-skills.js.map +1 -1
- package/dist/src/cli.js +25 -36
- package/dist/src/cli.js.map +1 -1
- package/dist/src/coordination.d.ts +3 -3
- package/dist/src/coordination.js +21 -4
- package/dist/src/coordination.js.map +1 -1
- package/dist/src/doctor.js +8 -1
- package/dist/src/doctor.js.map +1 -1
- package/dist/src/external-files.d.ts +4 -2
- package/dist/src/external-files.js +4 -4
- package/dist/src/external-files.js.map +1 -1
- package/dist/src/hub-catalog.d.ts +11 -0
- package/dist/src/hub-catalog.js +91 -0
- package/dist/src/hub-catalog.js.map +1 -0
- package/dist/src/hub-resources.json +1 -0
- package/dist/src/hub-skills.d.ts +53 -0
- package/dist/src/hub-skills.js +157 -0
- package/dist/src/hub-skills.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +48 -47
- package/dist/src/index.js.map +1 -1
- package/dist/src/install-ui.d.ts +16 -7
- package/dist/src/install-ui.js +143 -92
- package/dist/src/install-ui.js.map +1 -1
- package/dist/src/manifest.d.ts +2 -0
- package/dist/src/manifest.js +2 -0
- package/dist/src/manifest.js.map +1 -1
- package/dist/src/refresh.d.ts +1 -0
- package/dist/src/refresh.js +13 -10
- package/dist/src/refresh.js.map +1 -1
- package/dist/src/retained-workflows.d.ts +10 -0
- package/dist/src/retained-workflows.js +25 -0
- package/dist/src/retained-workflows.js.map +1 -0
- package/dist/src/runtime-entry.d.ts +1 -0
- package/dist/src/runtime-entry.js +1 -0
- package/dist/src/runtime-entry.js.map +1 -1
- package/dist/src/skill-trees.d.ts +27 -0
- package/dist/src/skill-trees.js +118 -0
- package/dist/src/skill-trees.js.map +1 -0
- package/dist/src/terminal-ui.d.ts +30 -0
- package/dist/src/terminal-ui.js +148 -0
- package/dist/src/terminal-ui.js.map +1 -0
- package/dist/src/transaction.d.ts +3 -14
- package/dist/src/transaction.js +20 -36
- package/dist/src/transaction.js.map +1 -1
- package/dist/src/workflow-install.d.ts +15 -0
- package/dist/src/workflow-install.js +104 -0
- package/dist/src/workflow-install.js.map +1 -0
- package/dist/src/workflows.js +1 -1
- package/dist/src/workflows.js.map +1 -1
- package/package.json +6 -2
- package/skills-hub/automation/grok-bot-team-steward/CHEATSHEET.md +17 -0
- package/skills-hub/automation/grok-bot-team-steward/INSTALL.md +23 -0
- package/skills-hub/automation/grok-bot-team-steward/LICENSE +21 -0
- package/skills-hub/automation/grok-bot-team-steward/README.md +9 -0
- package/skills-hub/automation/grok-bot-team-steward/SKILL.md +52 -0
- package/skills-hub/automation/grok-bot-team-steward/agents/openai.yaml +4 -0
- package/skills-hub/automation/grok-bot-team-steward/references/00-hard-rules.md +50 -0
- package/skills-hub/automation/grok-bot-team-steward/references/01-snapshot-schema.md +84 -0
- package/skills-hub/automation/grok-bot-team-steward/references/02-export-protocol.md +57 -0
- package/skills-hub/automation/grok-bot-team-steward/references/03-restore-protocol.md +64 -0
- package/skills-hub/automation/grok-bot-team-steward/references/04-inventory.md +37 -0
- package/skills-hub/automation/grok-bot-team-steward/references/05-conversations.md +71 -0
- package/skills-hub/automation/grok-bot-team-steward/references/06-sanitizer.md +39 -0
- package/skills-hub/automation/grok-bot-team-steward/references/07-prompts.md +87 -0
- package/skills-hub/automation/grok-bot-team-steward/references/08-verification.md +30 -0
- package/skills-hub/automation/grok-bot-team-steward/references/09-sources.md +31 -0
- package/skills-hub/automation/grok-bot-team-steward/scripts/scrub.sh +17 -0
- package/skills-hub/automation/grok-bot-team-steward/scripts/snapshot-name.sh +18 -0
- package/skills-hub/automation/grok-bot-team-steward/scripts/validate-snapshot.sh +62 -0
- package/skills-hub/automation/grok-bot-team-steward/steward/ACTIVATE.md +58 -0
- package/skills-hub/automation/grok-bot-team-steward/steward/SETUP-INSTRUCTIONS.md +33 -0
- package/skills-hub/automation/grok-bot-team-steward/steward/STEWARD-PROFILE.md +28 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/CHANGELOG.md +3 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/CHARTER.md +27 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/DROP-LIST.md +10 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/GAPS.md +6 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/INIT.md +14 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/MANIFEST.md +30 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/MANIFEST.yaml +20 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/ORG.md +15 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/README.md +8 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/RESTORE.md +13 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/ROSTER.md +11 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/GAPS.md +7 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/MEMORY.md +9 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/PROFILE.md +27 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/agent-spec.md +9 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/conversations/INDEX.md +5 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/conversations/main.md +9 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/routines.md +5 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/bots/_SLUG/skills.md +5 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/connectors.md +7 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/COMPLETED.md +6 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/CREATED.md +6 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/RESTORE-NOTES.md +13 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/SANITIZER.md +7 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/meta/SOURCE.md +8 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/rooms/_ROOM.md +8 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/routines/_ROUTINE.md +12 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/shared/shared-memory.md +5 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/shared/workspace-map.md +5 -0
- package/skills-hub/automation/grok-bot-team-steward/templates/snapshot/skills/_SKILL/SKILL.md +18 -0
- package/skills-hub/automation/herdr/SKILL.md +246 -0
- package/skills-hub/automation/orca/SKILL.md +328 -0
- package/skills-hub/coding/gitea-repo/LICENSE +21 -0
- package/skills-hub/coding/gitea-repo/SKILL.md +50 -0
- package/skills-hub/coding/gitea-repo/agents/openai.yaml +4 -0
- package/skills-hub/coding/gitea-repo/references/auth-and-scopes.md +58 -0
- package/skills-hub/coding/gitea-repo/references/endpoint-map.md +80 -0
- package/skills-hub/coding/gitea-repo/references/pagination-and-errors.md +34 -0
- package/skills-hub/coding/gitea-repo/scripts/gitea_api.py +814 -0
- package/skills-hub/coding/github-repo-steward/LICENSE +21 -0
- package/skills-hub/coding/github-repo-steward/SKILL.md +48 -0
- package/skills-hub/coding/github-repo-steward/agents/openai.yaml +4 -0
- package/skills-hub/coding/github-repo-steward/references/00-auth-and-tokens.md +73 -0
- package/skills-hub/coding/github-repo-steward/references/01-inventory.md +55 -0
- package/skills-hub/coding/github-repo-steward/references/02-lifecycle.md +57 -0
- package/skills-hub/coding/github-repo-steward/references/03-stars.md +42 -0
- package/skills-hub/coding/github-repo-steward/references/04-hygiene.md +40 -0
- package/skills-hub/coding/github-repo-steward/references/05-sources.md +42 -0
- package/skills-hub/coding/github-repo-steward/scripts/inventory.sh +64 -0
- package/skills-hub/coding/vscode-fullstack/LICENSE +21 -0
- package/skills-hub/coding/vscode-fullstack/SKILL.md +47 -0
- package/skills-hub/coding/vscode-fullstack/agents/openai.yaml +4 -0
- package/skills-hub/coding/vscode-fullstack/references/extensions-and-settings.md +181 -0
- package/skills-hub/coding/vscode-fullstack/references/profiles-and-validation.md +62 -0
- package/skills-hub/coding/vscode-fullstack/references/runtime-reuse.md +52 -0
- package/skills-hub/design/photo-retouch/LICENSE +21 -0
- package/skills-hub/design/photo-retouch/SKILL.md +50 -0
- package/skills-hub/design/photo-retouch/agents/openai.yaml +4 -0
- package/skills-hub/design/photo-retouch/references/basic-retouch.md +58 -0
- package/skills-hub/design/photo-retouch/references/formal-portrait.md +57 -0
- package/skills-hub/design/photo-retouch/references/object-and-canvas.md +82 -0
- package/skills-hub/design/photo-retouch/references/product-photo.md +41 -0
- package/skills-hub/design/photo-retouch/references/repair-and-look.md +61 -0
- package/skills-hub/design/photo-retouch/references/social-effects.md +55 -0
- package/skills-hub/design/photo-retouch/references/travel-creative.md +79 -0
- package/skills-hub/system/clash-client-profile/LICENSE +21 -0
- package/skills-hub/system/clash-client-profile/SKILL.md +79 -0
- package/skills-hub/system/clash-client-profile/agents/openai.yaml +4 -0
- package/skills-hub/system/clash-client-profile/references/acceptance.md +81 -0
- package/skills-hub/system/clash-client-profile/references/browser-privacy.md +35 -0
- package/skills-hub/system/clash-client-profile/references/clash-verge.md +40 -0
- package/skills-hub/system/clash-client-profile/references/dns-workflow.md +147 -0
- package/skills-hub/system/clash-client-profile/references/flclash.md +24 -0
- package/skills-hub/system/clash-client-profile/references/network-performance.md +25 -0
- package/skills-hub/system/clash-client-profile/references/platform-dns.md +109 -0
- package/skills-hub/system/clash-client-profile/references/sources.md +46 -0
- package/skills-hub/system/clash-client-profile/references/troubleshooting.md +82 -0
- package/skills-hub/system/clash-client-profile/scripts/dns_guard.py +650 -0
- package/skills-hub/system/clash-client-profile/scripts/proxy_doctor.py +213 -0
- package/skills-hub/system/clash-client-profile/scripts/render_rules.py +34 -0
- package/skills-hub/system/clash-client-profile/templates/ai-rules.yaml +18 -0
- package/skills-hub/system/clash-client-profile/templates/dns-request.example.json +9 -0
- package/skills-hub/system/clash-client-profile/templates/dns.yaml +8 -0
- package/skills-hub/system/linux-dev-disk-cleanup/LICENSE +21 -0
- package/skills-hub/system/linux-dev-disk-cleanup/SKILL.md +42 -0
- package/skills-hub/system/linux-dev-disk-cleanup/agents/openai.yaml +4 -0
- package/skills-hub/system/linux-dev-disk-cleanup/references/linux-cleanup-workflow.md +145 -0
- package/skills-hub/system/optimize-codex-config/LICENSE +21 -0
- package/skills-hub/system/optimize-codex-config/SKILL.md +101 -0
- package/skills-hub/system/optimize-codex-config/agents/openai.yaml +4 -0
- package/skills-hub/system/optimize-codex-config/assets/capabilities.example.json +22 -0
- package/skills-hub/system/optimize-codex-config/references/cli.md +35 -0
- package/skills-hub/system/optimize-codex-config/references/configuration-contract.md +33 -0
- package/skills-hub/system/optimize-codex-config/references/optimization-method.md +38 -0
- package/skills-hub/system/optimize-codex-config/references/privacy.md +41 -0
- package/skills-hub/system/optimize-codex-config/references/sources.md +24 -0
- package/skills-hub/system/optimize-codex-config/references/statusline.md +31 -0
- package/skills-hub/system/optimize-codex-config/references/transactions.md +32 -0
- package/skills-hub/system/optimize-codex-config/references/troubleshooting.md +95 -0
- package/skills-hub/system/optimize-codex-config/scripts/adapters/claude.mjs +24 -0
- package/skills-hub/system/optimize-codex-config/scripts/adapters/codex.mjs +10 -0
- package/skills-hub/system/optimize-codex-config/scripts/ai-cli-config.mjs +67 -0
- package/skills-hub/system/optimize-codex-config/scripts/audit-codex-config.mjs +762 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/document.mjs +166 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/inspect.mjs +211 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/io.mjs +104 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/plan.mjs +79 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/transaction.mjs +205 -0
- package/skills-hub/system/optimize-codex-config/scripts/lib/writers.mjs +46 -0
- package/skills-hub/system/optimize-codex-config/scripts/statusline/claude-statusline.mjs +94 -0
- package/skills-hub/system/optimize-codex-config/scripts/vendor/THIRD-PARTY-NOTICES.txt +250 -0
- package/skills-hub/system/optimize-codex-config/scripts/vendor/build-package-lock.json +488 -0
- package/skills-hub/system/optimize-codex-config/scripts/vendor/manifest.json +14 -0
- package/skills-hub/system/optimize-codex-config/scripts/vendor/parsers.mjs +16 -0
- package/skills-hub/system/proxy-region-locale/LICENSE +21 -0
- package/skills-hub/system/proxy-region-locale/SKILL.md +42 -0
- package/skills-hub/system/proxy-region-locale/agents/openai.yaml +4 -0
- package/skills-hub/system/proxy-region-locale/references/linux.md +35 -0
- package/skills-hub/system/proxy-region-locale/references/macos.md +31 -0
- package/skills-hub/system/proxy-region-locale/references/windows.md +45 -0
- package/skills-hub/system/system-health-audit/LICENSE +21 -0
- package/skills-hub/system/system-health-audit/SKILL.md +41 -0
- package/skills-hub/system/system-health-audit/agents/openai.yaml +4 -0
- package/skills-hub/system/system-health-audit/references/platforms.md +37 -0
- package/skills-hub/system/system-health-audit/scripts/system_audit.py +41 -0
- package/skills-hub/system/windows-dev-disk-cleanup/LICENSE +21 -0
- package/skills-hub/system/windows-dev-disk-cleanup/SKILL.md +40 -0
- package/skills-hub/system/windows-dev-disk-cleanup/agents/openai.yaml +4 -0
- package/skills-hub/system/windows-dev-disk-cleanup/references/windows-cleanup-workflow.md +121 -0
- package/skills-hub/writing/.gitkeep +0 -0
- package/skills-hub/writing/job-application/LICENSE +21 -0
- package/skills-hub/writing/job-application/SKILL.md +160 -0
- package/skills-hub/writing/job-application/agents/openai.yaml +4 -0
- package/skills-hub/writing/job-application/assets/resume.css +10 -0
- package/skills-hub/writing/job-application/config.example.json +9 -0
- package/skills-hub/writing/job-application/references/company-research.md +7 -0
- package/skills-hub/writing/job-application/references/corpus-schema.md +33 -0
- package/skills-hub/writing/job-application/references/honesty-gate.md +29 -0
- package/skills-hub/writing/job-application/references/improvement-plan.md +15 -0
- package/skills-hub/writing/job-application/references/ingest-protocol.md +18 -0
- package/skills-hub/writing/job-application/references/interview-speech.md +16 -0
- package/skills-hub/writing/job-application/references/jd-parse.md +18 -0
- package/skills-hub/writing/job-application/references/persist-paths.md +34 -0
- package/skills-hub/writing/job-application/references/question-bank.md +19 -0
- package/skills-hub/writing/job-application/references/rendering.md +9 -0
- package/skills-hub/writing/job-application/references/resume-playbook.md +30 -0
- package/skills-hub/writing/job-application/scripts/README.md +12 -0
- package/skills-hub/writing/job-application/scripts/ingest_kb.py +188 -0
- package/skills-hub/writing/job-application/scripts/render_resume.py +144 -0
- package/skills-hub/writing/job-application/scripts/validate_claims.py +52 -0
- package/skills-hub/writing/job-application/scripts/write_config.py +72 -0
- package/skills-hub/writing/job-application/templates/application-index.md +10 -0
- package/skills-hub/writing/job-application/templates/brief.md +16 -0
- package/skills-hub/writing/job-application/templates/changelog.md +6 -0
- package/skills-hub/writing/job-application/templates/company-research.md +15 -0
- package/skills-hub/writing/job-application/templates/corpus.md +11 -0
- package/skills-hub/writing/job-application/templates/evidence-map.md +5 -0
- package/skills-hub/writing/job-application/templates/framings.md +6 -0
- package/skills-hub/writing/job-application/templates/improvement-plan.md +16 -0
- package/skills-hub/writing/job-application/templates/ingest-log.md +4 -0
- package/skills-hub/writing/job-application/templates/known-gaps.md +4 -0
- package/skills-hub/writing/job-application/templates/match-report.md +21 -0
- package/skills-hub/writing/job-application/templates/methodology-cache.md +10 -0
- package/skills-hub/writing/job-application/templates/persist-index.md +11 -0
- package/skills-hub/writing/job-application/templates/profile.md +21 -0
- package/skills-hub/writing/job-application/templates/questions.md +22 -0
- package/skills-hub/writing/job-application/templates/resume-original.md +10 -0
- package/skills-hub/writing/job-application/templates/resume-tailored.md +21 -0
- package/skills-hub/writing/job-application/templates/sources-index.md +6 -0
- package/skills-hub/writing/job-application/templates/speech.md +19 -0
- package/skills-hub/writing/job-application/templates/stories.md +9 -0
- package/skills-hub/writing/job-application/templates/story-bank.md +11 -0
- package/skills-hub/writing/job-application/templates/strengths.md +4 -0
- package/skills-hub/writing/job-application/templates/style-memory.md +7 -0
- package/skills-hub/writing/ste-zh/LICENSE +21 -0
- package/skills-hub/writing/ste-zh/NOTICE.md +9 -0
- package/skills-hub/writing/ste-zh/SKILL.md +130 -0
- package/skills-hub/writing/ste-zh/agents/openai.yaml +6 -0
- package/skills-hub/writing/ste-zh/examples/zh-report.md +23 -0
- package/skills-hub/writing/ste-zh/references/english-modes.md +13 -0
- package/skills-hub/writing/ste-zh/references/terminology.md +13 -0
- package/skills-hub/writing/ste-zh/references/zh-rules.md +29 -0
- package/template/.speculo/refresh-contract.json +2 -0
- package/template/canonical/canonical-specdev-goal-plan.md +33 -25
- package/template/canonical/canonical-specdev-grill-with-docs.md +214 -206
- package/template/canonical/canonical-specdev-spec.md +214 -206
- package/template/canonical/canonical-specdev-tickets.md +214 -206
- package/template/canonical/canonical-specdev-wayfinder.md +214 -206
- package/template/lib/speculo-runtime.mjs +183 -8
- package/template/references/coordination/coordination-contract.md +11 -3
- package/template/references/coordination/modes/cli.md +2 -2
- package/template/references/coordination/modes/herdr.md +9 -9
- package/template/references/coordination/modes/orca.md +11 -11
- package/template/references/coordination/project-facts.schema.json +1 -0
- package/template/workflows/specdev/specdev-i-init-setup/SKILL.md +7 -6
- package/template/workflows/specdev/specdev-i-init-setup/references/first-setup.md +30 -1
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { HubCatalog } from "./hub-catalog.js";
|
|
2
|
+
export { discoverHubCatalog, type HubCatalog } from "./hub-catalog.js";
|
|
3
|
+
import { type ProjectionHost, type SkillRequest } from "./agent-skills.js";
|
|
4
|
+
import { type SkillRecord } from "./skill-trees.js";
|
|
5
|
+
type OwnedNode = {
|
|
6
|
+
path: string;
|
|
7
|
+
kind: "file" | "directory";
|
|
8
|
+
mode: number;
|
|
9
|
+
sha256?: string;
|
|
10
|
+
};
|
|
11
|
+
type OwnedPackage = {
|
|
12
|
+
id: string;
|
|
13
|
+
host: ProjectionHost;
|
|
14
|
+
name: string;
|
|
15
|
+
nodes: OwnedNode[];
|
|
16
|
+
};
|
|
17
|
+
export type HubManifest = {
|
|
18
|
+
schema_version: 1;
|
|
19
|
+
package_version: string;
|
|
20
|
+
targets: ProjectionHost[];
|
|
21
|
+
skill_ids: string[];
|
|
22
|
+
packages: OwnedPackage[];
|
|
23
|
+
};
|
|
24
|
+
export type HubSummary = {
|
|
25
|
+
selected: string[];
|
|
26
|
+
targets: ProjectionHost[];
|
|
27
|
+
installed: string[];
|
|
28
|
+
created: string[];
|
|
29
|
+
updated: string[];
|
|
30
|
+
removed: string[];
|
|
31
|
+
conflicts: string[];
|
|
32
|
+
};
|
|
33
|
+
export declare const HUB_MANIFEST = "hub-skills.json";
|
|
34
|
+
export declare function parseHubSkillSpec(spec: string): SkillRequest;
|
|
35
|
+
export declare function resolveHubIds(request: SkillRequest | undefined, catalog: HubCatalog, existing: string[]): string[];
|
|
36
|
+
export declare function readHubManifest(target: string): Promise<HubManifest | null>;
|
|
37
|
+
export declare function planHubSkills(options: {
|
|
38
|
+
target: string;
|
|
39
|
+
stagedRoot: string;
|
|
40
|
+
packageVersion: string;
|
|
41
|
+
catalog: HubCatalog;
|
|
42
|
+
ids: string[];
|
|
43
|
+
targets: ProjectionHost[];
|
|
44
|
+
}): Promise<{
|
|
45
|
+
records: SkillRecord[];
|
|
46
|
+
summary: HubSummary;
|
|
47
|
+
warnings: string[];
|
|
48
|
+
}>;
|
|
49
|
+
export declare function inspectHubSkills(target: string): Promise<Array<{
|
|
50
|
+
id: string;
|
|
51
|
+
ok: boolean;
|
|
52
|
+
message: string;
|
|
53
|
+
}>>;
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { readFile, readdir, writeFile } from "node:fs/promises";
|
|
2
|
+
import { join, posix } from "node:path";
|
|
3
|
+
export { discoverHubCatalog } from "./hub-catalog.js";
|
|
4
|
+
import { assertProjectionCasing, normalizeSkillTargets, parseSkillSpec, sha256Buffer } from "./agent-skills.js";
|
|
5
|
+
import { containedPath, INSTALL_ROOT } from "./paths.js";
|
|
6
|
+
import { absent, sameNode, snapshotSkillTree, validSkillPath } from "./skill-trees.js";
|
|
7
|
+
export const HUB_MANIFEST = "hub-skills.json";
|
|
8
|
+
const ID = /^[a-z0-9]+(?:-[a-z0-9]+)*\/[a-z0-9]+(?:-[a-z0-9]+)*$/;
|
|
9
|
+
export function parseHubSkillSpec(spec) {
|
|
10
|
+
try {
|
|
11
|
+
return parseSkillSpec(spec);
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
throw new Error("--hub-skills must be none|keep|all or comma-separated category/name ids");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function resolveHubIds(request, catalog, existing) {
|
|
18
|
+
const ids = !request || request.mode === "keep" ? existing : request.mode === "none" ? [] : request.mode === "all" ? [...catalog.keys()] : request.mode === "set" ? request.assetIds : [];
|
|
19
|
+
for (const id of ids)
|
|
20
|
+
if (!catalog.has(id))
|
|
21
|
+
throw new Error("unavailable-hub-skill: " + id + "; explicitly select a new list or none");
|
|
22
|
+
return [...new Set(ids)].sort();
|
|
23
|
+
}
|
|
24
|
+
function ownedNodes(tree) {
|
|
25
|
+
return [...tree].map(([path, node]) => {
|
|
26
|
+
if (node.kind === "absent")
|
|
27
|
+
throw new Error("absent-owned-node");
|
|
28
|
+
return { path, kind: node.kind, mode: node.mode, ...(node.kind === "file" ? { sha256: sha256Buffer(Buffer.from(node.content, "base64")) } : {}) };
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
function matches(tree, nodes) {
|
|
32
|
+
const actual = new Map(ownedNodes(tree).map(n => [n.path, n]));
|
|
33
|
+
return actual.size === nodes.length && nodes.every(n => {
|
|
34
|
+
const a = actual.get(n.path);
|
|
35
|
+
return a?.kind === n.kind && a.mode === n.mode && a.sha256 === n.sha256;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
export async function readHubManifest(target) {
|
|
39
|
+
let text;
|
|
40
|
+
try {
|
|
41
|
+
text = await readFile(await containedPath(target, `${INSTALL_ROOT}/.speculo/${HUB_MANIFEST}`), "utf8");
|
|
42
|
+
}
|
|
43
|
+
catch (e) {
|
|
44
|
+
if (e.code === "ENOENT")
|
|
45
|
+
return null;
|
|
46
|
+
throw e;
|
|
47
|
+
}
|
|
48
|
+
const m = JSON.parse(text);
|
|
49
|
+
if (!m || m.schema_version !== 1 || typeof m.package_version !== "string" || !Array.isArray(m.targets) ||
|
|
50
|
+
normalizeSkillTargets(m.targets).length !== m.targets.length || !Array.isArray(m.skill_ids) || m.skill_ids.some(id => !ID.test(id)) ||
|
|
51
|
+
new Set(m.skill_ids).size !== m.skill_ids.length || !Array.isArray(m.packages) || (!m.targets.length && m.skill_ids.length))
|
|
52
|
+
throw new Error("invalid-hub-manifest");
|
|
53
|
+
const destinations = new Set();
|
|
54
|
+
for (const p of m.packages) {
|
|
55
|
+
if (!p || !ID.test(p.id) || p.name !== p.id.split("/")[1] || !["agents", "claude"].includes(p.host) || !Array.isArray(p.nodes))
|
|
56
|
+
throw new Error("invalid-hub-package");
|
|
57
|
+
const root = `.${p.host}/skills/${p.name}`;
|
|
58
|
+
if (destinations.has(root))
|
|
59
|
+
throw new Error("duplicate-hub-destination");
|
|
60
|
+
destinations.add(root);
|
|
61
|
+
const paths = new Set();
|
|
62
|
+
for (const n of p.nodes) {
|
|
63
|
+
if (!n || typeof n.path !== "string" || !validSkillPath(root + (n.path ? "/" + n.path : "")) || paths.has(n.path) ||
|
|
64
|
+
!Number.isInteger(n.mode) || n.mode < 0 || n.mode > 0o777 || !["file", "directory"].includes(n.kind) ||
|
|
65
|
+
(n.kind === "file" ? !/^[a-f0-9]{64}$/.test(n.sha256 ?? "") : n.sha256 !== undefined))
|
|
66
|
+
throw new Error("invalid-hub-node");
|
|
67
|
+
if (process.platform === "win32")
|
|
68
|
+
n.mode = n.kind === "directory" ? 0o755 : n.mode & 0o200 ? 0o666 : 0o444;
|
|
69
|
+
paths.add(n.path);
|
|
70
|
+
}
|
|
71
|
+
if (!p.nodes.some(n => n.path === "" && n.kind === "directory") || !p.nodes.some(n => n.path === "SKILL.md" && n.kind === "file"))
|
|
72
|
+
throw new Error("invalid-hub-package-root");
|
|
73
|
+
for (const n of p.nodes)
|
|
74
|
+
if (n.path && !p.nodes.some(d => d.kind === "directory" && d.path === (posix.dirname(n.path) === "." ? "" : posix.dirname(n.path))))
|
|
75
|
+
throw new Error("invalid-hub-node-parent");
|
|
76
|
+
}
|
|
77
|
+
return m;
|
|
78
|
+
}
|
|
79
|
+
export async function planHubSkills(options) {
|
|
80
|
+
const old = await readHubManifest(options.target), targets = normalizeSkillTargets(options.targets);
|
|
81
|
+
if (options.ids.length && !targets.length)
|
|
82
|
+
throw new Error("--hub-skills requires at least one --skill-targets destination");
|
|
83
|
+
const next = { schema_version: 1, package_version: options.packageVersion, targets, skill_ids: options.ids, packages: [] };
|
|
84
|
+
const summary = { selected: options.ids, targets, installed: [], created: [], updated: [], removed: [], conflicts: [] };
|
|
85
|
+
const records = [], warnings = [];
|
|
86
|
+
for (const host of ["agents", "claude"]) {
|
|
87
|
+
const previous = old?.packages.filter(p => p.host === host) ?? [];
|
|
88
|
+
const desired = targets.includes(host) ? options.ids : [];
|
|
89
|
+
for (const id of new Set([...desired, ...previous.map(p => p.id)])) {
|
|
90
|
+
const prior = previous.find(p => p.id === id), skill = options.catalog.get(id), name = skill?.name ?? prior.name;
|
|
91
|
+
const root = `.${host}/skills/${name}`, label = `${host}:${id}`;
|
|
92
|
+
try {
|
|
93
|
+
await assertProjectionCasing(options.target, root);
|
|
94
|
+
const names = await readdir(await containedPath(options.target, `.${host}/skills`)).catch((e) => { if (e.code === "ENOENT")
|
|
95
|
+
return []; throw e; });
|
|
96
|
+
if (names.some(n => n.toLowerCase() === name.toLowerCase() && n !== name))
|
|
97
|
+
throw new Error("ambiguous Skill directory casing");
|
|
98
|
+
const before = await snapshotSkillTree(await containedPath(options.target, root));
|
|
99
|
+
if (prior ? !matches(before, prior.nodes) : before.size > 0)
|
|
100
|
+
throw new Error(prior ? "package content, mode or resource list differs from ownership" : "unmanaged same-name directory exists");
|
|
101
|
+
const after = desired.includes(id) ? skill.tree : new Map();
|
|
102
|
+
const pending = [];
|
|
103
|
+
for (const path of new Set([...before.keys(), ...after.keys()])) {
|
|
104
|
+
const a = before.get(path) ?? absent, b = after.get(path) ?? absent;
|
|
105
|
+
if (a.kind !== "absent" && b.kind !== "absent" && a.kind !== b.kind)
|
|
106
|
+
throw new Error("resource node type changed: " + path);
|
|
107
|
+
pending.push({ name: root + (path ? "/" + path : ""), before: a, after: b });
|
|
108
|
+
}
|
|
109
|
+
if (after.size) {
|
|
110
|
+
next.packages.push({ id, name, host, nodes: ownedNodes(after) });
|
|
111
|
+
summary.installed.push(label);
|
|
112
|
+
if (!prior)
|
|
113
|
+
summary.created.push(label);
|
|
114
|
+
else if (pending.some(r => !sameNode(r.before, r.after)))
|
|
115
|
+
summary.updated.push(label);
|
|
116
|
+
}
|
|
117
|
+
else if (prior)
|
|
118
|
+
summary.removed.push(label);
|
|
119
|
+
// Include unchanged nodes to detect extra files and recover partial package changes.
|
|
120
|
+
if (pending.some(r => !sameNode(r.before, r.after)))
|
|
121
|
+
records.push(...pending);
|
|
122
|
+
}
|
|
123
|
+
catch (e) {
|
|
124
|
+
summary.conflicts.push(label);
|
|
125
|
+
warnings.push(`hub-package-conflict ${root}: ${String(e)}; whole package retained`);
|
|
126
|
+
if (prior) {
|
|
127
|
+
next.packages.push(prior);
|
|
128
|
+
summary.installed.push(label);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
await writeFile(join(options.stagedRoot, ".speculo", HUB_MANIFEST), JSON.stringify(next, null, 2) + "\n");
|
|
134
|
+
return { records, summary, warnings };
|
|
135
|
+
}
|
|
136
|
+
export async function inspectHubSkills(target) {
|
|
137
|
+
try {
|
|
138
|
+
const m = await readHubManifest(target);
|
|
139
|
+
if (!m)
|
|
140
|
+
return [];
|
|
141
|
+
const checks = [];
|
|
142
|
+
for (const p of m.packages) {
|
|
143
|
+
const tree = await snapshotSkillTree(await containedPath(target, `.${p.host}/skills/${p.name}`));
|
|
144
|
+
const ok = m.targets.includes(p.host) && m.skill_ids.includes(p.id) && matches(tree, p.nodes);
|
|
145
|
+
checks.push({ id: `hub:${p.host}:${p.id}`, ok, message: ok ? "complete owned package matches; host invocation not probed" : "package drifted or retained after conflict" });
|
|
146
|
+
}
|
|
147
|
+
for (const host of m.targets)
|
|
148
|
+
for (const id of m.skill_ids)
|
|
149
|
+
if (!m.packages.some(p => p.host === host && p.id === id))
|
|
150
|
+
checks.push({ id: `hub:${host}:${id}`, ok: false, message: "selected package not installed due to conflict" });
|
|
151
|
+
return checks;
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
return [{ id: "hub-skills", ok: false, message: String(e) }];
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=hub-skills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-skills.js","sourceRoot":"","sources":["../../src/hub-skills.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type SkillRequest, type ProjectionHost, type ExposureSummary, type ProjectionSummaries } from "./agent-skills.js";
|
|
2
|
+
import { type HubSummary } from "./hub-skills.js";
|
|
2
3
|
import { type TransactionHook } from "./transaction.js";
|
|
3
4
|
import { type RefreshSummary } from "./refresh.js";
|
|
4
5
|
import { type WorkflowSelection } from "./workflows.js";
|
|
@@ -12,6 +13,8 @@ export type SpeculoCommandResult = {
|
|
|
12
13
|
};
|
|
13
14
|
projections: ProjectionSummaries;
|
|
14
15
|
warnings: string[];
|
|
16
|
+
hub: HubSummary;
|
|
17
|
+
removedWorkflowIds: string[];
|
|
15
18
|
};
|
|
16
19
|
export type InstallProgress = "staging" | "staged" | "committing" | "committed";
|
|
17
20
|
export type InstallPreview = {
|
|
@@ -19,6 +22,8 @@ export type InstallPreview = {
|
|
|
19
22
|
mode: "init" | "refresh";
|
|
20
23
|
workflowIds: string[];
|
|
21
24
|
retainedWorkflowIds: string[];
|
|
25
|
+
removedWorkflowIds?: string[];
|
|
26
|
+
hub?: HubSummary;
|
|
22
27
|
exposure: ExposureSummary;
|
|
23
28
|
projections: ProjectionSummaries;
|
|
24
29
|
warnings: string[];
|
|
@@ -28,6 +33,7 @@ export type SpeculoOptions = {
|
|
|
28
33
|
selection?: WorkflowSelection;
|
|
29
34
|
skillTargets?: ProjectionHost[];
|
|
30
35
|
skills?: SkillRequest;
|
|
36
|
+
hubSkills?: SkillRequest;
|
|
31
37
|
/** Ask once for missing exposure options after staging; library calls default to non-interactive. */
|
|
32
38
|
promptExposure?: boolean;
|
|
33
39
|
/** Called after staging and validation, before any active installation changes. */
|
package/dist/src/index.js
CHANGED
|
@@ -5,6 +5,8 @@ import { randomUUID } from "node:crypto";
|
|
|
5
5
|
import { hostname } from "node:os";
|
|
6
6
|
import { planExternalEdits, readPersistentKnowledge, writeDiscoveryAssets } from "./agent-files.js";
|
|
7
7
|
import { planSkillProjection, resolveExposure, validateExposureRequest } from "./agent-skills.js";
|
|
8
|
+
import { discoverHubCatalog, readHubManifest, resolveHubIds, planHubSkills } from "./hub-skills.js";
|
|
9
|
+
import { planWorkflowRemoval, writeRemovalMetadata } from "./workflow-install.js";
|
|
8
10
|
import { readAssetCatalog } from "./assets.js";
|
|
9
11
|
import { InstallCancelled } from "./interaction.js";
|
|
10
12
|
import { assertImage, snapshotExternalFiles, writeDurableJson } from "./external-files.js";
|
|
@@ -12,7 +14,7 @@ import { assertInstallDirectory, cleanEmptyTransactionsDirectory, commitInstall,
|
|
|
12
14
|
import { fingerprintTree } from "./manifest.js";
|
|
13
15
|
import { prepareRefresh, loadWorkflowContract, RefreshBlockedError } from "./refresh.js";
|
|
14
16
|
import { pathExists } from "./utils.js";
|
|
15
|
-
import { discoverWorkflowCatalog, isInteractive,
|
|
17
|
+
import { discoverWorkflowCatalog, isInteractive, scanInstalledWorkflows, } from "./workflows.js";
|
|
16
18
|
const CORE_ASSETS = [".speculo", "commands", "references", "lib", "config.json"];
|
|
17
19
|
const INSTALL_SUBDIR = INSTALL_ROOT;
|
|
18
20
|
const WORKFLOW_ENTRY = "SKILL.md";
|
|
@@ -41,22 +43,6 @@ async function copyCoreAssets(packageRoot, stagedRoot) {
|
|
|
41
43
|
});
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
|
-
async function resolveSelection(packageRoot, currentRoot, options) {
|
|
45
|
-
const catalog = await discoverWorkflowCatalog(packageRoot);
|
|
46
|
-
if (options.selection) {
|
|
47
|
-
const ids = [...new Set(options.selection.workflowIds)].sort();
|
|
48
|
-
for (const id of ids)
|
|
49
|
-
if (!catalog.has(id))
|
|
50
|
-
throw new Error("Unknown workflow package: " + id);
|
|
51
|
-
return { workflowIds: ids };
|
|
52
|
-
}
|
|
53
|
-
const installed = new Set(await scanInstalledWorkflows(currentRoot));
|
|
54
|
-
if (!isInteractive())
|
|
55
|
-
return { workflowIds: [...installed].filter((id) => catalog.has(id)).sort() };
|
|
56
|
-
return promptWorkflowSelection(catalog, {
|
|
57
|
-
preSelectedWorkflowIds: new Set([...installed].filter((workflowId) => catalog.has(workflowId))),
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
46
|
async function copySelectedWorkflow(packageRoot, stagedRoot, workflowId) {
|
|
61
47
|
const source = join(assetRoot(packageRoot), "workflows", workflowId);
|
|
62
48
|
if (!(await pathExists(join(source, WORKFLOW_ENTRY))))
|
|
@@ -76,35 +62,16 @@ async function copySelectedWorkflow(packageRoot, stagedRoot, workflowId) {
|
|
|
76
62
|
const stagedState = join(stagedRoot, ".speculo", workflowId);
|
|
77
63
|
await cp(stateSource, stagedState, { recursive: true, force: true });
|
|
78
64
|
}
|
|
79
|
-
async function
|
|
80
|
-
const selected = new Set(selection.workflowIds);
|
|
81
|
-
for (const workflowId of catalog.keys()) {
|
|
82
|
-
if (selected.has(workflowId))
|
|
83
|
-
continue;
|
|
84
|
-
const previousWorkflow = join(previousRoot, "workflows", workflowId);
|
|
85
|
-
if (await pathExists(previousWorkflow))
|
|
86
|
-
await cp(previousWorkflow, join(stagedRoot, "workflows", workflowId), { recursive: true, force: true });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async function installedUnselectedWorkflowIds(catalog, selection, previousRoot) {
|
|
90
|
-
const selected = new Set(selection.workflowIds);
|
|
91
|
-
const installed = [];
|
|
92
|
-
for (const workflowId of catalog.keys()) {
|
|
93
|
-
if (!selected.has(workflowId) && await pathExists(join(previousRoot, "workflows", workflowId, WORKFLOW_ENTRY)))
|
|
94
|
-
installed.push(workflowId);
|
|
95
|
-
}
|
|
96
|
-
return installed.sort();
|
|
97
|
-
}
|
|
98
|
-
async function buildStagedInstall(packageRoot, target, previousRoot, catalog, selection, existed) {
|
|
65
|
+
async function buildStagedInstall(packageRoot, target, previousRoot, removal, selection, existed) {
|
|
99
66
|
await mkdir(target, { recursive: true });
|
|
100
67
|
await mkdir(join(target, TRANSACTIONS_ROOT), { recursive: true });
|
|
101
68
|
const stagedRoot = await mkdtemp(join(target, TRANSACTIONS_ROOT, "stage-"));
|
|
102
69
|
try {
|
|
103
70
|
await copyCoreAssets(packageRoot, stagedRoot);
|
|
104
|
-
|
|
71
|
+
for (const id of removal.retained)
|
|
72
|
+
await cp(join(previousRoot, "workflows", id), join(stagedRoot, "workflows", id), { recursive: true, preserveTimestamps: true, verbatimSymlinks: true });
|
|
105
73
|
for (const workflowId of selection.workflowIds)
|
|
106
74
|
await copySelectedWorkflow(packageRoot, stagedRoot, workflowId);
|
|
107
|
-
const unselectedWorkflowIds = await installedUnselectedWorkflowIds(catalog, selection, previousRoot);
|
|
108
75
|
const workspace = { schema_version: 2, layout_version: "agents-v2", installation_id: existed ? (await readWorkspace(target)).installation_id : randomUUID(), path_base: "project-root", roots: DEFAULT_ROOTS };
|
|
109
76
|
validateWorkspace(workspace);
|
|
110
77
|
await writeFile(join(stagedRoot, ".speculo", "workspace.json"), JSON.stringify(workspace, null, 2) + "\n");
|
|
@@ -114,9 +81,14 @@ async function buildStagedInstall(packageRoot, target, previousRoot, catalog, se
|
|
|
114
81
|
previousRoot,
|
|
115
82
|
stagedRoot,
|
|
116
83
|
selectedWorkflowIds: selection.workflowIds,
|
|
117
|
-
|
|
84
|
+
retainedWorkflowIds: removal.retained,
|
|
85
|
+
installedWorkflowIds: [...new Set([...selection.workflowIds, ...removal.retained])].sort(),
|
|
118
86
|
existed,
|
|
119
87
|
});
|
|
88
|
+
await writeRemovalMetadata(stagedRoot, removal);
|
|
89
|
+
for (const id of removal.retained)
|
|
90
|
+
if (await fingerprintTree(join(previousRoot, "workflows", id)) !== await fingerprintTree(join(stagedRoot, "workflows", id)))
|
|
91
|
+
throw new Error("retained-workflow-drift: " + id);
|
|
120
92
|
return { stagedRoot, refresh };
|
|
121
93
|
}
|
|
122
94
|
catch (error) {
|
|
@@ -130,6 +102,12 @@ export async function initSpeculo(targetArg = ".", options = {}) {
|
|
|
130
102
|
const packageRoot = resolve(options.packageRoot ?? process.cwd());
|
|
131
103
|
const root = installRoot(target);
|
|
132
104
|
await assertInstallDirectory(target);
|
|
105
|
+
if (options.skillTargets?.length === 0) {
|
|
106
|
+
const currentHub = await readHubManifest(target);
|
|
107
|
+
const ids = resolveHubIds(options.hubSkills, await discoverHubCatalog(packageRoot), currentHub?.packages.map(p => p.id) ?? []);
|
|
108
|
+
if (ids.length)
|
|
109
|
+
throw new Error("--hub-skills requires at least one --skill-targets destination");
|
|
110
|
+
}
|
|
133
111
|
const existed = await pathExists(root);
|
|
134
112
|
// Reject unsafe handbook nodes before creating installation scaffolding.
|
|
135
113
|
// The authoritative snapshot is still retaken after acquiring the lock.
|
|
@@ -152,11 +130,26 @@ export async function initSpeculo(targetArg = ".", options = {}) {
|
|
|
152
130
|
await writeFile(join(lockRoot, ".gitignore"), "*\n", { mode: 0o600 });
|
|
153
131
|
await writeDurableJson(join(lockRoot, "owner.json"), { schema_version: 1, id: randomUUID(), host: hostname(), pid: process.pid, started_at: new Date().toISOString() });
|
|
154
132
|
const externalSnapshot = await snapshotExternalFiles(target);
|
|
155
|
-
const catalog = await discoverWorkflowCatalog(packageRoot);
|
|
156
|
-
const selection = await resolveSelection(packageRoot, root, options);
|
|
157
133
|
const initialFingerprint = await fingerprintTree(root);
|
|
134
|
+
const catalog = await discoverWorkflowCatalog(packageRoot);
|
|
135
|
+
const hubCatalog = await discoverHubCatalog(packageRoot), hubManifest = await readHubManifest(target);
|
|
136
|
+
const installedBefore = await scanInstalledWorkflows(root);
|
|
137
|
+
let workflowIds = [...new Set(options.selection?.workflowIds ?? installedBefore)].sort();
|
|
138
|
+
for (const id of workflowIds)
|
|
139
|
+
if (!catalog.has(id))
|
|
140
|
+
throw new Error("Unavailable workflow: " + id + "; explicitly select a new list or none");
|
|
141
|
+
const priorHubIds = [...new Set(hubManifest?.packages.map(p => p.id) ?? [])];
|
|
142
|
+
let hubIds = resolveHubIds(options.hubSkills, hubCatalog, priorHubIds);
|
|
143
|
+
if (isInteractive() && options.promptExposure && (!options.selection || !options.hubSkills)) {
|
|
144
|
+
const { promptPackages } = await import("./install-ui.js");
|
|
145
|
+
({ workflowIds, hubIds } = await promptPackages({ workflows: catalog, hub: hubCatalog, workflowIds, hubIds, chooseWorkflows: !options.selection, chooseHub: !options.hubSkills }));
|
|
146
|
+
}
|
|
147
|
+
if (hubIds.length && options.skillTargets?.length === 0)
|
|
148
|
+
throw new Error("--hub-skills requires at least one --skill-targets destination");
|
|
149
|
+
const selection = { workflowIds };
|
|
150
|
+
const removal = await planWorkflowRemoval(target, root, installedBefore, workflowIds);
|
|
158
151
|
options.onProgress?.("staging");
|
|
159
|
-
const staged = await buildStagedInstall(packageRoot, target, root,
|
|
152
|
+
const staged = await buildStagedInstall(packageRoot, target, root, removal, selection, existed);
|
|
160
153
|
stagedRoot = staged.stagedRoot;
|
|
161
154
|
refresh = staged.refresh;
|
|
162
155
|
options.onProgress?.("staged");
|
|
@@ -178,25 +171,33 @@ export async function initSpeculo(targetArg = ".", options = {}) {
|
|
|
178
171
|
const assetCatalog = await readAssetCatalog(stagedRoot);
|
|
179
172
|
const exposure = await resolveExposure({
|
|
180
173
|
target, catalog: assetCatalog, targets: options.skillTargets, request: options.skills, prompt: options.promptExposure === true,
|
|
174
|
+
removedAssetIds: removal.removedAssetIds, hubSelected: hubIds.length > 0, defaultTargets: hubManifest ? [...new Set([...hubManifest.targets, ...hubManifest.packages.filter(p => hubIds.includes(p.id)).map(p => p.host)])] : undefined,
|
|
181
175
|
});
|
|
182
176
|
const projection = await planSkillProjection({ target, stagedRoot, packageVersion: refresh.targetVersion, exposure });
|
|
183
177
|
if (projection.blockers.length)
|
|
184
178
|
throw new RefreshBlockedError(projection.blockers);
|
|
185
|
-
const
|
|
179
|
+
const removalDrift = projection.warnings.filter(w => removal.removedAssetIds.some(id => w.path.endsWith(":" + id)));
|
|
180
|
+
if (removalDrift.length)
|
|
181
|
+
throw new RefreshBlockedError(removalDrift);
|
|
182
|
+
const hub = await planHubSkills({ target, stagedRoot, packageVersion: refresh.targetVersion, catalog: hubCatalog, ids: hubIds, targets: exposure.targets });
|
|
183
|
+
const warnings = [...removal.warnings, ...projection.warnings.map(w => `${w.code} ${w.path}: ${w.message}`), ...hub.warnings];
|
|
186
184
|
if (options.confirmInstall && !await options.confirmInstall({
|
|
187
185
|
target, mode: existed ? "refresh" : "init", workflowIds: selection.workflowIds,
|
|
188
186
|
retainedWorkflowIds: installed.filter(id => !selection.workflowIds.includes(id)),
|
|
189
|
-
exposure: projection.exposure, projections: projection.summaries, warnings,
|
|
187
|
+
exposure: projection.exposure, projections: projection.summaries, warnings, hub: hub.summary, removedWorkflowIds: removal.removed,
|
|
190
188
|
}))
|
|
191
189
|
throw new InstallCancelled(0);
|
|
192
190
|
options.onProgress?.("committing");
|
|
193
|
-
|
|
191
|
+
const removedProjectionPaths = new Set(removal.projectionRecords.map(r => r.name));
|
|
192
|
+
await commitInstall(target, stagedRoot, initialFingerprint, edits, options.transactionHook, [
|
|
193
|
+
...(projection.records ?? []).filter(r => !removedProjectionPaths.has(r.name)), ...removal.projectionRecords, ...hub.records,
|
|
194
|
+
]);
|
|
194
195
|
assets.push(...edits.map((edit) => edit.name + " (managed discovery/runtime references)"));
|
|
195
196
|
stagedRoot = undefined;
|
|
196
197
|
options.onProgress?.("committed");
|
|
197
198
|
if (!refresh)
|
|
198
199
|
throw new Error("Speculo refresh result was not produced");
|
|
199
|
-
return { target, mode: existed ? "refresh" : "init", assets, refresh, exposure: { ...projection.exposure, projected: projection.count }, projections: projection.summaries, warnings };
|
|
200
|
+
return { target, mode: existed ? "refresh" : "init", assets, refresh, exposure: { ...projection.exposure, projected: projection.count }, projections: projection.summaries, warnings, hub: hub.summary, removedWorkflowIds: removal.removed };
|
|
200
201
|
}
|
|
201
202
|
catch (error) {
|
|
202
203
|
failure = error;
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/install-ui.d.ts
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
+
import type { HubCatalog } from "./hub-skills.js";
|
|
1
2
|
import type { Asset, AssetCatalog } from "./assets.js";
|
|
2
3
|
import { type SkillRequest, type ProjectionHost, type ExposureSelection } from "./agent-skills.js";
|
|
3
4
|
import type { InstallPreview, InstallProgress, SpeculoCommandResult } from "./index.js";
|
|
4
5
|
import type { WorkflowCatalog, WorkflowSelection } from "./workflows.js";
|
|
5
6
|
import type { VersionInfo } from "./version.js";
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
hint?: string;
|
|
10
|
-
};
|
|
11
|
-
export declare function wrapTerminalText(text: string, width: number): string;
|
|
7
|
+
import { type TerminalChoice } from "./terminal-ui.js";
|
|
8
|
+
export { wrapTerminalText } from "./terminal-ui.js";
|
|
9
|
+
type Choice = TerminalChoice;
|
|
12
10
|
export type PromptPort = {
|
|
13
11
|
select(options: {
|
|
14
12
|
message: string;
|
|
@@ -29,6 +27,17 @@ export type PromptPort = {
|
|
|
29
27
|
}): Promise<boolean | symbol>;
|
|
30
28
|
note(message: string, title: string): void;
|
|
31
29
|
};
|
|
30
|
+
export declare function promptPackages(options: {
|
|
31
|
+
workflows: WorkflowCatalog;
|
|
32
|
+
hub: HubCatalog;
|
|
33
|
+
workflowIds: string[];
|
|
34
|
+
hubIds: string[];
|
|
35
|
+
chooseWorkflows: boolean;
|
|
36
|
+
chooseHub: boolean;
|
|
37
|
+
}, ui?: PromptPort): Promise<{
|
|
38
|
+
workflowIds: string[];
|
|
39
|
+
hubIds: string[];
|
|
40
|
+
}>;
|
|
32
41
|
export declare function promptWorkflows(catalog: WorkflowCatalog, installed: Set<string>, ui?: PromptPort): Promise<WorkflowSelection>;
|
|
33
42
|
export type ExposureGroup = {
|
|
34
43
|
id: string;
|
|
@@ -42,6 +51,7 @@ export declare function promptExposureConfiguration(options: {
|
|
|
42
51
|
hasHistory: boolean;
|
|
43
52
|
targets?: ProjectionHost[];
|
|
44
53
|
request?: SkillRequest;
|
|
54
|
+
hubSelected?: boolean;
|
|
45
55
|
}, ui?: PromptPort): Promise<ExposureSelection>;
|
|
46
56
|
export declare function promptExposure(options: {
|
|
47
57
|
targets: ProjectionHost[];
|
|
@@ -58,4 +68,3 @@ export declare function createInstallUI(): {
|
|
|
58
68
|
finish(result: SpeculoCommandResult): void;
|
|
59
69
|
fail(error: unknown): void;
|
|
60
70
|
};
|
|
61
|
-
export {};
|