ultracontext 1.4.13 → 1.6.0

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.
Files changed (41) hide show
  1. package/dist/cli/entry.mjs +9 -3
  2. package/dist/cli/entry.mjs.map +1 -1
  3. package/dist/cli/onboarding.mjs +268 -111
  4. package/dist/cli/onboarding.mjs.map +1 -1
  5. package/dist/cli/sdk-sync.mjs +199 -939
  6. package/dist/cli/sdk-sync.mjs.map +1 -1
  7. package/dist/cli/switch.mjs +168 -0
  8. package/dist/cli/switch.mjs.map +1 -0
  9. package/dist/{ctl-CXfNEPN8.mjs → ctl-DTQZxn3N.mjs} +2 -2
  10. package/dist/{ctl-CXfNEPN8.mjs.map → ctl-DTQZxn3N.mjs.map} +1 -1
  11. package/dist/hero-art-C03HmDXN.mjs +46 -0
  12. package/dist/hero-art-C03HmDXN.mjs.map +1 -0
  13. package/dist/index.d.mts +21 -1
  14. package/dist/index.d.mts.map +1 -1
  15. package/dist/index.mjs +25 -3
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/{launcher-BMMjzr5k.mjs → launcher-ZylswrpR.mjs} +3 -3
  18. package/dist/{launcher-BMMjzr5k.mjs.map → launcher-ZylswrpR.mjs.map} +1 -1
  19. package/dist/{lock-5aJnda81.mjs → lock-BhZX2aF3.mjs} +2 -2
  20. package/dist/{lock-5aJnda81.mjs.map → lock-BhZX2aF3.mjs.map} +1 -1
  21. package/dist/onboarding-preferences-Alhblobi.mjs +76 -0
  22. package/dist/onboarding-preferences-Alhblobi.mjs.map +1 -0
  23. package/dist/src-Bovo1ukU.mjs +1200 -0
  24. package/dist/src-Bovo1ukU.mjs.map +1 -0
  25. package/dist/{tui-DZ1SDOH2.mjs → tui-DLEjew3K.mjs} +334 -115
  26. package/dist/tui-DLEjew3K.mjs.map +1 -0
  27. package/dist/utils-BTfShW0g.mjs +36 -0
  28. package/dist/utils-BTfShW0g.mjs.map +1 -0
  29. package/dist/{utils-CmuIYHtm.mjs → utils-D9CKnbke.mjs} +26 -34
  30. package/dist/utils-D9CKnbke.mjs.map +1 -0
  31. package/lib/register-skills.mjs +96 -0
  32. package/package.json +8 -3
  33. package/plugin/.claude-plugin/plugin.json +6 -0
  34. package/plugin/README.md +112 -0
  35. package/plugin/marketplace.json +17 -0
  36. package/plugin/skills/switch/SKILL.md +27 -0
  37. package/postinstall.mjs +35 -2
  38. package/dist/Spinner-CwBjkXHv.mjs +0 -153
  39. package/dist/Spinner-CwBjkXHv.mjs.map +0 -1
  40. package/dist/tui-DZ1SDOH2.mjs.map +0 -1
  41. package/dist/utils-CmuIYHtm.mjs.map +0 -1
@@ -0,0 +1,76 @@
1
+ import path from "node:path";
2
+
3
+ //#region ../sync/src/onboarding-preferences.mjs
4
+ const PRIMARY_CAPTURE_AGENTS = [
5
+ "claude",
6
+ "codex",
7
+ "cursor"
8
+ ];
9
+ const ONBOARDING_AGENT_OPTIONS = [
10
+ {
11
+ id: "claude",
12
+ label: "Claude Code"
13
+ },
14
+ {
15
+ id: "codex",
16
+ label: "Codex"
17
+ },
18
+ {
19
+ id: "cursor",
20
+ label: "Cursor"
21
+ }
22
+ ];
23
+ const ONBOARDING_AGENT_ALL_OPTION = {
24
+ id: "all",
25
+ label: "All (recommended)"
26
+ };
27
+ const ONBOARDING_CAPTURE_OPTIONS = [{
28
+ id: "all",
29
+ label: "All contexts (recommended)"
30
+ }, {
31
+ id: "future_only",
32
+ label: "Just from now to the future"
33
+ }];
34
+ function uniqueStrings(values) {
35
+ return [...new Set(values.filter(Boolean))];
36
+ }
37
+ function normalizeCaptureAgents(raw) {
38
+ const normalized = uniqueStrings((Array.isArray(raw) ? raw : typeof raw === "string" ? raw.split(/[,\n]/) : []).map((value) => String(value ?? "").trim().toLowerCase()).filter((value) => PRIMARY_CAPTURE_AGENTS.includes(value)));
39
+ return normalized.length > 0 ? normalized : PRIMARY_CAPTURE_AGENTS.slice();
40
+ }
41
+ function isPrimaryAgentSourceEnabled(sourceName, captureAgents) {
42
+ const normalizedSource = String(sourceName ?? "").trim().toLowerCase();
43
+ if (!PRIMARY_CAPTURE_AGENTS.includes(normalizedSource)) return true;
44
+ return normalizeCaptureAgents(captureAgents).includes(normalizedSource);
45
+ }
46
+ function normalizeProjectPaths(raw) {
47
+ if (raw === void 0 || raw === null) return [];
48
+ return uniqueStrings((Array.isArray(raw) ? raw : [raw]).flatMap((value) => String(value ?? "").split(/[,\n]/)).map((value) => value.trim()).filter(Boolean).map((value) => path.resolve(value)));
49
+ }
50
+ function matchesConfiguredProjectPath(projectPaths, candidatePath) {
51
+ const configured = normalizeProjectPaths(projectPaths);
52
+ if (configured.length === 0) return true;
53
+ const candidate = String(candidatePath ?? "").trim();
54
+ if (!candidate) return false;
55
+ const resolvedCandidate = path.resolve(candidate);
56
+ return configured.some((projectPath) => resolvedCandidate === projectPath || resolvedCandidate.startsWith(`${projectPath}${path.sep}`));
57
+ }
58
+ function normalizeAutoCaptureMode(raw) {
59
+ const value = String(raw ?? "all").trim().toLowerCase();
60
+ if (value === "future_only" || value === "future" || value === "new_only") return "future_only";
61
+ return "all";
62
+ }
63
+ function bootstrapModeFromAutoCaptureMode(raw) {
64
+ return normalizeAutoCaptureMode(raw) === "future_only" ? "new_only" : "all";
65
+ }
66
+ function buildOnboardingConfigPatch({ captureAgents = PRIMARY_CAPTURE_AGENTS, projectPaths = [], autoCaptureMode = "all" } = {}) {
67
+ return {
68
+ captureAgents: normalizeCaptureAgents(captureAgents),
69
+ projectPaths: normalizeProjectPaths(projectPaths),
70
+ bootstrapMode: bootstrapModeFromAutoCaptureMode(autoCaptureMode)
71
+ };
72
+ }
73
+
74
+ //#endregion
75
+ export { isPrimaryAgentSourceEnabled as a, normalizeProjectPaths as c, buildOnboardingConfigPatch as i, ONBOARDING_AGENT_OPTIONS as n, matchesConfiguredProjectPath as o, ONBOARDING_CAPTURE_OPTIONS as r, normalizeCaptureAgents as s, ONBOARDING_AGENT_ALL_OPTION as t };
76
+ //# sourceMappingURL=onboarding-preferences-Alhblobi.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding-preferences-Alhblobi.mjs","names":[],"sources":["../../sync/src/onboarding-preferences.mjs"],"sourcesContent":["import path from \"node:path\";\n\nimport { normalizeBootstrapMode } from \"./protocol.mjs\";\n\nexport const PRIMARY_CAPTURE_AGENTS = [\"claude\", \"codex\", \"cursor\"];\n\n// concrete agents the user can pick in the wizard (order = display order)\nexport const ONBOARDING_AGENT_OPTIONS = [\n { id: \"claude\", label: \"Claude Code\" },\n { id: \"codex\", label: \"Codex\" },\n { id: \"cursor\", label: \"Cursor\" },\n];\n\n// meta row shown first — a shortcut that toggles all concrete agents at once\nexport const ONBOARDING_AGENT_ALL_OPTION = { id: \"all\", label: \"All (recommended)\" };\n\nexport const ONBOARDING_CAPTURE_OPTIONS = [\n { id: \"all\", label: \"All contexts (recommended)\" },\n { id: \"future_only\", label: \"Just from now to the future\" },\n];\n\nfunction uniqueStrings(values) {\n return [...new Set(values.filter(Boolean))];\n}\n\nexport function normalizeCaptureAgents(raw) {\n const values = Array.isArray(raw)\n ? raw\n : typeof raw === \"string\"\n ? raw.split(/[,\\n]/)\n : [];\n\n const normalized = uniqueStrings(\n values\n .map((value) => String(value ?? \"\").trim().toLowerCase())\n .filter((value) => PRIMARY_CAPTURE_AGENTS.includes(value))\n );\n\n return normalized.length > 0 ? normalized : PRIMARY_CAPTURE_AGENTS.slice();\n}\n\nexport function isPrimaryAgentSourceEnabled(sourceName, captureAgents) {\n const normalizedSource = String(sourceName ?? \"\").trim().toLowerCase();\n if (!PRIMARY_CAPTURE_AGENTS.includes(normalizedSource)) return true;\n return normalizeCaptureAgents(captureAgents).includes(normalizedSource);\n}\n\nexport function normalizeProjectPaths(raw) {\n if (raw === undefined || raw === null) return [];\n\n const values = Array.isArray(raw) ? raw : [raw];\n const normalized = uniqueStrings(\n values\n .flatMap((value) => String(value ?? \"\").split(/[,\\n]/))\n .map((value) => value.trim())\n .filter(Boolean)\n .map((value) => path.resolve(value))\n );\n\n return normalized;\n}\n\nexport function matchesConfiguredProjectPath(projectPaths, candidatePath) {\n const configured = normalizeProjectPaths(projectPaths);\n if (configured.length === 0) return true;\n\n const candidate = String(candidatePath ?? \"\").trim();\n if (!candidate) return false;\n\n const resolvedCandidate = path.resolve(candidate);\n return configured.some((projectPath) => (\n resolvedCandidate === projectPath ||\n resolvedCandidate.startsWith(`${projectPath}${path.sep}`)\n ));\n}\n\nexport function normalizeAutoCaptureMode(raw) {\n const value = String(raw ?? \"all\").trim().toLowerCase();\n if (value === \"future_only\" || value === \"future\" || value === \"new_only\") return \"future_only\";\n return \"all\";\n}\n\nexport function bootstrapModeFromAutoCaptureMode(raw) {\n return normalizeAutoCaptureMode(raw) === \"future_only\" ? \"new_only\" : \"all\";\n}\n\nexport function autoCaptureModeFromBootstrapMode(raw) {\n return normalizeBootstrapMode(raw) === \"new_only\" ? \"future_only\" : \"all\";\n}\n\n// projectPaths: empty array means \"capture every project\"; non-empty scopes capture\n// to those paths. There is no separate projectScope input — the list IS the scope.\nexport function buildOnboardingConfigPatch({\n captureAgents = PRIMARY_CAPTURE_AGENTS,\n projectPaths = [],\n autoCaptureMode = \"all\",\n} = {}) {\n return {\n captureAgents: normalizeCaptureAgents(captureAgents),\n projectPaths: normalizeProjectPaths(projectPaths),\n bootstrapMode: bootstrapModeFromAutoCaptureMode(autoCaptureMode),\n };\n}\n"],"mappings":";;;AAIA,MAAa,yBAAyB;CAAC;CAAU;CAAS;CAAS;AAGnE,MAAa,2BAA2B;CACtC;EAAE,IAAI;EAAU,OAAO;EAAe;CACtC;EAAE,IAAI;EAAS,OAAO;EAAS;CAC/B;EAAE,IAAI;EAAU,OAAO;EAAU;CAClC;AAGD,MAAa,8BAA8B;CAAE,IAAI;CAAO,OAAO;CAAqB;AAEpF,MAAa,6BAA6B,CACxC;CAAE,IAAI;CAAO,OAAO;CAA8B,EAClD;CAAE,IAAI;CAAe,OAAO;CAA+B,CAC5D;AAED,SAAS,cAAc,QAAQ;AAC7B,QAAO,CAAC,GAAG,IAAI,IAAI,OAAO,OAAO,QAAQ,CAAC,CAAC;;AAG7C,SAAgB,uBAAuB,KAAK;CAO1C,MAAM,aAAa,eANJ,MAAM,QAAQ,IAAI,GAC7B,MACA,OAAO,QAAQ,WACb,IAAI,MAAM,QAAQ,GAClB,EAAE,EAIH,KAAK,UAAU,OAAO,SAAS,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CACxD,QAAQ,UAAU,uBAAuB,SAAS,MAAM,CAAC,CAC7D;AAED,QAAO,WAAW,SAAS,IAAI,aAAa,uBAAuB,OAAO;;AAG5E,SAAgB,4BAA4B,YAAY,eAAe;CACrE,MAAM,mBAAmB,OAAO,cAAc,GAAG,CAAC,MAAM,CAAC,aAAa;AACtE,KAAI,CAAC,uBAAuB,SAAS,iBAAiB,CAAE,QAAO;AAC/D,QAAO,uBAAuB,cAAc,CAAC,SAAS,iBAAiB;;AAGzE,SAAgB,sBAAsB,KAAK;AACzC,KAAI,QAAQ,UAAa,QAAQ,KAAM,QAAO,EAAE;AAWhD,QARmB,eADJ,MAAM,QAAQ,IAAI,GAAG,MAAM,CAAC,IAAI,EAG1C,SAAS,UAAU,OAAO,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,CACtD,KAAK,UAAU,MAAM,MAAM,CAAC,CAC5B,OAAO,QAAQ,CACf,KAAK,UAAU,KAAK,QAAQ,MAAM,CAAC,CACvC;;AAKH,SAAgB,6BAA6B,cAAc,eAAe;CACxE,MAAM,aAAa,sBAAsB,aAAa;AACtD,KAAI,WAAW,WAAW,EAAG,QAAO;CAEpC,MAAM,YAAY,OAAO,iBAAiB,GAAG,CAAC,MAAM;AACpD,KAAI,CAAC,UAAW,QAAO;CAEvB,MAAM,oBAAoB,KAAK,QAAQ,UAAU;AACjD,QAAO,WAAW,MAAM,gBACtB,sBAAsB,eACtB,kBAAkB,WAAW,GAAG,cAAc,KAAK,MAAM,CACzD;;AAGJ,SAAgB,yBAAyB,KAAK;CAC5C,MAAM,QAAQ,OAAO,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa;AACvD,KAAI,UAAU,iBAAiB,UAAU,YAAY,UAAU,WAAY,QAAO;AAClF,QAAO;;AAGT,SAAgB,iCAAiC,KAAK;AACpD,QAAO,yBAAyB,IAAI,KAAK,gBAAgB,aAAa;;AASxE,SAAgB,2BAA2B,EACzC,gBAAgB,wBAChB,eAAe,EAAE,EACjB,kBAAkB,UAChB,EAAE,EAAE;AACN,QAAO;EACL,eAAe,uBAAuB,cAAc;EACpD,cAAc,sBAAsB,aAAa;EACjD,eAAe,iCAAiC,gBAAgB;EACjE"}