@doist/outline-cli 1.0.0 → 1.0.2

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 (63) hide show
  1. package/CHANGELOG.md +21 -9
  2. package/README.md +2 -0
  3. package/dist/commands/auth.d.ts +1 -1
  4. package/dist/commands/auth.js +45 -48
  5. package/dist/commands/auth.js.map +1 -1
  6. package/dist/commands/collection.d.ts +1 -1
  7. package/dist/commands/collection.js +41 -55
  8. package/dist/commands/collection.js.map +1 -1
  9. package/dist/commands/document.d.ts +1 -1
  10. package/dist/commands/document.js +68 -86
  11. package/dist/commands/document.js.map +1 -1
  12. package/dist/commands/search.d.ts +1 -1
  13. package/dist/commands/search.js +15 -15
  14. package/dist/commands/search.js.map +1 -1
  15. package/dist/commands/skill.d.ts +1 -1
  16. package/dist/commands/skill.js +26 -28
  17. package/dist/commands/skill.js.map +1 -1
  18. package/dist/index.js +11 -11
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/api.js +29 -25
  21. package/dist/lib/api.js.map +1 -1
  22. package/dist/lib/auth.d.ts +1 -1
  23. package/dist/lib/auth.js +13 -13
  24. package/dist/lib/auth.js.map +1 -1
  25. package/dist/lib/markdown.js +2 -2
  26. package/dist/lib/markdown.js.map +1 -1
  27. package/dist/lib/oauth-server.js +37 -37
  28. package/dist/lib/oauth-server.js.map +1 -1
  29. package/dist/lib/oauth.js +17 -13
  30. package/dist/lib/oauth.js.map +1 -1
  31. package/dist/lib/output.d.ts +1 -1
  32. package/dist/lib/output.js +3 -3
  33. package/dist/lib/output.js.map +1 -1
  34. package/dist/lib/pkce.js +3 -7
  35. package/dist/lib/pkce.js.map +1 -1
  36. package/dist/lib/refs.js +10 -12
  37. package/dist/lib/refs.js.map +1 -1
  38. package/dist/lib/skills/content.d.ts +1 -1
  39. package/dist/lib/skills/content.js +2 -2
  40. package/dist/lib/skills/content.js.map +1 -1
  41. package/dist/lib/skills/create-installer.d.ts +2 -1
  42. package/dist/lib/skills/create-installer.js +10 -10
  43. package/dist/lib/skills/create-installer.js.map +1 -1
  44. package/dist/lib/skills/index.d.ts +2 -2
  45. package/dist/lib/skills/index.js +20 -20
  46. package/dist/lib/skills/index.js.map +1 -1
  47. package/dist/lib/skills/update-installed.js +1 -1
  48. package/dist/lib/skills/update-installed.js.map +1 -1
  49. package/dist/lib/spinner.d.ts +1 -1
  50. package/dist/lib/spinner.js +5 -7
  51. package/dist/lib/spinner.js.map +1 -1
  52. package/dist/postinstall.js +14 -1
  53. package/dist/postinstall.js.map +1 -1
  54. package/dist/transport/fetch-with-retry.d.ts +15 -0
  55. package/dist/transport/fetch-with-retry.js +92 -0
  56. package/dist/transport/fetch-with-retry.js.map +1 -0
  57. package/dist/transport/http-dispatcher.d.ts +3 -0
  58. package/dist/transport/http-dispatcher.js +34 -0
  59. package/dist/transport/http-dispatcher.js.map +1 -0
  60. package/package.json +14 -4
  61. package/scripts/check-skill-sync.js +40 -0
  62. package/scripts/postinstall.js +5 -5
  63. package/scripts/sync-skill.js +30 -0
@@ -1 +1 @@
1
- {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/lib/refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAqBrC;;GAEG;AACH,SAAS,MAAM,CAAC,KAAa;IACzB,OAAO,iEAAiE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AACxF,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAa;IAC9B,cAAc;IACd,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,IAAI,CAAA;IACf,CAAC;IACD,sEAAsE;IACtE,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,IAAI,CAAA;IACf,CAAC;IACD,OAAO,KAAK,CAAA;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,KAAa;IAC5C,uBAAuB;IACvB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,kDAAkD;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACjD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACpC,iEAAiE;IACjE,6DAA6D;IAC7D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC5C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAA;IAC1B,OAAO,KAAK,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACtB,KAAU,EACV,OAA4B,EAC5B,YAAiC,EACjC,GAAG,GAAG,CAAC;IAEP,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACvC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,OAAO,CAAC,IAAI,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACjG,CAAC;AAYD;;GAEG;AACH,KAAK,UAAU,UAAU,CAA2B,OAA6B;IAC7E,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,GACzF,OAAO,CAAA;IAEX,oDAAoD;IACpD,sDAAsD;IACtD,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IACxE,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,WAAW,CAAC,CAAA;QACvC,CAAC;QAAC,MAAM,CAAC;YACL,2DAA2D;QAC/D,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;IAElC,2CAA2C;IAC3C,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAA;IAErF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;IAC1B,CAAC;IAED,uCAAuC;IACvC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAG,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC1E,MAAM,IAAI,KAAK,CACX,aAAa,UAAU,eAAe,GAAG,4CAA4C,WAAW,EAAE,CACrG,CAAA;IACL,CAAC;IAED,oBAAoB;IACpB,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE7F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,iBAAiB,CAAC,cAAc,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;QAC5E,MAAM,IAAI,KAAK,CAAC,aAAa,UAAU,eAAe,GAAG,qBAAqB,WAAW,EAAE,CAAC,CAAA;IAChG,CAAC;IAED,mBAAmB;IACnB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,gBAAgB,GAAG,GAAG,CAAC,CAAA;AACxD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB;IAC5B,MAAM,OAAO,GAAe,EAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,GAAG,CAAA;IACjB,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAa,gBAAgB,EAAE;YAC5D,KAAK;YACL,MAAM;SACT,CAAC,CAAA;QACF,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QACrB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACtB,MAAK;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CAAA;IACnB,CAAC;IAED,OAAO,OAAO,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB;IAC9B,MAAM,cAAc,GAAiB,EAAE,CAAA;IACvC,MAAM,KAAK,GAAG,GAAG,CAAA;IACjB,IAAI,MAAM,GAAG,CAAC,CAAA;IAEd,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAe,kBAAkB,EAAE;YAChE,KAAK;YACL,MAAM;SACT,CAAC,CAAA;QACF,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACtB,MAAK;QACT,CAAC;QACD,MAAM,IAAI,KAAK,CAAA;IACnB,CAAC;IAED,OAAO,cAAc,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAW;IAChD,OAAO,UAAU,CAAW;QACxB,GAAG;QACH,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAW,gBAAgB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACrE,OAAO,IAAI,CAAA;QACf,CAAC;QACD,iBAAiB,EAAE,iBAAiB;QACpC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;QAC3B,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK;QAChC,UAAU,EAAE,UAAU;QACtB,aAAa,EAAE,IAAI;KACtB,CAAC,CAAA;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAW;IAC/C,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAA;IACzC,OAAO,GAAG,CAAC,EAAE,CAAA;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,GAAW;IAClD,OAAO,UAAU,CAAa;QAC1B,GAAG;QACH,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;YACpB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,UAAU,CAAa,kBAAkB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;YACzE,OAAO,IAAI,CAAA;QACf,CAAC;QACD,iBAAiB,EAAE,mBAAmB;QACtC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI;QAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE;QAC7B,UAAU,EAAE,YAAY;QACxB,aAAa,EAAE,KAAK;KACvB,CAAC,CAAA;AACN,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,GAAW;IACjD,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAC,EAAE,CAAA;AACjB,CAAC"}
@@ -1,3 +1,3 @@
1
- export declare const SKILL_NAME = "outline";
1
+ export declare const SKILL_NAME = "outline-cli";
2
2
  export declare const SKILL_DESCRIPTION = "Search and manage Outline wiki documents and collections via the ol CLI";
3
3
  export declare const SKILL_CONTENT = "# Outline CLI (ol)\n\nUse this skill when the user wants to interact with their Outline wiki/knowledge base.\n\n## Quick Reference\n\n- `ol search \"query\"` - Search documents\n- `ol doc list` - List documents\n- `ol doc get <id>` - Read a document\n- `ol doc open <id>` - Open document in browser\n- `ol doc create --title \"Title\" --collection <id>` - Create document\n- `ol col list` - List collections\n\n## Output Formats\n\nAll list commands support:\n- `--json` - JSON output (essential fields)\n- `--ndjson` - Newline-delimited JSON (streaming)\n- `--full` - Include all fields in JSON\n\n## Document References\n\nDocuments can be referenced by:\n- URL ID (the slug suffix after the last hyphen)\n- Full Outline URL (auto-extracted)\n- Document ID\n\n## Commands\n\n### Search\n```bash\nol search \"query\"\nol search \"query\" --limit 10\nol search \"query\" --collection <id>\nol search \"query\" --status published\nol search \"query\" --json\n```\n\n### Documents\n```bash\nol doc list --collection <id> --limit 25\nol doc list --sort title --direction ASC\nol doc get <id> # Rendered markdown\nol doc get <id> --raw # Raw markdown\nol doc get <id> --json\nol doc open <id> # Open in browser\nol doc create --title \"Title\" --collection <id> --text \"# Content\"\nol doc create --title \"Title\" --collection <id> --file ./doc.md\nol doc update <id> --title \"New Title\"\nol doc update <id> --file ./updated.md\nol doc move <id> --collection <target-id>\nol doc archive <id>\nol doc unarchive <id>\nol doc delete <id> --confirm\n```\n\n### Collections\n```bash\nol col list\nol col get <id>\nol col create --name \"Name\" --description \"Desc\" --color \"#hex\"\nol col create --name \"Private\" --private\nol col update <id> --name \"New Name\"\nol col delete <id> --confirm\n```\n\n### Authentication\n```bash\nol auth login # Configure API token and base URL\nol auth status # Show current auth state\nol auth logout # Clear saved credentials\n```\n\n## Examples\n\n### Find and read a document\n```bash\nol search \"onboarding\" --json | jq '.[0].document.urlId'\nol doc get <urlId>\n```\n\n### Create a document from a file\n```bash\nol doc create --title \"Meeting Notes\" --collection <id> --file ./notes.md --publish\n```\n\n### List all collections and their documents\n```bash\nol col list --json\nol doc list --collection <id> --sort title --direction ASC\n```\n\n### Bulk export with ndjson\n```bash\nol doc list --ndjson --full | jq -r '.title'\n```\n";
@@ -1,5 +1,5 @@
1
- export const SKILL_NAME = "outline";
2
- export const SKILL_DESCRIPTION = "Search and manage Outline wiki documents and collections via the ol CLI";
1
+ export const SKILL_NAME = 'outline-cli';
2
+ export const SKILL_DESCRIPTION = 'Search and manage Outline wiki documents and collections via the ol CLI';
3
3
  export const SKILL_CONTENT = `# Outline CLI (ol)
4
4
 
5
5
  Use this skill when the user wants to interact with their Outline wiki/knowledge base.
@@ -1 +1 @@
1
- {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAC7B,yEAAyE,CAAC;AAE3E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgG5B,CAAC"}
1
+ {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/lib/skills/content.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAC1B,yEAAyE,CAAA;AAE7E,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgG5B,CAAA"}
@@ -1,8 +1,9 @@
1
- import type { SkillInstaller } from "./types.js";
1
+ import type { SkillInstaller } from './types.js';
2
2
  interface InstallerConfig {
3
3
  name: string;
4
4
  description: string;
5
5
  dirName: string;
6
6
  }
7
+ export declare function generateSkillFile(): string;
7
8
  export declare function createInstaller(config: InstallerConfig): SkillInstaller;
8
9
  export {};
@@ -1,11 +1,11 @@
1
- import { access, mkdir, readdir, rmdir, unlink, writeFile, } from "node:fs/promises";
2
- import { homedir } from "node:os";
3
- import { dirname, join } from "node:path";
4
- import { SKILL_CONTENT, SKILL_DESCRIPTION, SKILL_NAME } from "./content.js";
5
- function generateSkillFile() {
1
+ import { access, mkdir, readdir, rmdir, unlink, writeFile } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import { dirname, join } from 'node:path';
4
+ import { SKILL_CONTENT, SKILL_DESCRIPTION, SKILL_NAME } from './content.js';
5
+ export function generateSkillFile() {
6
6
  const frontmatter = `---
7
7
  name: ${SKILL_NAME}
8
- description: ${SKILL_DESCRIPTION}
8
+ description: ${JSON.stringify(SKILL_DESCRIPTION)}
9
9
  ---
10
10
 
11
11
  `;
@@ -14,7 +14,7 @@ description: ${SKILL_DESCRIPTION}
14
14
  export function createInstaller(config) {
15
15
  function getInstallPath(local) {
16
16
  const base = local ? process.cwd() : homedir();
17
- return join(base, config.dirName, "skills", "outline-cli", "SKILL.md");
17
+ return join(base, config.dirName, 'skills', SKILL_NAME, 'SKILL.md');
18
18
  }
19
19
  return {
20
20
  name: config.name,
@@ -33,7 +33,7 @@ export function createInstaller(config) {
33
33
  }
34
34
  },
35
35
  async install(local, force) {
36
- if (!local && config.dirName !== ".agents") {
36
+ if (!local && config.dirName !== '.agents') {
37
37
  const agentDir = join(homedir(), config.dirName);
38
38
  try {
39
39
  await access(agentDir);
@@ -48,11 +48,11 @@ export function createInstaller(config) {
48
48
  throw new Error(`Skill file already exists at ${filepath}. Use --force to overwrite.`);
49
49
  }
50
50
  await mkdir(dirname(filepath), { recursive: true });
51
- await writeFile(filepath, this.generateContent(), "utf-8");
51
+ await writeFile(filepath, this.generateContent(), 'utf-8');
52
52
  },
53
53
  async update(local) {
54
54
  const filepath = getInstallPath(local);
55
- await writeFile(filepath, this.generateContent(), "utf-8");
55
+ await writeFile(filepath, this.generateContent(), 'utf-8');
56
56
  },
57
57
  async uninstall(local) {
58
58
  const filepath = getInstallPath(local);
@@ -1 +1 @@
1
- {"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-installer.js","sourceRoot":"","sources":["../../../src/lib/skills/create-installer.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { SkillInstaller } from "./types.js";
1
+ import type { SkillInstaller } from './types.js';
2
2
  export declare const skillInstallers: Record<string, SkillInstaller>;
3
3
  export declare function getInstaller(agent: string): SkillInstaller | undefined;
4
4
  export declare function listAgents(): string[];
5
- export type { SkillInstaller } from "./types.js";
5
+ export type { SkillInstaller } from './types.js';
@@ -1,34 +1,34 @@
1
- import { createInstaller } from "./create-installer.js";
1
+ import { createInstaller } from './create-installer.js';
2
2
  export const skillInstallers = {
3
- "claude-code": createInstaller({
4
- name: "claude-code",
5
- description: "Claude Code skill for Outline CLI",
6
- dirName: ".claude",
3
+ 'claude-code': createInstaller({
4
+ name: 'claude-code',
5
+ description: 'Claude Code skill for Outline CLI',
6
+ dirName: '.claude',
7
7
  }),
8
8
  codex: createInstaller({
9
- name: "codex",
10
- description: "Codex skill for Outline CLI",
11
- dirName: ".codex",
9
+ name: 'codex',
10
+ description: 'Codex skill for Outline CLI',
11
+ dirName: '.codex',
12
12
  }),
13
13
  cursor: createInstaller({
14
- name: "cursor",
15
- description: "Cursor skill for Outline CLI",
16
- dirName: ".cursor",
14
+ name: 'cursor',
15
+ description: 'Cursor skill for Outline CLI',
16
+ dirName: '.cursor',
17
17
  }),
18
18
  gemini: createInstaller({
19
- name: "gemini",
20
- description: "Gemini CLI skill for Outline CLI",
21
- dirName: ".gemini",
19
+ name: 'gemini',
20
+ description: 'Gemini CLI skill for Outline CLI',
21
+ dirName: '.gemini',
22
22
  }),
23
23
  pi: createInstaller({
24
- name: "pi",
25
- description: "Pi skill for Outline CLI",
26
- dirName: ".pi",
24
+ name: 'pi',
25
+ description: 'Pi skill for Outline CLI',
26
+ dirName: '.pi',
27
27
  }),
28
28
  universal: createInstaller({
29
- name: "universal",
30
- description: "Universal agent skill for Outline CLI",
31
- dirName: ".agents",
29
+ name: 'universal',
30
+ description: 'Universal agent skill for Outline CLI',
31
+ dirName: '.agents',
32
32
  }),
33
33
  };
34
34
  export function getInstaller(agent) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC9D,aAAa,EAAE,eAAe,CAAC;QAC9B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,SAAS;KAClB,CAAC;IACF,KAAK,EAAE,eAAe,CAAC;QACtB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,QAAQ;KACjB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,SAAS;KAClB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,SAAS;KAClB,CAAC;IACF,EAAE,EAAE,eAAe,CAAC;QACnB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,KAAK;KACd,CAAC;IACF,SAAS,EAAE,eAAe,CAAC;QAC1B,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,SAAS;KAClB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAAa;IACzC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,UAAU;IACzB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,MAAM,CAAC,MAAM,eAAe,GAAmC;IAC3D,aAAa,EAAE,eAAe,CAAC;QAC3B,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,mCAAmC;QAChD,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,KAAK,EAAE,eAAe,CAAC;QACnB,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;QAC1C,OAAO,EAAE,QAAQ;KACpB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8BAA8B;QAC3C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,MAAM,EAAE,eAAe,CAAC;QACpB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,kCAAkC;QAC/C,OAAO,EAAE,SAAS;KACrB,CAAC;IACF,EAAE,EAAE,eAAe,CAAC;QAChB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,KAAK;KACjB,CAAC;IACF,SAAS,EAAE,eAAe,CAAC;QACvB,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,uCAAuC;QACpD,OAAO,EAAE,SAAS;KACrB,CAAC;CACL,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACtC,OAAO,eAAe,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,UAAU;IACtB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;AACvC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { skillInstallers } from "./index.js";
1
+ import { skillInstallers } from './index.js';
2
2
  export async function updateAllInstalledSkills(local) {
3
3
  const updated = [];
4
4
  const skipped = [];
@@ -1 +1 @@
1
- {"version":3,"file":"update-installed.js","sourceRoot":"","sources":["../../../src/lib/skills/update-installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQ7C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC7C,KAAc;IAEd,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QACjE,IAAI,CAAC;YACJ,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"update-installed.js","sourceRoot":"","sources":["../../../src/lib/skills/update-installed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ5C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,KAAc;IACzD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;YACtD,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACtB,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACL,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAA;AACvC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export interface SpinnerOptions {
2
2
  text: string;
3
- color?: "green" | "yellow" | "blue" | "red";
3
+ color?: 'green' | 'yellow' | 'blue' | 'red';
4
4
  noSpinner?: boolean;
5
5
  }
6
6
  export declare class LoadingSpinner {
@@ -1,14 +1,12 @@
1
- import chalk from "chalk";
2
- import yoctoSpinner from "yocto-spinner";
1
+ import chalk from 'chalk';
2
+ import yoctoSpinner from 'yocto-spinner';
3
3
  function shouldDisableSpinner() {
4
- if (process.env.OL_SPINNER === "false")
4
+ if (process.env.OL_SPINNER === 'false')
5
5
  return true;
6
6
  if (process.env.CI)
7
7
  return true;
8
8
  const args = process.argv;
9
- if (args.includes("--json") ||
10
- args.includes("--ndjson") ||
11
- args.includes("--no-spinner")) {
9
+ if (args.includes('--json') || args.includes('--ndjson') || args.includes('--no-spinner')) {
12
10
  return true;
13
11
  }
14
12
  return false;
@@ -19,7 +17,7 @@ export class LoadingSpinner {
19
17
  if (!process.stdout.isTTY || options.noSpinner || shouldDisableSpinner()) {
20
18
  return this;
21
19
  }
22
- const colorFn = chalk[options.color || "blue"];
20
+ const colorFn = chalk[options.color || 'blue'];
23
21
  this.spinnerInstance = yoctoSpinner({ text: colorFn(options.text) });
24
22
  this.spinnerInstance.start();
25
23
  return this;
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,YAAY,MAAM,eAAe,CAAC;AAQzC,SAAS,oBAAoB;IAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAEhC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IACC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAC5B,CAAC;QACF,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,OAAO,cAAc;IAClB,eAAe,GAA2C,IAAI,CAAC;IAEvE,KAAK,CAAC,OAAuB;QAC5B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,oBAAoB,EAAE,EAAE,CAAC;YAC1E,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CAAC,IAAa;QACpB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,IAAI,CAAC,IAAa;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YACtE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;IAED,IAAI;QACH,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,CAAC;IACF,CAAC;CACD;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAuB,EACvB,cAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QACtC,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/lib/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,YAAY,MAAM,eAAe,CAAA;AAQxC,SAAS,oBAAoB;IACzB,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO;QAAE,OAAO,IAAI,CAAA;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,IAAI,CAAA;IAE/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;IACzB,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACxF,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,MAAM,OAAO,cAAc;IACf,eAAe,GAA2C,IAAI,CAAA;IAEtE,KAAK,CAAC,OAAuB;QACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,SAAS,IAAI,oBAAoB,EAAE,EAAE,CAAC;YACvE,OAAO,IAAI,CAAA;QACf,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,CAAA;QAC9C,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACpE,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAA;QAC5B,OAAO,IAAI,CAAA;IACf,CAAC;IAED,OAAO,CAAC,IAAa;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC/B,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAa;QACd,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YACrE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC/B,CAAC;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAA;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;QAC/B,CAAC;IACL,CAAC;CACJ;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC7B,OAAuB,EACvB,cAAgC;IAEhC,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEnD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;QACrC,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,MAAM,CAAA;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,MAAM,KAAK,CAAA;IACf,CAAC;AACL,CAAC"}
@@ -1,3 +1,16 @@
1
- import { updateAllInstalledSkills } from "./lib/skills/update-installed.js";
1
+ import { rm } from 'node:fs/promises';
2
+ import { homedir } from 'node:os';
3
+ import { join } from 'node:path';
4
+ import { updateAllInstalledSkills } from './lib/skills/update-installed.js';
5
+ const AGENT_DIRS = ['.claude', '.codex', '.cursor', '.gemini', '.pi', '.agents'];
6
+ async function removeOldSkillDirs() {
7
+ const home = homedir();
8
+ await Promise.all(AGENT_DIRS.map((dir) => rm(join(home, dir, 'skills', 'outline'), { recursive: true, force: true })));
9
+ }
10
+ // TODO: Remove after a few releases once all users have upgraded.
11
+ // The skill was previously installed under "outline" but was renamed to "outline-cli"
12
+ // to match the convention used by the other Doist CLIs. This cleans up the old
13
+ // directories so users don't end up with duplicate skills.
14
+ removeOldSkillDirs().catch(() => { });
2
15
  updateAllInstalledSkills(false).catch(() => { });
3
16
  //# sourceMappingURL=postinstall.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,wBAAwB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"postinstall.js","sourceRoot":"","sources":["../src/postinstall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAE3E,MAAM,UAAU,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;AAEhF,KAAK,UAAU,kBAAkB;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,MAAM,OAAO,CAAC,GAAG,CACb,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACnB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAC7E,CACJ,CAAA;AACL,CAAC;AAED,kEAAkE;AAClE,sFAAsF;AACtF,+EAA+E;AAC/E,2DAA2D;AAC3D,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;AAEpC,wBAAwB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ interface RetryConfig {
2
+ retries: number;
3
+ retryCondition: (error: Error) => boolean;
4
+ retryDelay: (retryNumber: number) => number;
5
+ }
6
+ interface FetchOptions extends RequestInit {
7
+ timeout?: number;
8
+ }
9
+ interface FetchWithRetryArgs {
10
+ url: RequestInfo | URL;
11
+ options?: FetchOptions;
12
+ retryConfig?: Partial<RetryConfig>;
13
+ }
14
+ export declare function fetchWithRetry(args: FetchWithRetryArgs): Promise<Response>;
15
+ export {};
@@ -0,0 +1,92 @@
1
+ import { getDefaultDispatcher } from './http-dispatcher.js';
2
+ const DEFAULT_RETRY_CONFIG = {
3
+ retries: 0,
4
+ retryCondition: isNetworkError,
5
+ retryDelay: () => 0,
6
+ };
7
+ const TIMEOUT_ERROR_NAME = 'TimeoutError';
8
+ function createTimeoutError(timeoutMs) {
9
+ const error = new Error(`Request timeout after ${timeoutMs}ms`);
10
+ error.name = TIMEOUT_ERROR_NAME;
11
+ return error;
12
+ }
13
+ function isNetworkError(error) {
14
+ return error instanceof TypeError || error.name === TIMEOUT_ERROR_NAME;
15
+ }
16
+ function wait(delayMs) {
17
+ return new Promise((resolve) => setTimeout(resolve, delayMs));
18
+ }
19
+ function createTimeoutSignal(timeoutMs, existingSignal) {
20
+ const controller = new AbortController();
21
+ const timeoutId = setTimeout(() => {
22
+ controller.abort(createTimeoutError(timeoutMs));
23
+ }, timeoutMs);
24
+ let abortHandler;
25
+ function clear() {
26
+ clearTimeout(timeoutId);
27
+ if (existingSignal && abortHandler) {
28
+ existingSignal.removeEventListener('abort', abortHandler);
29
+ }
30
+ }
31
+ if (existingSignal) {
32
+ if (existingSignal.aborted) {
33
+ clearTimeout(timeoutId);
34
+ controller.abort(existingSignal.reason);
35
+ }
36
+ else {
37
+ abortHandler = () => {
38
+ clearTimeout(timeoutId);
39
+ controller.abort(existingSignal.reason);
40
+ };
41
+ existingSignal.addEventListener('abort', abortHandler, { once: true });
42
+ }
43
+ }
44
+ controller.signal.addEventListener('abort', () => {
45
+ clearTimeout(timeoutId);
46
+ });
47
+ return { signal: controller.signal, clear };
48
+ }
49
+ export async function fetchWithRetry(args) {
50
+ const { url, options = {}, retryConfig = {} } = args;
51
+ const config = { ...DEFAULT_RETRY_CONFIG, ...retryConfig };
52
+ const { timeout, signal: userSignal, ...requestOptions } = options;
53
+ let lastError;
54
+ for (let attempt = 0; attempt <= config.retries; attempt++) {
55
+ let clearTimeoutFn;
56
+ try {
57
+ let requestSignal = userSignal ?? undefined;
58
+ if (timeout && timeout > 0) {
59
+ const timeoutResult = createTimeoutSignal(timeout, requestSignal);
60
+ requestSignal = timeoutResult.signal;
61
+ clearTimeoutFn = timeoutResult.clear;
62
+ }
63
+ const fetchOptions = {
64
+ ...requestOptions,
65
+ signal: requestSignal,
66
+ };
67
+ // @ts-expect-error dispatcher is supported by Node.js fetch via Undici
68
+ fetchOptions.dispatcher = getDefaultDispatcher();
69
+ const response = await fetch(url, fetchOptions);
70
+ if (clearTimeoutFn) {
71
+ clearTimeoutFn();
72
+ }
73
+ return response;
74
+ }
75
+ catch (error) {
76
+ if (clearTimeoutFn) {
77
+ clearTimeoutFn();
78
+ }
79
+ lastError = error;
80
+ const shouldRetry = attempt < config.retries && config.retryCondition(lastError);
81
+ if (!shouldRetry) {
82
+ throw lastError;
83
+ }
84
+ const delay = config.retryDelay(attempt + 1);
85
+ if (delay > 0) {
86
+ await wait(delay);
87
+ }
88
+ }
89
+ }
90
+ throw lastError ?? new Error('Request failed after retries');
91
+ }
92
+ //# sourceMappingURL=fetch-with-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-with-retry.js","sourceRoot":"","sources":["../../src/transport/fetch-with-retry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type Dispatcher } from 'undici';
2
+ export declare function getDefaultDispatcher(): Dispatcher;
3
+ export declare function resetDefaultDispatcherForTests(): Promise<void>;
@@ -0,0 +1,34 @@
1
+ import { Agent, EnvHttpProxyAgent } from 'undici';
2
+ const KEEP_ALIVE_OPTIONS = {
3
+ keepAliveTimeout: 1,
4
+ keepAliveMaxTimeout: 1,
5
+ };
6
+ const PROXY_ENV_KEYS = ['HTTPS_PROXY', 'https_proxy', 'HTTP_PROXY', 'http_proxy'];
7
+ let defaultDispatcher;
8
+ function hasProxyEnv() {
9
+ for (const key of PROXY_ENV_KEYS) {
10
+ if (process.env[key]) {
11
+ return true;
12
+ }
13
+ }
14
+ return false;
15
+ }
16
+ function createDefaultDispatcher() {
17
+ if (hasProxyEnv()) {
18
+ return new EnvHttpProxyAgent(KEEP_ALIVE_OPTIONS);
19
+ }
20
+ return new Agent(KEEP_ALIVE_OPTIONS);
21
+ }
22
+ export function getDefaultDispatcher() {
23
+ defaultDispatcher ??= createDefaultDispatcher();
24
+ return defaultDispatcher;
25
+ }
26
+ export async function resetDefaultDispatcherForTests() {
27
+ if (!defaultDispatcher) {
28
+ return;
29
+ }
30
+ const dispatcher = defaultDispatcher;
31
+ defaultDispatcher = undefined;
32
+ await dispatcher.close();
33
+ }
34
+ //# sourceMappingURL=http-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-dispatcher.js","sourceRoot":"","sources":["../../src/transport/http-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAElE,MAAM,kBAAkB,GAAG;IACvB,gBAAgB,EAAE,CAAC;IACnB,mBAAmB,EAAE,CAAC;CACzB,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAU,CAAA;AAE1F,IAAI,iBAAyC,CAAA;AAE7C,SAAS,WAAW;IAChB,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,IAAI,CAAA;QACf,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAA;AAChB,CAAC;AAED,SAAS,uBAAuB;IAC5B,IAAI,WAAW,EAAE,EAAE,CAAC;QAChB,OAAO,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAAA;IACpD,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,oBAAoB;IAChC,iBAAiB,KAAK,uBAAuB,EAAE,CAAA;IAC/C,OAAO,iBAAiB,CAAA;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B;IAChD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACrB,OAAM;IACV,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAA;IACpC,iBAAiB,GAAG,SAAS,CAAA;IAC7B,MAAM,UAAU,CAAC,KAAK,EAAE,CAAA;AAC5B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@doist/outline-cli",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "CLI for the Outline wiki/knowledge base API",
5
5
  "type": "module",
6
6
  "bin": {
@@ -27,10 +27,15 @@
27
27
  "build": "tsc",
28
28
  "dev": "tsc --watch",
29
29
  "type-check": "tsc --noEmit",
30
- "format": "biome check --write",
30
+ "lint:check": "oxlint src",
31
+ "lint:write": "oxlint src --fix",
32
+ "format": "oxfmt",
33
+ "format:check": "oxfmt --check",
31
34
  "test": "vitest run",
32
35
  "test:watch": "vitest",
33
- "postinstall": "node scripts/postinstall.js"
36
+ "postinstall": "node scripts/postinstall.js",
37
+ "check:skill-sync": "node scripts/check-skill-sync.js",
38
+ "sync:skill": "node scripts/sync-skill.js"
34
39
  },
35
40
  "keywords": [
36
41
  "outline",
@@ -38,16 +43,19 @@
38
43
  "cli"
39
44
  ],
40
45
  "license": "MIT",
46
+ "engines": {
47
+ "node": ">=20.18.1"
48
+ },
41
49
  "dependencies": {
42
50
  "chalk": "5.6.2",
43
51
  "commander": "14.0.2",
44
52
  "marked": "15.0.12",
45
53
  "marked-terminal": "7.3.0",
46
54
  "open": "10.2.0",
55
+ "undici": "7.22.0",
47
56
  "yocto-spinner": "1.0.0"
48
57
  },
49
58
  "devDependencies": {
50
- "@biomejs/biome": "2.3.12",
51
59
  "@semantic-release/changelog": "6.0.3",
52
60
  "@semantic-release/exec": "7.1.0",
53
61
  "@semantic-release/git": "10.0.1",
@@ -56,6 +64,8 @@
56
64
  "@semantic-release/release-notes-generator": "14.1.0",
57
65
  "@types/node": "25.0.10",
58
66
  "lefthook": "2.0.15",
67
+ "oxfmt": "0.42.0",
68
+ "oxlint": "1.57.0",
59
69
  "semantic-release": "25.0.3",
60
70
  "typescript": "5.9.3",
61
71
  "vitest": "4.0.18"
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Verifies that skills/outline-cli/SKILL.md is in sync with the generated
5
+ * skill content from src/lib/skills/content.ts.
6
+ *
7
+ * Requires `npm run build` to have been run first.
8
+ */
9
+
10
+ import { readFile } from 'node:fs/promises'
11
+ import { dirname, join } from 'node:path'
12
+ import { fileURLToPath, pathToFileURL } from 'node:url'
13
+
14
+ const root = join(dirname(fileURLToPath(import.meta.url)), '..')
15
+
16
+ try {
17
+ const modulePath = pathToFileURL(join(root, 'dist/lib/skills/create-installer.js')).href
18
+ const { generateSkillFile } = await import(modulePath)
19
+ const expected = generateSkillFile()
20
+ const actual = await readFile(join(root, 'skills/outline-cli/SKILL.md'), 'utf-8')
21
+
22
+ if (actual !== expected) {
23
+ console.error(
24
+ 'ERROR: skills/outline-cli/SKILL.md is out of sync with src/lib/skills/content.ts',
25
+ )
26
+ console.error('')
27
+ console.error('To fix, run:')
28
+ console.error(' npm run build && npm run sync:skill')
29
+ process.exit(1)
30
+ }
31
+
32
+ console.log('skills/outline-cli/SKILL.md is in sync with content.ts')
33
+ } catch (err) {
34
+ if (err.code === 'ERR_MODULE_NOT_FOUND') {
35
+ console.error('ERROR: dist/ not found. Run `npm run build` first.')
36
+ } else {
37
+ console.error(err)
38
+ }
39
+ process.exit(1)
40
+ }
@@ -5,8 +5,8 @@
5
5
  * Silently succeeds when dist/ hasn't been built yet (e.g., during local development).
6
6
  */
7
7
 
8
- import("../dist/postinstall.js").catch((err) => {
9
- if (err.code !== "ERR_MODULE_NOT_FOUND") {
10
- console.error(err);
11
- }
12
- });
8
+ import('../dist/postinstall.js').catch((err) => {
9
+ if (err.code !== 'ERR_MODULE_NOT_FOUND') {
10
+ console.error(err)
11
+ }
12
+ })
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Regenerates skills/outline-cli/SKILL.md from the built skill content.
5
+ *
6
+ * Requires `npm run build` to have been run first.
7
+ */
8
+
9
+ import { mkdir, writeFile } from 'node:fs/promises'
10
+ import { dirname, join } from 'node:path'
11
+ import { fileURLToPath, pathToFileURL } from 'node:url'
12
+
13
+ const root = join(dirname(fileURLToPath(import.meta.url)), '..')
14
+
15
+ try {
16
+ const modulePath = pathToFileURL(join(root, 'dist/lib/skills/create-installer.js')).href
17
+ const { generateSkillFile } = await import(modulePath)
18
+ const content = generateSkillFile()
19
+ const skillPath = join(root, 'skills/outline-cli/SKILL.md')
20
+ await mkdir(dirname(skillPath), { recursive: true })
21
+ await writeFile(skillPath, content, 'utf-8')
22
+ console.log('skills/outline-cli/SKILL.md has been regenerated')
23
+ } catch (err) {
24
+ if (err.code === 'ERR_MODULE_NOT_FOUND') {
25
+ console.error('ERROR: dist/ not found. Run `npm run build` first.')
26
+ } else {
27
+ console.error(err)
28
+ }
29
+ process.exit(1)
30
+ }