@lore-co/cli 0.1.31 → 0.2.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 (87) hide show
  1. package/README.md +35 -3
  2. package/dist/agents.d.ts.map +1 -1
  3. package/dist/agents.js +6 -24
  4. package/dist/agents.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +38 -38
  7. package/dist/cli.js.map +1 -1
  8. package/dist/codex-hook-approval.d.ts.map +1 -1
  9. package/dist/codex-hook-approval.js +5 -4
  10. package/dist/codex-hook-approval.js.map +1 -1
  11. package/dist/demo.d.ts.map +1 -1
  12. package/dist/demo.js +3 -2
  13. package/dist/demo.js.map +1 -1
  14. package/dist/devin-cli.d.ts +1 -1
  15. package/dist/devin-cli.d.ts.map +1 -1
  16. package/dist/devin-cli.js +17 -9
  17. package/dist/devin-cli.js.map +1 -1
  18. package/dist/devin-client.d.ts +1 -1
  19. package/dist/generated-assets.d.ts +5 -5
  20. package/dist/generated-assets.d.ts.map +1 -1
  21. package/dist/generated-assets.js +5 -5
  22. package/dist/generated-assets.js.map +1 -1
  23. package/dist/github.js +1 -1
  24. package/dist/github.js.map +1 -1
  25. package/dist/handoff.d.ts.map +1 -1
  26. package/dist/handoff.js +2 -1
  27. package/dist/handoff.js.map +1 -1
  28. package/dist/invocation-health-writer.d.ts.map +1 -1
  29. package/dist/invocation-health-writer.js +14 -4
  30. package/dist/invocation-health-writer.js.map +1 -1
  31. package/dist/live.d.ts.map +1 -1
  32. package/dist/live.js +74 -11
  33. package/dist/live.js.map +1 -1
  34. package/dist/platform.d.ts +21 -0
  35. package/dist/platform.d.ts.map +1 -0
  36. package/dist/platform.js +102 -0
  37. package/dist/platform.js.map +1 -0
  38. package/dist/pty.d.ts.map +1 -1
  39. package/dist/pty.js +3 -0
  40. package/dist/pty.js.map +1 -1
  41. package/dist/recovery-cloud.d.ts.map +1 -1
  42. package/dist/recovery-cloud.js +4 -1
  43. package/dist/recovery-cloud.js.map +1 -1
  44. package/dist/recovery-codex.js +1 -1
  45. package/dist/recovery-codex.js.map +1 -1
  46. package/dist/recovery-desktop.d.ts.map +1 -1
  47. package/dist/recovery-desktop.js +3 -0
  48. package/dist/recovery-desktop.js.map +1 -1
  49. package/dist/recovery-hooks.d.ts.map +1 -1
  50. package/dist/recovery-hooks.js +12 -5
  51. package/dist/recovery-hooks.js.map +1 -1
  52. package/dist/recovery-hosts.d.ts.map +1 -1
  53. package/dist/recovery-hosts.js +10 -5
  54. package/dist/recovery-hosts.js.map +1 -1
  55. package/dist/recovery-polytoken.js +1 -1
  56. package/dist/recovery-polytoken.js.map +1 -1
  57. package/dist/recovery-remote.js +1 -1
  58. package/dist/recovery-remote.js.map +1 -1
  59. package/dist/recovery-transfer.d.ts.map +1 -1
  60. package/dist/recovery-transfer.js +8 -1
  61. package/dist/recovery-transfer.js.map +1 -1
  62. package/dist/recovery.d.ts.map +1 -1
  63. package/dist/recovery.js +12 -11
  64. package/dist/recovery.js.map +1 -1
  65. package/dist/reliability-store.d.ts.map +1 -1
  66. package/dist/reliability-store.js +20 -4
  67. package/dist/reliability-store.js.map +1 -1
  68. package/dist/self-host.d.ts +1 -1
  69. package/dist/self-host.d.ts.map +1 -1
  70. package/dist/self-host.js +3 -3
  71. package/dist/self-host.js.map +1 -1
  72. package/dist/uninstall.d.ts.map +1 -1
  73. package/dist/uninstall.js +22 -10
  74. package/dist/uninstall.js.map +1 -1
  75. package/dist/update.d.ts +1 -1
  76. package/dist/update.d.ts.map +1 -1
  77. package/dist/update.js +43 -11
  78. package/dist/update.js.map +1 -1
  79. package/dist/windows-permissions.d.ts +4 -0
  80. package/dist/windows-permissions.d.ts.map +1 -0
  81. package/dist/windows-permissions.js +45 -0
  82. package/dist/windows-permissions.js.map +1 -0
  83. package/dist/windows-pty.d.ts +3 -0
  84. package/dist/windows-pty.d.ts.map +1 -0
  85. package/dist/windows-pty.js +160 -0
  86. package/dist/windows-pty.js.map +1 -0
  87. package/package.json +6 -4
@@ -1,10 +1,10 @@
1
1
  // Generated by scripts/generate-cli-assets.mjs. Do not edit directly.
2
2
  export const GITHUB_TEMPLATE_ASSETS = {
3
- "lore-codex-review.yml": "name: Lore Codex review\nrun-name: \"Lore Codex review [${{ github.event.action }}] PR #${{ github.event.pull_request.number }} @ ${{ github.event.pull_request.head.sha }}\"\n\non:\n pull_request:\n types: [opened, synchronize, reopened, ready_for_review, labeled]\n\njobs:\n review:\n if: >-\n !github.event.pull_request.draft &&\n github.event.pull_request.head.repo.full_name == github.repository &&\n contains(github.event.pull_request.labels.*.name, 'lore:codex-review')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.1.31' }}\n outputs:\n final-message: ${{ steps.codex.outputs.final-message }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n fetch-depth: 0\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Prepare Lore review context\n env:\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github prepare-review\n --provider codex\n --event \"$GITHUB_EVENT_PATH\"\n --checkout \"$GITHUB_WORKSPACE/review\"\n --prompt-out \"$GITHUB_WORKSPACE/.lore/codex-prompt.md\"\n --metadata-out \"$GITHUB_WORKSPACE/.lore/codex-metadata.json\"\n --schema-out \"$GITHUB_WORKSPACE/.lore/review-output.schema.json\"\n\n - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n with:\n name: lore-codex-metadata\n path: .lore/codex-metadata.json\n retention-days: 1\n\n - name: Run Codex\n id: codex\n uses: openai/codex-action@52fe01ec70a42f454c9d2ebd47598f9fd6893d56 # v1.11\n with:\n openai-api-key: ${{ secrets.OPENAI_API_KEY }}\n prompt-file: .lore/codex-prompt.md\n output-schema-file: .lore/review-output.schema.json\n working-directory: review\n permission-profile: \":read-only\"\n safety-strategy: drop-sudo\n\n post:\n needs: review\n if: needs.review.outputs.final-message != ''\n runs-on: ubuntu-latest\n permissions:\n contents: read\n pull-requests: write\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.1.31' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0\n with:\n name: lore-codex-metadata\n path: .lore\n\n - name: Save review output\n env:\n CODEX_REVIEW: ${{ needs.review.outputs.final-message }}\n run: |\n mkdir -p .lore\n printf '%s' \"$CODEX_REVIEW\" > .lore/codex-output.json\n\n - name: Post or update Lore review\n env:\n GH_TOKEN: ${{ github.token }}\n run: >-\n lore github post-review\n --metadata .lore/codex-metadata.json\n --output .lore/codex-output.json\n",
4
- "lore-devin-review.yml": "name: Lore Devin review\nrun-name: \"Lore Devin review [${{ github.event.action }}] PR #${{ github.event.pull_request.number }} @ ${{ github.event.pull_request.head.sha }}\"\n\non:\n pull_request:\n types: [opened, synchronize, reopened, ready_for_review, labeled]\n\nconcurrency:\n group: lore-devin-review-${{ github.repository }}-${{ github.event.pull_request.number }}\n cancel-in-progress: true\n\njobs:\n review:\n if: >-\n !github.event.pull_request.draft &&\n github.event.pull_request.head.repo.full_name == github.repository &&\n contains(github.event.pull_request.labels.*.name, 'lore:devin-review')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n pull-requests: write\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.1.31' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n fetch-depth: 0\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Prepare Lore review context\n env:\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github prepare-review\n --provider devin\n --event \"$GITHUB_EVENT_PATH\"\n --checkout \"$GITHUB_WORKSPACE/review\"\n --prompt-out \"$GITHUB_WORKSPACE/.lore/devin-prompt.md\"\n --metadata-out \"$GITHUB_WORKSPACE/.lore/devin-metadata.json\"\n\n - name: Run Lore-enriched Devin review\n env:\n DEVIN_API_KEY: ${{ secrets.DEVIN_API_KEY }}\n DEVIN_ORG_ID: ${{ vars.DEVIN_ORG_ID }}\n run: >-\n lore devin run-review\n --prompt .lore/devin-prompt.md\n --metadata .lore/devin-metadata.json\n --output .lore/devin-output.json\n\n - name: Post or update Lore review\n env:\n GH_TOKEN: ${{ github.token }}\n run: >-\n lore github post-review\n --metadata .lore/devin-metadata.json\n --output .lore/devin-output.json\n\n - name: Clean up Devin session\n if: always()\n continue-on-error: true\n env:\n DEVIN_API_KEY: ${{ secrets.DEVIN_API_KEY }}\n DEVIN_ORG_ID: ${{ vars.DEVIN_ORG_ID }}\n run: |\n SESSION_ID=\"$(jq -r '.sessionId // empty' .lore/devin-metadata.json 2>/dev/null || true)\"\n if [ -n \"$SESSION_ID\" ]; then\n lore devin terminate --session \"$SESSION_ID\"\n fi\n",
5
- "lore-observe-correction.yml": "name: Lore review correction\nrun-name: \"Lore review correction comment #${{ github.event.comment.id }}\"\n\non:\n issue_comment:\n types: [created]\n\njobs:\n observe:\n if: >-\n github.event.issue.pull_request &&\n startsWith(github.event.comment.body, '/lore correct ')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n issues: read\n pull-requests: read\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.1.31' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Teach Lore from an authorized correction\n env:\n GH_TOKEN: ${{ github.token }}\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github observe-correction\n --event \"$GITHUB_EVENT_PATH\"\n",
3
+ "lore-codex-review.yml": "name: Lore Codex review\nrun-name: \"Lore Codex review [${{ github.event.action }}] PR #${{ github.event.pull_request.number }} @ ${{ github.event.pull_request.head.sha }}\"\n\non:\n pull_request:\n types: [opened, synchronize, reopened, ready_for_review, labeled]\n\njobs:\n review:\n if: >-\n !github.event.pull_request.draft &&\n github.event.pull_request.head.repo.full_name == github.repository &&\n contains(github.event.pull_request.labels.*.name, 'lore:codex-review')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.2.0' }}\n outputs:\n final-message: ${{ steps.codex.outputs.final-message }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n fetch-depth: 0\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Prepare Lore review context\n env:\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github prepare-review\n --provider codex\n --event \"$GITHUB_EVENT_PATH\"\n --checkout \"$GITHUB_WORKSPACE/review\"\n --prompt-out \"$GITHUB_WORKSPACE/.lore/codex-prompt.md\"\n --metadata-out \"$GITHUB_WORKSPACE/.lore/codex-metadata.json\"\n --schema-out \"$GITHUB_WORKSPACE/.lore/review-output.schema.json\"\n\n - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2\n with:\n name: lore-codex-metadata\n path: .lore/codex-metadata.json\n retention-days: 1\n\n - name: Run Codex\n id: codex\n uses: openai/codex-action@52fe01ec70a42f454c9d2ebd47598f9fd6893d56 # v1.11\n with:\n openai-api-key: ${{ secrets.OPENAI_API_KEY }}\n prompt-file: .lore/codex-prompt.md\n output-schema-file: .lore/review-output.schema.json\n working-directory: review\n permission-profile: \":read-only\"\n safety-strategy: drop-sudo\n\n post:\n needs: review\n if: needs.review.outputs.final-message != ''\n runs-on: ubuntu-latest\n permissions:\n contents: read\n pull-requests: write\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.2.0' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0\n with:\n name: lore-codex-metadata\n path: .lore\n\n - name: Save review output\n env:\n CODEX_REVIEW: ${{ needs.review.outputs.final-message }}\n run: |\n mkdir -p .lore\n printf '%s' \"$CODEX_REVIEW\" > .lore/codex-output.json\n\n - name: Post or update Lore review\n env:\n GH_TOKEN: ${{ github.token }}\n run: >-\n lore github post-review\n --metadata .lore/codex-metadata.json\n --output .lore/codex-output.json\n",
4
+ "lore-devin-review.yml": "name: Lore Devin review\nrun-name: \"Lore Devin review [${{ github.event.action }}] PR #${{ github.event.pull_request.number }} @ ${{ github.event.pull_request.head.sha }}\"\n\non:\n pull_request:\n types: [opened, synchronize, reopened, ready_for_review, labeled]\n\nconcurrency:\n group: lore-devin-review-${{ github.repository }}-${{ github.event.pull_request.number }}\n cancel-in-progress: true\n\njobs:\n review:\n if: >-\n !github.event.pull_request.draft &&\n github.event.pull_request.head.repo.full_name == github.repository &&\n contains(github.event.pull_request.labels.*.name, 'lore:devin-review')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n pull-requests: write\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.2.0' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n fetch-depth: 0\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Prepare Lore review context\n env:\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github prepare-review\n --provider devin\n --event \"$GITHUB_EVENT_PATH\"\n --checkout \"$GITHUB_WORKSPACE/review\"\n --prompt-out \"$GITHUB_WORKSPACE/.lore/devin-prompt.md\"\n --metadata-out \"$GITHUB_WORKSPACE/.lore/devin-metadata.json\"\n\n - name: Run Lore-enriched Devin review\n env:\n DEVIN_API_KEY: ${{ secrets.DEVIN_API_KEY }}\n DEVIN_ORG_ID: ${{ vars.DEVIN_ORG_ID }}\n run: >-\n lore devin run-review\n --prompt .lore/devin-prompt.md\n --metadata .lore/devin-metadata.json\n --output .lore/devin-output.json\n\n - name: Post or update Lore review\n env:\n GH_TOKEN: ${{ github.token }}\n run: >-\n lore github post-review\n --metadata .lore/devin-metadata.json\n --output .lore/devin-output.json\n\n - name: Clean up Devin session\n if: always()\n continue-on-error: true\n env:\n DEVIN_API_KEY: ${{ secrets.DEVIN_API_KEY }}\n DEVIN_ORG_ID: ${{ vars.DEVIN_ORG_ID }}\n run: |\n SESSION_ID=\"$(jq -r '.sessionId // empty' .lore/devin-metadata.json 2>/dev/null || true)\"\n if [ -n \"$SESSION_ID\" ]; then\n lore devin terminate --session \"$SESSION_ID\"\n fi\n",
5
+ "lore-observe-correction.yml": "name: Lore review correction\nrun-name: \"Lore review correction comment #${{ github.event.comment.id }}\"\n\non:\n issue_comment:\n types: [created]\n\njobs:\n observe:\n if: >-\n github.event.issue.pull_request &&\n startsWith(github.event.comment.body, '/lore correct ')\n runs-on: ubuntu-latest\n permissions:\n contents: read\n issues: read\n pull-requests: read\n env:\n LORE_CLI_REPOSITORY: ${{ vars.LORE_CLI_REPOSITORY || 'treadiehq/lore-releases' }}\n LORE_CLI_VERSION: ${{ vars.LORE_CLI_VERSION || 'v0.2.0' }}\n steps:\n - uses: actions/checkout@fbc6f3992d24b796d5a048ff273f7fcc4a7b6c09 # v5.1.0\n with:\n persist-credentials: false\n path: review\n\n - name: Install Lore CLI\n run: |\n export LORE_REPO=\"$LORE_CLI_REPOSITORY\"\n export LORE_VERSION=\"$LORE_CLI_VERSION\"\n export LORE_BIN_DIR=\"$RUNNER_TEMP/lore/bin\"\n curl -fsSL \"https://github.com/$LORE_CLI_REPOSITORY/releases/download/$LORE_CLI_VERSION/install.sh\" | bash\n\n - name: Teach Lore from an authorized correction\n env:\n GH_TOKEN: ${{ github.token }}\n LORE_API_URL: ${{ vars.LORE_API_URL }}\n LORE_WORKSPACE_TOKEN: ${{ secrets.LORE_WORKSPACE_TOKEN }}\n run: >-\n lore github observe-correction\n --event \"$GITHUB_EVENT_PATH\"\n",
6
6
  "review-output.schema.json": "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"summary\", \"findings\"],\n \"properties\": {\n \"summary\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"\\\\S\"\n },\n \"findings\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"required\": [\"severity\", \"title\", \"body\", \"path\", \"line\"],\n \"properties\": {\n \"severity\": {\n \"enum\": [\"critical\", \"high\", \"medium\", \"low\"]\n },\n \"title\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"\\\\S\"\n },\n \"body\": {\n \"type\": \"string\",\n \"minLength\": 1,\n \"pattern\": \"\\\\S\"\n },\n \"path\": {\n \"type\": [\"string\", \"null\"],\n \"minLength\": 1,\n \"pattern\": \"\\\\S\"\n },\n \"line\": {\n \"type\": [\"integer\", \"null\"],\n \"minimum\": 1\n }\n }\n }\n }\n }\n}\n"
7
7
  };
8
- export const SELF_HOST_COMPOSE_ASSET = "name: lore\n\nx-api-image: &api-image \"${LORE_API_IMAGE:-ghcr.io/treadiehq/lore-api}:${LORE_IMAGE_TAG:-0.1.31}\"\nx-web-image: &web-image \"${LORE_WEB_IMAGE:-ghcr.io/treadiehq/lore-web}:${LORE_IMAGE_TAG:-0.1.31}\"\n\nservices:\n postgres:\n image: pgvector/pgvector:0.8.6-pg18\n environment:\n POSTGRES_DB: lore\n POSTGRES_USER: lore\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}\n volumes:\n - postgres-data:/var/lib/postgresql\n healthcheck:\n test:\n [\n \"CMD-SHELL\",\n 'pg_isready -h 127.0.0.1 -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\"',\n ]\n interval: 5s\n timeout: 5s\n retries: 10\n start_period: 10s\n restart: unless-stopped\n\n api:\n image: *api-image\n environment:\n NODE_ENV: production\n DATABASE_URL: \"postgresql://lore:${POSTGRES_PASSWORD:-}@postgres:5432/lore\"\n API_HOST: 0.0.0.0\n API_PORT: 3001\n API_JSON_BODY_LIMIT: ${API_JSON_BODY_LIMIT:-1mb}\n API_RATE_LIMIT_PER_MINUTE: ${API_RATE_LIMIT_PER_MINUTE:-120}\n RATE_LIMIT_KEY_SECRET: ${RATE_LIMIT_KEY_SECRET:-}\n TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-10.0.0.0/8,172.16.0.0/12}\n NUXT_ORIGIN: ${NUXT_ORIGIN:-}\n LORE_SERVER_VERSION: ${LORE_IMAGE_TAG:-0.1.31}\n LORE_SERVER_REVISION: ${LORE_SERVER_REVISION:-}\n LORE_WORKSPACE_TOKEN: ${LORE_WORKSPACE_TOKEN:-}\n LORE_WORKSPACE_ORGANIZATION: ${LORE_WORKSPACE_ORGANIZATION:-}\n LORE_WORKSPACE_NAME: ${LORE_WORKSPACE_NAME:-}\n AUTH_MODE: ${AUTH_MODE:-magic_link}\n AUTH_EMAIL_MODE: ${AUTH_EMAIL_MODE:-resend}\n AUTH_WEB_ORIGIN: ${AUTH_WEB_ORIGIN:-}\n AUTH_OWNER_EMAIL: ${AUTH_OWNER_EMAIL:-}\n AUTH_EMAIL_FROM: ${AUTH_EMAIL_FROM:-}\n RESEND_API_KEY: ${RESEND_API_KEY:-}\n AUTH_MAGIC_LINK_TTL_MINUTES: ${AUTH_MAGIC_LINK_TTL_MINUTES:-15}\n AUTH_SESSION_TTL_DAYS: ${AUTH_SESSION_TTL_DAYS:-30}\n GITHUB_AUTH_CLIENT_ID: ${GITHUB_AUTH_CLIENT_ID:-}\n GITHUB_AUTH_CLIENT_SECRET: ${GITHUB_AUTH_CLIENT_SECRET:-}\n GITHUB_AUTH_REDIRECT_URI: ${GITHUB_AUTH_REDIRECT_URI:-}\n CLOUD_RECOVERY_ENCRYPTION_KEY: ${CLOUD_RECOVERY_ENCRYPTION_KEY:-}\n CLOUD_RECOVERY_PUBLIC_API_URL: ${CLOUD_RECOVERY_PUBLIC_API_URL:-}\n DEVIN_POLLING_ENABLED: ${DEVIN_POLLING_ENABLED:-false}\n DEVIN_API_KEY: ${DEVIN_API_KEY:-}\n DEVIN_ORG_ID: ${DEVIN_ORG_ID:-}\n DEVIN_REPOSITORY_ALLOWLIST: ${DEVIN_REPOSITORY_ALLOWLIST:-}\n DEVIN_POLL_INTERVAL_MS: ${DEVIN_POLL_INTERVAL_MS:-15000}\n DEVIN_REQUEST_TIMEOUT_MS: ${DEVIN_REQUEST_TIMEOUT_MS:-10000}\n DEVIN_POLL_BATCH_SIZE: ${DEVIN_POLL_BATCH_SIZE:-25}\n EXTRACTOR_PROVIDER: ${EXTRACTOR_PROVIDER:-heuristic}\n EXTRACTOR_MIN_CONFIDENCE: ${EXTRACTOR_MIN_CONFIDENCE:-0.8}\n EXTRACTOR_MODEL: ${EXTRACTOR_MODEL:-}\n EXTRACTOR_BASE_URL: ${EXTRACTOR_BASE_URL:-}\n EXTRACTOR_API_KEY: ${EXTRACTOR_API_KEY:-}\n RETRIEVAL_MODE: ${RETRIEVAL_MODE:-auto}\n EMBEDDING_MODEL: ${EMBEDDING_MODEL:-text-embedding-3-small}\n EMBEDDING_BASE_URL: ${EMBEDDING_BASE_URL:-https://api.openai.com/v1}\n EMBEDDING_API_KEY: ${EMBEDDING_API_KEY:-}\n EMBEDDING_DIMENSIONS: ${EMBEDDING_DIMENSIONS:-1536}\n EMBEDDING_TIMEOUT_MS: ${EMBEDDING_TIMEOUT_MS:-5000}\n EMBEDDING_SPACE_ID: ${EMBEDDING_SPACE_ID:-}\n EMBEDDING_RECONCILE_INTERVAL_MS: ${EMBEDDING_RECONCILE_INTERVAL_MS:-60000}\n EMBEDDING_RECONCILE_BATCH_SIZE: ${EMBEDDING_RECONCILE_BATCH_SIZE:-500}\n EMBEDDING_RECONCILE_PAGE_SIZE: ${EMBEDDING_RECONCILE_PAGE_SIZE:-100}\n CAPTURE_WORKER_POLL_INTERVAL_MS: ${CAPTURE_WORKER_POLL_INTERVAL_MS:-500}\n CAPTURE_WORKER_CONCURRENCY: ${CAPTURE_WORKER_CONCURRENCY:-2}\n CAPTURE_WORKER_LEASE_MS: ${CAPTURE_WORKER_LEASE_MS:-60000}\n CAPTURE_INLINE_TIMEOUT_MS: ${CAPTURE_INLINE_TIMEOUT_MS:-45000}\n SEMANTIC_MIN_SIMILARITY: ${SEMANTIC_MIN_SIMILARITY:-0.4}\n CONTEXT_MAX_ITEMS: ${CONTEXT_MAX_ITEMS:-10}\n CONTEXT_MAX_CHARACTERS: ${CONTEXT_MAX_CHARACTERS:-12000}\n CONTEXT_MAX_ESTIMATED_TOKENS: ${CONTEXT_MAX_ESTIMATED_TOKENS:-4000}\n ports:\n - \"${API_BIND_ADDRESS:-127.0.0.1}:${API_PORT:-3001}:3001\"\n depends_on:\n postgres:\n condition: service_healthy\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://127.0.0.1:3001/health/ready').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))\",\n ]\n interval: 5s\n timeout: 5s\n retries: 12\n start_period: 10s\n restart: unless-stopped\n\n web:\n image: *web-image\n environment:\n HOST: 0.0.0.0\n PORT: 3000\n NITRO_HOST: 0.0.0.0\n NITRO_PORT: 3000\n NUXT_LORE_API_URL: http://api:3001\n NUXT_AUTH_COOKIE_NAME: ${NUXT_AUTH_COOKIE_NAME:-lore_session}\n NUXT_AUTH_COOKIE_SECURE: ${NUXT_AUTH_COOKIE_SECURE:-true}\n TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-10.0.0.0/8,172.16.0.0/12}\n NUXT_PUBLIC_API_BASE_URL: /api/lore\n NUXT_PUBLIC_LORE_CONNECTOR_API_URL: ${NUXT_PUBLIC_LORE_CONNECTOR_API_URL:-http://localhost:3001}\n NUXT_PUBLIC_LORE_INSTALL_URL: ${NUXT_PUBLIC_LORE_INSTALL_URL:-https://uselore.co/install.sh}\n ports:\n - \"${NUXT_BIND_ADDRESS:-127.0.0.1}:${NUXT_PORT:-3000}:3000\"\n depends_on:\n api:\n condition: service_healthy\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://127.0.0.1:3000/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))\",\n ]\n interval: 10s\n timeout: 5s\n retries: 12\n start_period: 15s\n restart: unless-stopped\n\nvolumes:\n postgres-data:\n";
9
- export const VSCODE_RECOVERY_ASSETS = { "package.json": "{\n \"name\": \"lore-recovery\",\n \"displayName\": \"Lore Recovery\",\n \"publisher\": \"lore-co\",\n \"version\": \"0.1.0\",\n \"description\": \"Continue a stopped Copilot job in another connected coding tool.\",\n \"engines\": { \"vscode\": \"^1.105.0\" },\n \"main\": \"./extension.cjs\",\n \"activationEvents\": [\"onStartupFinished\"],\n \"extensionKind\": [\"workspace\"],\n \"capabilities\": { \"untrustedWorkspaces\": { \"supported\": false }, \"virtualWorkspaces\": false },\n \"contributes\": { \"commands\": [{ \"command\": \"lore.recovery.status\", \"title\": \"Lore: Show Recovery Status\" }] }\n}\n", "extension.cjs": "const vscode = require('vscode');\nconst fs = require('node:fs/promises');\nconst { constants } = require('node:fs');\nconst path = require('node:path');\nconst { tmpdir } = require('node:os');\nconst { spawn } = require('node:child_process');\nconst { fileURLToPath } = require('node:url');\nconst { parseSession, checkpoint, bindActiveSession } = require('./session.cjs');\n\nasync function readActiveSession(saved) {\n if (!saved.length) return;\n const directory = await fs.mkdtemp(path.join(tmpdir(), 'lore-chat-'));\n try {\n await fs.chmod(directory, 0o700);\n const target = path.join(directory, 'active.json');\n await fs.writeFile(target, '', { mode: 0o600 });\n // This public command exports the in-memory chat without opening a dialog.\n await vscode.commands.executeCommand('workbench.action.chat.export', vscode.Uri.file(target));\n const file = await fs.open(target, constants.O_RDONLY | constants.O_NOFOLLOW);\n try {\n const stat = await file.stat();\n if (!stat.isFile() || stat.size > 8 * 1024 * 1024 || (process.getuid && stat.uid !== process.getuid())) return;\n return bindActiveSession(parseSession(await file.readFile('utf8')), saved);\n } finally { await file.close(); }\n } catch { /* Unsupported export commands keep the saved-session fallback. */ }\n finally { await fs.rm(directory, { recursive: true, force: true }); }\n}\n\nfunction activate(context) {\n const output = vscode.window.createOutputChannel('Lore Recovery'); context.subscriptions.push(output);\n let config = require('./connection.json'); // Written by lore connect, outside the repository.\n let busy = false, disposed = false, lastError = '', status = 'Waiting for a saved Copilot turn.';\n const offered = new Set();\n function call(args, input) {\n return new Promise((resolve, reject) => {\n const child = spawn(config.invocation[0], [...config.invocation.slice(1), 'recovery', ...args], {\n env: { ...process.env, PATH: config.path || process.env.PATH, LORE_HOME: config.home, BUN_OPTIONS: undefined, BUN_BE_BUN: undefined }, stdio: ['pipe','pipe','pipe'],\n });\n let body = '', error = ''; const timer = setTimeout(() => { child.kill(); reject(Error('Lore adapter timed out')); }, 10000);\n child.stdout.on('data', b => { body += b; if (body.length > 65536) child.kill(); });\n child.stderr.on('data', b => { error = (error + b).slice(-2000); });\n child.once('error', e => { clearTimeout(timer); reject(e); });\n child.once('exit', code => { clearTimeout(timer); if(code) reject(Error(error || 'Lore adapter failed')); else { try { resolve(JSON.parse(body)); } catch { reject(Error('Invalid Lore response')); } } });\n child.stdin.on('error', () => {}); child.stdin.end(JSON.stringify(input));\n });\n }\n async function poll() {\n if (busy || disposed || !vscode.workspace.isTrusted || !context.storageUri || context.storageUri.scheme !== 'file') return;\n busy = true;\n try {\n config = JSON.parse(await fs.readFile(path.join(__dirname, 'connection.json'), 'utf8'));\n if (config.disabled) { status = 'Lore recovery is disabled.'; return; }\n const folders = (vscode.workspace.workspaceFolders ?? []).filter(f => f.uri.scheme === 'file');\n const roots = await Promise.all(folders.map(f => fs.realpath(f.uri.fsPath)));\n const storage = path.dirname(context.storageUri.fsPath), chatDir = path.join(storage, 'chatSessions');\n // The extension context binds this storage directory to this VS Code workspace.\n const names = (await fs.readdir(chatDir).catch(e => { if(e.code === 'ENOENT') return []; throw e; })).filter(n => /^[a-zA-Z0-9-]+\\.jsonl?$/.test(n) && n !== 'index.json').slice(-400);\n const saved = [];\n for (const name of names) {\n const file = await fs.open(path.join(chatDir,name), constants.O_RDONLY | constants.O_NOFOLLOW);\n let session;\n try {\n const stat = await file.stat();\n if (!stat.isFile() || stat.size > 8*1024*1024 || (process.getuid && stat.uid !== process.getuid())) continue;\n session = parseSession(await file.readFile('utf8'), name.endsWith('.jsonl'));\n } catch (e) { if(e instanceof SyntaxError) continue; throw e; }\n finally { await file.close(); }\n let cwd;\n if (session?.workingDirectory) {\n try { cwd = await fs.realpath(fileURLToPath(session.workingDirectory)); } catch { continue; }\n if (!roots.some(r => cwd === r || cwd.startsWith(r + path.sep))) continue;\n // Recovery configuration registers exact workspaces. Do not guess another root.\n if (!config.roots.includes(cwd)) continue;\n } else if (roots.length === 1) cwd = roots[0]; else continue;\n if (!config.roots.includes(cwd)) continue;\n saved.push({ session, cwd });\n }\n const active = await readActiveSession(saved);\n // Replace the saved copy before processing it, so a live retry/cancellation\n // suppresses an obsolete failure even when disk storage is still behind.\n for (const entry of saved) {\n const { session, cwd } = active?.session.sessionId === entry.session?.sessionId ? active : entry;\n const event = checkpoint(session, cwd); if (!event) continue;\n const timestamp = session.requests?.at(-1)?.timestamp;\n if ((typeof timestamp === 'number' ? timestamp : Date.parse(timestamp)) < config.since || !timestamp) continue;\n const result = await call(['external-checkpoint'], event);\n status = active ? 'Observing active Copilot chat and saved sessions.' : 'Observing saved Copilot sessions; active chat identity is not yet available.';\n if (!result.failureId || offered.has(result.failureId)) continue;\n offered.add(result.failureId);\n const button = `Continue with ${result.target}`;\n void vscode.window.showWarningMessage(`Copilot stopped${event.reason === 'rate_limit' ? ' at a usage limit' : ' with an error'}. Lore can continue this job.`, button, 'Dismiss').then(choice => {\n if(choice !== button || disposed) return;\n const quote = s => `'${s.replaceAll(\"'\", \"'\\\\''\")}'`;\n const command = ['env','-u','BUN_OPTIONS','-u','BUN_BE_BUN',`PATH=${config.path || process.env.PATH}`,`LORE_HOME=${config.home}`, ...config.invocation, 'recovery', 'launch-accepted', result.id, result.failureId].map(quote).join(' ');\n const terminal = vscode.window.createTerminal({ name: 'Lore continuation', cwd }); terminal.show(); terminal.sendText(command, true);\n });\n }\n lastError = '';\n } catch(e) { status = e.message; if(lastError !== status) output.appendLine(status); lastError = status; }\n finally { busy = false; }\n }\n const timer = setInterval(() => { void poll(); }, 1500); void poll();\n context.subscriptions.push({ dispose() { disposed = true; clearInterval(timer); } });\n context.subscriptions.push(vscode.commands.registerCommand('lore.recovery.status', () => vscode.window.showInformationMessage(status)));\n}\nmodule.exports = { activate, readActiveSession };\n", "session.cjs": "// VS Code's version 3 chat model and numeric objectMutationLog format.\n// No terminal/answer text matching, proposed API, or Copilot monkey patching.\nconst forbidden = new Set(['__proto__', 'constructor', 'prototype']);\nfunction parseSession(text, jsonl = false) {\n if (Buffer.byteLength(text) > 8 * 1024 * 1024) throw Error('Chat exceeds the 8 MiB recovery read limit');\n if (!jsonl) return JSON.parse(text);\n let state;\n for (const line of text.trimEnd().split('\\n')) {\n if (!line) continue;\n const entry = JSON.parse(line);\n if (entry.kind === 0) { if (state !== undefined) throw Error('Repeated chat initial state'); state = entry.v; continue; }\n if (!state || !Array.isArray(entry.k) || !entry.k.length || entry.k.length > 30 || entry.k.some(k => !(typeof k === 'string' || Number.isSafeInteger(k)) || forbidden.has(k))) throw Error('Unsupported chat mutation');\n let parent = state;\n for (const k of entry.k.slice(0, -1)) {\n if (!parent || !Object.hasOwn(parent, k)) throw Error('Invalid chat mutation path');\n parent = parent[k];\n }\n const key = entry.k.at(-1);\n if (!parent || typeof parent !== 'object') throw Error('Invalid chat mutation target');\n if (entry.kind === 1) parent[key] = entry.v;\n else if (entry.kind === 3) delete parent[key];\n else if (entry.kind === 2) {\n const array = parent[key];\n if (!Array.isArray(array) || (entry.i !== undefined && (!Number.isSafeInteger(entry.i) || entry.i < 0 || entry.i > array.length)) || (entry.v !== undefined && !Array.isArray(entry.v))) throw Error('Invalid chat array mutation');\n if (entry.i !== undefined) array.splice(entry.i);\n if (entry.v) array.push(...entry.v);\n } else throw Error('Unknown chat mutation');\n }\n return state;\n}\nfunction checkpoint(session, cwd) {\n if (session?.version !== 3 || typeof session.sessionId !== 'string' || !Array.isArray(session.requests)) return;\n const requests = session.requests.filter(r => !r.isSystemInitiated && !r.hiddenFromTranscript);\n const last = requests.at(-1);\n if (!last || typeof last.requestId !== 'string' || typeof last.message?.text !== 'string') return;\n const extension = last.agent?.extensionId;\n if ((typeof extension === 'string' ? extension : extension?.value)?.toLowerCase() !== 'github.copilot-chat') return;\n const error = last.result?.errorDetails ?? last.responseErrorDetails;\n const canceled = last.isCanceled === true || error?.code === 'canceled' || last.modelState?.value === 2;\n const failed = !canceled && !!error && typeof error.message === 'string' && !error.responseIsFiltered && !error.responseIsRedacted;\n const messages = requests.slice(-10).flatMap(r => [\n { role: 'user', text: String(r.message?.text ?? '').slice(0,6000) },\n { role: 'assistant', text: (r.response ?? []).filter(p => typeof p?.value === 'string').map(p => p.value).join('\\n').slice(0,6000) },\n ]).filter(m => m.text);\n return { host: 'copilot-vscode', sourceAgent: 'copilot-cli', sessionId: session.sessionId, turnId: last.requestId, cwd,\n goal: String(requests[0]?.message?.text ?? '').slice(0,6000), messages,\n state: canceled ? 'cancelled' : failed ? 'failed' : last.result ? 'completed' : 'running',\n ...(failed ? { reason: error.isRateLimited === true || error.isQuotaExceeded === true || ['rateLimited','quotaExceeded'].includes(error.code) ? 'rate_limit' : 'agent_error' } : {}), observedAt: Date.now() };\n}\n// Live chat export omits sessionId/cwd. Bind only by the ordered stable request\n// IDs of exactly one saved session; never infer identity from a title or text.\nfunction bindActiveSession(exported, saved) {\n if (!Array.isArray(exported?.requests) || !exported.requests.length) return;\n const ids = exported.requests.map(r => r.requestId);\n if (ids.some(id => typeof id !== 'string' || !id) || new Set(ids).size !== ids.length) return;\n const matches = saved.filter(({ session }) => session?.version === 3 && typeof session.sessionId === 'string' &&\n Array.isArray(session.requests) && session.requests.length > 0 && session.requests.length <= ids.length &&\n session.requests.every((r, i) => r.requestId === ids[i]));\n if (matches.length !== 1) return;\n const match = matches[0];\n return { cwd: match.cwd, session: { ...match.session, requests: exported.requests } };\n}\nmodule.exports = { parseSession, checkpoint, bindActiveSession };\n" };
8
+ export const SELF_HOST_COMPOSE_ASSET = "name: lore\n\nx-api-image: &api-image \"${LORE_API_IMAGE:-ghcr.io/treadiehq/lore-api}:${LORE_IMAGE_TAG:-0.2.0}\"\nx-web-image: &web-image \"${LORE_WEB_IMAGE:-ghcr.io/treadiehq/lore-web}:${LORE_IMAGE_TAG:-0.2.0}\"\n\nservices:\n postgres:\n image: pgvector/pgvector:0.8.6-pg18\n environment:\n POSTGRES_DB: lore\n POSTGRES_USER: lore\n POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-}\n volumes:\n - postgres-data:/var/lib/postgresql\n healthcheck:\n test:\n [\n \"CMD-SHELL\",\n 'pg_isready -h 127.0.0.1 -U \"$${POSTGRES_USER}\" -d \"$${POSTGRES_DB}\"',\n ]\n interval: 5s\n timeout: 5s\n retries: 10\n start_period: 10s\n restart: unless-stopped\n\n api:\n image: *api-image\n environment:\n NODE_ENV: production\n DATABASE_URL: \"postgresql://lore:${POSTGRES_PASSWORD:-}@postgres:5432/lore\"\n API_HOST: 0.0.0.0\n API_PORT: 3001\n API_JSON_BODY_LIMIT: ${API_JSON_BODY_LIMIT:-1mb}\n API_RATE_LIMIT_PER_MINUTE: ${API_RATE_LIMIT_PER_MINUTE:-120}\n RATE_LIMIT_KEY_SECRET: ${RATE_LIMIT_KEY_SECRET:-}\n TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-10.0.0.0/8,172.16.0.0/12}\n NUXT_ORIGIN: ${NUXT_ORIGIN:-}\n LORE_SERVER_VERSION: ${LORE_IMAGE_TAG:-0.2.0}\n LORE_SERVER_REVISION: ${LORE_SERVER_REVISION:-}\n LORE_WORKSPACE_TOKEN: ${LORE_WORKSPACE_TOKEN:-}\n LORE_WORKSPACE_ORGANIZATION: ${LORE_WORKSPACE_ORGANIZATION:-}\n LORE_WORKSPACE_NAME: ${LORE_WORKSPACE_NAME:-}\n AUTH_MODE: ${AUTH_MODE:-magic_link}\n AUTH_EMAIL_MODE: ${AUTH_EMAIL_MODE:-resend}\n AUTH_WEB_ORIGIN: ${AUTH_WEB_ORIGIN:-}\n AUTH_OWNER_EMAIL: ${AUTH_OWNER_EMAIL:-}\n AUTH_EMAIL_FROM: ${AUTH_EMAIL_FROM:-}\n RESEND_API_KEY: ${RESEND_API_KEY:-}\n AUTH_MAGIC_LINK_TTL_MINUTES: ${AUTH_MAGIC_LINK_TTL_MINUTES:-15}\n AUTH_SESSION_TTL_DAYS: ${AUTH_SESSION_TTL_DAYS:-30}\n GITHUB_AUTH_CLIENT_ID: ${GITHUB_AUTH_CLIENT_ID:-}\n GITHUB_AUTH_CLIENT_SECRET: ${GITHUB_AUTH_CLIENT_SECRET:-}\n GITHUB_AUTH_REDIRECT_URI: ${GITHUB_AUTH_REDIRECT_URI:-}\n CLOUD_RECOVERY_ENCRYPTION_KEY: ${CLOUD_RECOVERY_ENCRYPTION_KEY:-}\n CLOUD_RECOVERY_PUBLIC_API_URL: ${CLOUD_RECOVERY_PUBLIC_API_URL:-}\n DEVIN_POLLING_ENABLED: ${DEVIN_POLLING_ENABLED:-false}\n DEVIN_API_KEY: ${DEVIN_API_KEY:-}\n DEVIN_ORG_ID: ${DEVIN_ORG_ID:-}\n DEVIN_REPOSITORY_ALLOWLIST: ${DEVIN_REPOSITORY_ALLOWLIST:-}\n DEVIN_POLL_INTERVAL_MS: ${DEVIN_POLL_INTERVAL_MS:-15000}\n DEVIN_REQUEST_TIMEOUT_MS: ${DEVIN_REQUEST_TIMEOUT_MS:-10000}\n DEVIN_POLL_BATCH_SIZE: ${DEVIN_POLL_BATCH_SIZE:-25}\n EXTRACTOR_PROVIDER: ${EXTRACTOR_PROVIDER:-heuristic}\n EXTRACTOR_MIN_CONFIDENCE: ${EXTRACTOR_MIN_CONFIDENCE:-0.8}\n EXTRACTOR_MODEL: ${EXTRACTOR_MODEL:-}\n EXTRACTOR_BASE_URL: ${EXTRACTOR_BASE_URL:-}\n EXTRACTOR_API_KEY: ${EXTRACTOR_API_KEY:-}\n RETRIEVAL_MODE: ${RETRIEVAL_MODE:-auto}\n EMBEDDING_MODEL: ${EMBEDDING_MODEL:-text-embedding-3-small}\n EMBEDDING_BASE_URL: ${EMBEDDING_BASE_URL:-https://api.openai.com/v1}\n EMBEDDING_API_KEY: ${EMBEDDING_API_KEY:-}\n EMBEDDING_DIMENSIONS: ${EMBEDDING_DIMENSIONS:-1536}\n EMBEDDING_TIMEOUT_MS: ${EMBEDDING_TIMEOUT_MS:-5000}\n EMBEDDING_SPACE_ID: ${EMBEDDING_SPACE_ID:-}\n EMBEDDING_RECONCILE_INTERVAL_MS: ${EMBEDDING_RECONCILE_INTERVAL_MS:-60000}\n EMBEDDING_RECONCILE_BATCH_SIZE: ${EMBEDDING_RECONCILE_BATCH_SIZE:-500}\n EMBEDDING_RECONCILE_PAGE_SIZE: ${EMBEDDING_RECONCILE_PAGE_SIZE:-100}\n CAPTURE_WORKER_POLL_INTERVAL_MS: ${CAPTURE_WORKER_POLL_INTERVAL_MS:-500}\n CAPTURE_WORKER_CONCURRENCY: ${CAPTURE_WORKER_CONCURRENCY:-2}\n CAPTURE_WORKER_LEASE_MS: ${CAPTURE_WORKER_LEASE_MS:-60000}\n CAPTURE_INLINE_TIMEOUT_MS: ${CAPTURE_INLINE_TIMEOUT_MS:-45000}\n SEMANTIC_MIN_SIMILARITY: ${SEMANTIC_MIN_SIMILARITY:-0.4}\n CONTEXT_MAX_ITEMS: ${CONTEXT_MAX_ITEMS:-10}\n CONTEXT_MAX_CHARACTERS: ${CONTEXT_MAX_CHARACTERS:-12000}\n CONTEXT_MAX_ESTIMATED_TOKENS: ${CONTEXT_MAX_ESTIMATED_TOKENS:-4000}\n ports:\n - \"${API_BIND_ADDRESS:-127.0.0.1}:${API_PORT:-3001}:3001\"\n depends_on:\n postgres:\n condition: service_healthy\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://127.0.0.1:3001/health/ready').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))\",\n ]\n interval: 5s\n timeout: 5s\n retries: 12\n start_period: 10s\n restart: unless-stopped\n\n web:\n image: *web-image\n environment:\n HOST: 0.0.0.0\n PORT: 3000\n NITRO_HOST: 0.0.0.0\n NITRO_PORT: 3000\n NUXT_LORE_API_URL: http://api:3001\n NUXT_AUTH_COOKIE_NAME: ${NUXT_AUTH_COOKIE_NAME:-lore_session}\n NUXT_AUTH_COOKIE_SECURE: ${NUXT_AUTH_COOKIE_SECURE:-true}\n TRUSTED_PROXY_CIDRS: ${TRUSTED_PROXY_CIDRS:-10.0.0.0/8,172.16.0.0/12}\n NUXT_PUBLIC_API_BASE_URL: /api/lore\n NUXT_PUBLIC_LORE_CONNECTOR_API_URL: ${NUXT_PUBLIC_LORE_CONNECTOR_API_URL:-http://localhost:3001}\n NUXT_PUBLIC_LORE_INSTALL_URL: ${NUXT_PUBLIC_LORE_INSTALL_URL:-https://uselore.co/install.sh}\n ports:\n - \"${NUXT_BIND_ADDRESS:-127.0.0.1}:${NUXT_PORT:-3000}:3000\"\n depends_on:\n api:\n condition: service_healthy\n healthcheck:\n test:\n [\n \"CMD\",\n \"node\",\n \"-e\",\n \"fetch('http://127.0.0.1:3000/health').then(r=>{if(!r.ok)process.exit(1)}).catch(()=>process.exit(1))\",\n ]\n interval: 10s\n timeout: 5s\n retries: 12\n start_period: 15s\n restart: unless-stopped\n\nvolumes:\n postgres-data:\n";
9
+ export const VSCODE_RECOVERY_ASSETS = { "package.json": "{\n \"name\": \"lore-recovery\",\n \"displayName\": \"Lore Recovery\",\n \"publisher\": \"lore-co\",\n \"version\": \"0.1.0\",\n \"description\": \"Continue a stopped Copilot job in another connected coding tool.\",\n \"engines\": { \"vscode\": \"^1.105.0\" },\n \"main\": \"./extension.cjs\",\n \"activationEvents\": [\"onStartupFinished\"],\n \"extensionKind\": [\"workspace\"],\n \"capabilities\": { \"untrustedWorkspaces\": { \"supported\": false }, \"virtualWorkspaces\": false },\n \"contributes\": { \"commands\": [{ \"command\": \"lore.recovery.status\", \"title\": \"Lore: Show Recovery Status\" }] }\n}\n", "extension.cjs": "const vscode = require('vscode');\nconst fs = require('node:fs/promises');\nconst { constants } = require('node:fs');\nconst path = require('node:path');\nconst { tmpdir } = require('node:os');\nconst { spawn } = require('node:child_process');\nconst { fileURLToPath } = require('node:url');\nconst { parseSession, checkpoint, bindActiveSession } = require('./session.cjs');\n\nfunction continuationTerminal(config, result, cwd, platform = process.platform) {\n const args = [...config.invocation, 'recovery', 'launch-accepted', result.id, result.failureId];\n const options = { name: 'Lore continuation', cwd };\n if (platform === 'win32') {\n const quote = s => `'${s.replaceAll(\"'\", \"''\")}'`;\n return { options: { ...options, shellPath: 'powershell.exe', env: { PATH: config.path || process.env.PATH, LORE_HOME: config.home, BUN_OPTIONS: null, BUN_BE_BUN: null } }, command: '& ' + args.map(quote).join(' ') };\n }\n const quote = s => `'${s.replaceAll(\"'\", \"'\\\\''\")}'`;\n return { options, command: ['env','-u','BUN_OPTIONS','-u','BUN_BE_BUN',`PATH=${config.path || process.env.PATH}`,`LORE_HOME=${config.home}`, ...args].map(quote).join(' ') };\n}\n\nasync function readActiveSession(saved) {\n if (!saved.length) return;\n const directory = await fs.mkdtemp(path.join(tmpdir(), 'lore-chat-'));\n try {\n await fs.chmod(directory, 0o700);\n const target = path.join(directory, 'active.json');\n await fs.writeFile(target, '', { mode: 0o600 });\n // This public command exports the in-memory chat without opening a dialog.\n await vscode.commands.executeCommand('workbench.action.chat.export', vscode.Uri.file(target));\n const file = await fs.open(target, constants.O_RDONLY | constants.O_NOFOLLOW);\n try {\n const stat = await file.stat();\n if (!stat.isFile() || stat.size > 8 * 1024 * 1024 || (process.getuid && stat.uid !== process.getuid())) return;\n return bindActiveSession(parseSession(await file.readFile('utf8')), saved);\n } finally { await file.close(); }\n } catch { /* Unsupported export commands keep the saved-session fallback. */ }\n finally { await fs.rm(directory, { recursive: true, force: true }); }\n}\n\nfunction activate(context) {\n const output = vscode.window.createOutputChannel('Lore Recovery'); context.subscriptions.push(output);\n let config = require('./connection.json'); // Written by lore connect, outside the repository.\n let busy = false, disposed = false, lastError = '', status = 'Waiting for a saved Copilot turn.';\n const offered = new Set();\n function call(args, input) {\n return new Promise((resolve, reject) => {\n const child = spawn(config.invocation[0], [...config.invocation.slice(1), 'recovery', ...args], {\n env: { ...process.env, PATH: config.path || process.env.PATH, LORE_HOME: config.home, BUN_OPTIONS: undefined, BUN_BE_BUN: undefined }, stdio: ['pipe','pipe','pipe'],\n });\n let body = '', error = ''; const timer = setTimeout(() => { child.kill(); reject(Error('Lore adapter timed out')); }, 10000);\n child.stdout.on('data', b => { body += b; if (body.length > 65536) child.kill(); });\n child.stderr.on('data', b => { error = (error + b).slice(-2000); });\n child.once('error', e => { clearTimeout(timer); reject(e); });\n child.once('exit', code => { clearTimeout(timer); if(code) reject(Error(error || 'Lore adapter failed')); else { try { resolve(JSON.parse(body)); } catch { reject(Error('Invalid Lore response')); } } });\n child.stdin.on('error', () => {}); child.stdin.end(JSON.stringify(input));\n });\n }\n async function poll() {\n if (busy || disposed || !vscode.workspace.isTrusted || !context.storageUri || context.storageUri.scheme !== 'file') return;\n busy = true;\n try {\n config = JSON.parse(await fs.readFile(path.join(__dirname, 'connection.json'), 'utf8'));\n if (config.disabled) { status = 'Lore recovery is disabled.'; return; }\n const folders = (vscode.workspace.workspaceFolders ?? []).filter(f => f.uri.scheme === 'file');\n const roots = await Promise.all(folders.map(f => fs.realpath(f.uri.fsPath)));\n const storage = path.dirname(context.storageUri.fsPath), chatDir = path.join(storage, 'chatSessions');\n // The extension context binds this storage directory to this VS Code workspace.\n const names = (await fs.readdir(chatDir).catch(e => { if(e.code === 'ENOENT') return []; throw e; })).filter(n => /^[a-zA-Z0-9-]+\\.jsonl?$/.test(n) && n !== 'index.json').slice(-400);\n const saved = [];\n for (const name of names) {\n const file = await fs.open(path.join(chatDir,name), constants.O_RDONLY | constants.O_NOFOLLOW);\n let session;\n try {\n const stat = await file.stat();\n if (!stat.isFile() || stat.size > 8*1024*1024 || (process.getuid && stat.uid !== process.getuid())) continue;\n session = parseSession(await file.readFile('utf8'), name.endsWith('.jsonl'));\n } catch (e) { if(e instanceof SyntaxError) continue; throw e; }\n finally { await file.close(); }\n let cwd;\n if (session?.workingDirectory) {\n try { cwd = await fs.realpath(fileURLToPath(session.workingDirectory)); } catch { continue; }\n if (!roots.some(r => cwd === r || cwd.startsWith(r + path.sep))) continue;\n // Recovery configuration registers exact workspaces. Do not guess another root.\n if (!config.roots.includes(cwd)) continue;\n } else if (roots.length === 1) cwd = roots[0]; else continue;\n if (!config.roots.includes(cwd)) continue;\n saved.push({ session, cwd });\n }\n const active = await readActiveSession(saved);\n // Replace the saved copy before processing it, so a live retry/cancellation\n // suppresses an obsolete failure even when disk storage is still behind.\n for (const entry of saved) {\n const { session, cwd } = active?.session.sessionId === entry.session?.sessionId ? active : entry;\n const event = checkpoint(session, cwd); if (!event) continue;\n const timestamp = session.requests?.at(-1)?.timestamp;\n if ((typeof timestamp === 'number' ? timestamp : Date.parse(timestamp)) < config.since || !timestamp) continue;\n const result = await call(['external-checkpoint'], event);\n status = active ? 'Observing active Copilot chat and saved sessions.' : 'Observing saved Copilot sessions; active chat identity is not yet available.';\n if (!result.failureId || offered.has(result.failureId)) continue;\n offered.add(result.failureId);\n const button = `Continue with ${result.target}`;\n void vscode.window.showWarningMessage(`Copilot stopped${event.reason === 'rate_limit' ? ' at a usage limit' : ' with an error'}. Lore can continue this job.`, button, 'Dismiss').then(choice => {\n if(choice !== button || disposed) return;\n const { options, command } = continuationTerminal(config, result, cwd);\n const terminal = vscode.window.createTerminal(options); terminal.show(); terminal.sendText(command, true);\n });\n }\n lastError = '';\n } catch(e) { status = e.message; if(lastError !== status) output.appendLine(status); lastError = status; }\n finally { busy = false; }\n }\n const timer = setInterval(() => { void poll(); }, 1500); void poll();\n context.subscriptions.push({ dispose() { disposed = true; clearInterval(timer); } });\n context.subscriptions.push(vscode.commands.registerCommand('lore.recovery.status', () => vscode.window.showInformationMessage(status)));\n}\nmodule.exports = { activate, readActiveSession, continuationTerminal };\n", "session.cjs": "// VS Code's version 3 chat model and numeric objectMutationLog format.\n// No terminal/answer text matching, proposed API, or Copilot monkey patching.\nconst forbidden = new Set(['__proto__', 'constructor', 'prototype']);\nfunction parseSession(text, jsonl = false) {\n if (Buffer.byteLength(text) > 8 * 1024 * 1024) throw Error('Chat exceeds the 8 MiB recovery read limit');\n if (!jsonl) return JSON.parse(text);\n let state;\n for (const line of text.trimEnd().split('\\n')) {\n if (!line) continue;\n const entry = JSON.parse(line);\n if (entry.kind === 0) { if (state !== undefined) throw Error('Repeated chat initial state'); state = entry.v; continue; }\n if (!state || !Array.isArray(entry.k) || !entry.k.length || entry.k.length > 30 || entry.k.some(k => !(typeof k === 'string' || Number.isSafeInteger(k)) || forbidden.has(k))) throw Error('Unsupported chat mutation');\n let parent = state;\n for (const k of entry.k.slice(0, -1)) {\n if (!parent || !Object.hasOwn(parent, k)) throw Error('Invalid chat mutation path');\n parent = parent[k];\n }\n const key = entry.k.at(-1);\n if (!parent || typeof parent !== 'object') throw Error('Invalid chat mutation target');\n if (entry.kind === 1) parent[key] = entry.v;\n else if (entry.kind === 3) delete parent[key];\n else if (entry.kind === 2) {\n const array = parent[key];\n if (!Array.isArray(array) || (entry.i !== undefined && (!Number.isSafeInteger(entry.i) || entry.i < 0 || entry.i > array.length)) || (entry.v !== undefined && !Array.isArray(entry.v))) throw Error('Invalid chat array mutation');\n if (entry.i !== undefined) array.splice(entry.i);\n if (entry.v) array.push(...entry.v);\n } else throw Error('Unknown chat mutation');\n }\n return state;\n}\nfunction checkpoint(session, cwd) {\n if (session?.version !== 3 || typeof session.sessionId !== 'string' || !Array.isArray(session.requests)) return;\n const requests = session.requests.filter(r => !r.isSystemInitiated && !r.hiddenFromTranscript);\n const last = requests.at(-1);\n if (!last || typeof last.requestId !== 'string' || typeof last.message?.text !== 'string') return;\n const extension = last.agent?.extensionId;\n if ((typeof extension === 'string' ? extension : extension?.value)?.toLowerCase() !== 'github.copilot-chat') return;\n const error = last.result?.errorDetails ?? last.responseErrorDetails;\n const canceled = last.isCanceled === true || error?.code === 'canceled' || last.modelState?.value === 2;\n const failed = !canceled && !!error && typeof error.message === 'string' && !error.responseIsFiltered && !error.responseIsRedacted;\n const messages = requests.slice(-10).flatMap(r => [\n { role: 'user', text: String(r.message?.text ?? '').slice(0,6000) },\n { role: 'assistant', text: (r.response ?? []).filter(p => typeof p?.value === 'string').map(p => p.value).join('\\n').slice(0,6000) },\n ]).filter(m => m.text);\n return { host: 'copilot-vscode', sourceAgent: 'copilot-cli', sessionId: session.sessionId, turnId: last.requestId, cwd,\n goal: String(requests[0]?.message?.text ?? '').slice(0,6000), messages,\n state: canceled ? 'cancelled' : failed ? 'failed' : last.result ? 'completed' : 'running',\n ...(failed ? { reason: error.isRateLimited === true || error.isQuotaExceeded === true || ['rateLimited','quotaExceeded'].includes(error.code) ? 'rate_limit' : 'agent_error' } : {}), observedAt: Date.now() };\n}\n// Live chat export omits sessionId/cwd. Bind only by the ordered stable request\n// IDs of exactly one saved session; never infer identity from a title or text.\nfunction bindActiveSession(exported, saved) {\n if (!Array.isArray(exported?.requests) || !exported.requests.length) return;\n const ids = exported.requests.map(r => r.requestId);\n if (ids.some(id => typeof id !== 'string' || !id) || new Set(ids).size !== ids.length) return;\n const matches = saved.filter(({ session }) => session?.version === 3 && typeof session.sessionId === 'string' &&\n Array.isArray(session.requests) && session.requests.length > 0 && session.requests.length <= ids.length &&\n session.requests.every((r, i) => r.requestId === ids[i]));\n if (matches.length !== 1) return;\n const match = matches[0];\n return { cwd: match.cwd, session: { ...match.session, requests: exported.requests } };\n}\nmodule.exports = { parseSession, checkpoint, bindActiveSession };\n" };
10
10
  //# sourceMappingURL=generated-assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated-assets.js","sourceRoot":"","sources":["../src/generated-assets.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB,EAAE,+8HAA+8H;IACx+H,uBAAuB,EAAE,25FAA25F;IACp7F,6BAA6B,EAAE,q4CAAq4C;IACp6C,2BAA2B,EAAE,+tCAA+tC;CACpvC,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG,+oLAA+oL,CAAC;AACvrL,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAC,cAAc,EAAC,mnBAAmnB,EAAC,eAAe,EAAC,ygOAAygO,EAAC,aAAa,EAAC,21IAA21I,EAAU,CAAC"}
1
+ {"version":3,"file":"generated-assets.js","sourceRoot":"","sources":["../src/generated-assets.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,uBAAuB,EAAE,68HAA68H;IACt+H,uBAAuB,EAAE,05FAA05F;IACn7F,6BAA6B,EAAE,o4CAAo4C;IACn6C,2BAA2B,EAAE,+tCAA+tC;CACpvC,CAAC;AACX,MAAM,CAAC,MAAM,uBAAuB,GAAG,4oLAA4oL,CAAC;AACprL,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAC,cAAc,EAAC,mnBAAmnB,EAAC,eAAe,EAAC,4jPAA4jP,EAAC,aAAa,EAAC,21IAA21I,EAAU,CAAC"}
package/dist/github.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { createHash } from "node:crypto";
2
- import { spawn } from "node:child_process";
2
+ import { spawn } from "./platform.js";
3
3
  import { mkdir, readFile, writeFile, } from "node:fs/promises";
4
4
  import { homedir } from "node:os";
5
5
  import { dirname, resolve } from "node:path";
@@ -1 +1 @@
1
- {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"github.js","sourceRoot":"","sources":["../src/github.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA4Q3D,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
1
+ {"version":3,"file":"handoff.d.ts","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA4Q3D,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAEf"}
package/dist/handoff.js CHANGED
@@ -1,4 +1,5 @@
1
- import { execFile as execFileCallback, spawn } from "node:child_process";
1
+ import { execFile as execFileCallback } from "node:child_process";
2
+ import { spawn } from "./platform.js";
2
3
  import { promisify } from "node:util";
3
4
  import { HandoffResponseSchema } from "@lore-co/core";
4
5
  import { loreApiRequest } from "./api.js";
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-health-writer.d.ts","sourceRoot":"","sources":["../src/invocation-health-writer.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAC;AAOhC,KAAK,iBAAiB,GAClB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,gCAAgC,CAAA;CAAE,CAAC;AAYtE,MAAM,WAAW,mCAAmC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAUtE;AA4CD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,EACrC,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,gCAAgC,CACpD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
1
+ {"version":3,"file":"invocation-health-writer.d.ts","sourceRoot":"","sources":["../src/invocation-health-writer.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,4BAA4B,EACjC,KAAK,gCAAgC,EACtC,MAAM,wBAAwB,CAAC;AAOhC,KAAK,iBAAiB,GAClB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,WAAW,EAAE,gCAAgC,CAAA;CAAE,CAAC;AAYtE,MAAM,WAAW,mCAAmC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAsBD,wBAAsB,8BAA8B,IAAI,OAAO,CAAC,MAAM,CAAC,CAUtE;AAoDD,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAsB,6BAA6B,CACjD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,EACrC,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,OAAO,CAAC,CAWlB;AAED,wBAAsB,gCAAgC,CACpD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,EACrC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,mCAAwC,GAChD,OAAO,CAAC,OAAO,CAAC,CAelB;AAED,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -33,15 +33,25 @@ function boundedChild(value, options) {
33
33
  const args = options.standalone === true
34
34
  ? ["internal-health-write"]
35
35
  : [fileURLToPath(import.meta.url)];
36
+ const environment = {};
37
+ if (process.platform === "win32") {
38
+ // PowerShell and the .NET runtime need these OS settings for ACL writes.
39
+ // Continue excluding host credentials from this detached helper.
40
+ for (const [key, value] of Object.entries(process.env)) {
41
+ if (["SYSTEMROOT", "WINDIR", "PATH", "TEMP", "TMP"].includes(key.toUpperCase()))
42
+ environment[key] = value;
43
+ }
44
+ }
45
+ if (options.standalone !== true && process.versions.bun)
46
+ environment.BUN_BE_BUN = "1";
36
47
  try {
37
48
  const child = spawn(process.execPath, args, {
38
49
  detached: true,
50
+ windowsHide: true,
39
51
  stdio: ["pipe", "ignore", "ignore"],
40
52
  // Compiled Bun hosts (including OpenCode) otherwise relaunch their app
41
53
  // instead of evaluating this helper. Keep host credentials out of the child.
42
- env: options.standalone !== true && process.versions.bun
43
- ? { BUN_BE_BUN: "1" }
44
- : {},
54
+ env: environment,
45
55
  });
46
56
  const completion = new Promise((resolveCompletion) => {
47
57
  let settled = false;
@@ -95,7 +105,7 @@ export async function runInvocationHealthWrite(encoded) {
95
105
  const write = decodeWrite(encoded);
96
106
  const staleMs = Math.max(10, Math.min(write.deadlineMs, 1_000));
97
107
  const completionWrite = write.operation.kind === "completion";
98
- const processDeadlineMs = completionWrite ? staleMs * 3 : staleMs;
108
+ const processDeadlineMs = (completionWrite ? staleMs * 3 : staleMs) + (process.platform === "win32" ? 5_000 : 0);
99
109
  const deadline = setTimeout(() => process.exit(1), processDeadlineMs);
100
110
  const store = new ReliabilityStore(write.workspaceKey, {
101
111
  ...(write.home === null ? {} : { home: write.home }),
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-health-writer.js","sourceRoot":"","sources":["../src/invocation-health-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation-health-writer.js","sourceRoot":"","sources":["../src/invocation-health-writer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAwN3D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,6DAA6D;AAC7D,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAkMf;AA0KD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CA4Gf;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAwBf"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../src/live.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AA4O3D,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CA6Cf;AAED,6DAA6D;AAC7D,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAsNf;AA6KD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CA4Gf;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,MAAM,EAAE,eAAe,GAAG,IAAI,EAC9B,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC,CAwBf"}
package/dist/live.js CHANGED
@@ -1,4 +1,4 @@
1
- import { randomUUID } from "node:crypto";
1
+ import { createHash, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
2
2
  import { spawn } from "node:child_process";
3
3
  import { chmod, mkdir, readFile, readdir, rm, stat, writeFile, } from "node:fs/promises";
4
4
  import { createConnection, createServer } from "node:net";
@@ -11,6 +11,7 @@ import { loreApiRequest } from "./api.js";
11
11
  import { ensureMachineRegistered, readMachineIdentity } from "./machine.js";
12
12
  import { openPty } from "./pty.js";
13
13
  import { IS_STANDALONE_BINARY } from "./version.js";
14
+ import { secureWindowsDirectory } from "./windows-permissions.js";
14
15
  const ATTACH_HELP = `lore attach
15
16
  Reconnect to a live Lore-managed session: the same process, not a restart.
16
17
 
@@ -37,7 +38,7 @@ Start a live session with:
37
38
  `;
38
39
  const REPLAY_BUFFER_LIMIT = 256 * 1024;
39
40
  const HEARTBEAT_INTERVAL_MS = 30_000;
40
- const SOCKET_WAIT_MS = 5_000;
41
+ const SOCKET_WAIT_MS = process.platform === "win32" ? 20_000 : 5_000;
41
42
  // A spec with no persisted pid is ambiguous: either the daemon is still
42
43
  // starting (the parent wrote the spec; the daemon has not reached its pid
43
44
  // write yet) or the daemon crashed before persisting its pid. Specs younger
@@ -84,6 +85,10 @@ function specPath(paths, id) {
84
85
  * fall back to the per-user temp dir.
85
86
  */
86
87
  function socketPath(paths, id) {
88
+ if (process.platform === "win32") {
89
+ const owner = createHash("sha256").update(paths.home.toLowerCase()).digest("hex").slice(0, 16);
90
+ return `\\\\.\\pipe\\lore-${owner}-${id}`;
91
+ }
87
92
  const short = id.slice(0, 8);
88
93
  const preferred = resolve(runtimeDirectory(paths), `${short}.sock`);
89
94
  if (Buffer.byteLength(preferred, "utf8") <= 100) {
@@ -91,6 +96,22 @@ function socketPath(paths, id) {
91
96
  }
92
97
  return resolve(tmpdir(), `lore-${short}.sock`);
93
98
  }
99
+ async function removeSocket(path) {
100
+ if (process.platform !== "win32")
101
+ await rm(path, { force: true });
102
+ }
103
+ async function socketReady(path) {
104
+ if (process.platform !== "win32") {
105
+ await stat(path);
106
+ return;
107
+ }
108
+ await new Promise((done, reject) => {
109
+ const socket = createConnection(path);
110
+ socket.setTimeout(500, () => { socket.destroy(); reject(new Error("Pipe not ready")); });
111
+ socket.once("error", reject);
112
+ socket.once("connect", () => { socket.destroy(); done(); });
113
+ });
114
+ }
94
115
  async function readSpec(paths, id) {
95
116
  try {
96
117
  const raw = await readFile(specPath(paths, id), "utf8");
@@ -101,6 +122,8 @@ async function readSpec(paths, id) {
101
122
  }
102
123
  }
103
124
  async function writeSpec(paths, spec) {
125
+ if (process.platform === "win32")
126
+ await secureWindowsDirectory(paths.loreDirectory);
104
127
  const directory = runtimeDirectory(paths);
105
128
  await mkdir(directory, { recursive: true, mode: 0o700 });
106
129
  await writeFile(specPath(paths, spec.id), `${JSON.stringify(spec, null, 2)}\n`, { mode: 0o600 });
@@ -145,7 +168,7 @@ async function listLocalSpecs(paths) {
145
168
  }
146
169
  else {
147
170
  await rm(specPath(paths, spec.id), { force: true });
148
- await rm(socketPath(paths, spec.id), { force: true });
171
+ await removeSocket(socketPath(paths, spec.id));
149
172
  }
150
173
  }
151
174
  else if (processAlive(spec.pid)) {
@@ -154,7 +177,7 @@ async function listLocalSpecs(paths) {
154
177
  else {
155
178
  // Clean up leftovers from a crashed daemon.
156
179
  await rm(specPath(paths, spec.id), { force: true });
157
- await rm(socketPath(paths, spec.id), { force: true });
180
+ await removeSocket(socketPath(paths, spec.id));
158
181
  }
159
182
  }
160
183
  return specs.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
@@ -208,7 +231,7 @@ export async function hostLiveRuntime(options) {
208
231
  while (Date.now() < deadline) {
209
232
  try {
210
233
  // Sockets cannot be opened with readFile; stat proves existence.
211
- await stat(sock);
234
+ await socketReady(sock);
212
235
  ready = true;
213
236
  break;
214
237
  }
@@ -237,6 +260,8 @@ export async function runLiveHostCommand(args, config, paths) {
237
260
  throw new Error(`Unknown live session: ${id}`);
238
261
  }
239
262
  spec.pid = process.pid;
263
+ if (process.platform === "win32")
264
+ spec.pipeToken = randomBytes(32).toString("hex");
240
265
  // Persist the daemon pid before any crash-prone work (openPty / listen) so
241
266
  // a daemon that dies after this point leaves a spec whose pid is defined
242
267
  // and is reaped by the `processAlive` path in listLocalSpecs, rather than
@@ -289,7 +314,7 @@ export async function runLiveHostCommand(args, config, paths) {
289
314
  }
290
315
  }
291
316
  await rm(specPath(paths, id), { force: true });
292
- await rm(socketPath(paths, id), { force: true });
317
+ await removeSocket(socketPath(paths, id));
293
318
  process.exit(code ?? 0);
294
319
  };
295
320
  pty.onExit((code) => {
@@ -310,9 +335,41 @@ export async function runLiveHostCommand(args, config, paths) {
310
335
  }
311
336
  };
312
337
  const server = createServer((client) => {
313
- clients.add(client);
314
- client.write(encodeFrame({ t: "replay", d: replay.toString("base64") }));
315
- client.on("data", frameParser(handleClientFrame));
338
+ // Named pipes do not inherit the private data-directory ACL. Require the
339
+ // secret in the private session file before exposing output or input.
340
+ let authenticated = process.platform !== "win32";
341
+ let authBytes = 0;
342
+ const accept = () => {
343
+ clients.add(client);
344
+ client.write(encodeFrame({ t: "replay", d: replay.toString("base64") }));
345
+ };
346
+ if (authenticated)
347
+ accept();
348
+ else
349
+ client.setTimeout(5_000, () => client.destroy());
350
+ const parse = frameParser(frame => {
351
+ if (authenticated) {
352
+ handleClientFrame(frame);
353
+ return;
354
+ }
355
+ const supplied = Buffer.from(typeof frame.d === "string" ? frame.d : "");
356
+ const expected = Buffer.from(spec.pipeToken);
357
+ if (frame.t !== "auth" || supplied.length !== expected.length || !timingSafeEqual(supplied, expected)) {
358
+ client.destroy();
359
+ return;
360
+ }
361
+ authenticated = true;
362
+ client.setTimeout(0);
363
+ accept();
364
+ });
365
+ client.on("data", chunk => {
366
+ const bytes = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
367
+ if (!authenticated && (authBytes += bytes.length) > 4_096) {
368
+ client.destroy();
369
+ return;
370
+ }
371
+ parse(bytes);
372
+ });
316
373
  client.on("close", () => {
317
374
  clients.delete(client);
318
375
  });
@@ -321,12 +378,13 @@ export async function runLiveHostCommand(args, config, paths) {
321
378
  });
322
379
  });
323
380
  const sock = socketPath(paths, id);
324
- await rm(sock, { force: true });
381
+ await removeSocket(sock);
325
382
  await new Promise((resolvePromise, rejectPromise) => {
326
383
  server.once("error", rejectPromise);
327
384
  server.listen(sock, resolvePromise);
328
385
  });
329
- await chmod(sock, 0o600);
386
+ if (process.platform !== "win32")
387
+ await chmod(sock, 0o600);
330
388
  await writeSpec(paths, spec);
331
389
  // Hub link is best-effort: the live session works locally even when the
332
390
  // hub is unreachable or does not support runtimes yet.
@@ -457,6 +515,9 @@ function runTerminalLoop(transport, onEnd) {
457
515
  };
458
516
  }
459
517
  async function attachLocal(paths, id) {
518
+ const pipeToken = process.platform === "win32" ? (await readSpec(paths, id))?.pipeToken : undefined;
519
+ if (process.platform === "win32" && !pipeToken)
520
+ throw new Error("Live session is not ready to attach.");
460
521
  await new Promise((resolvePromise, rejectPromise) => {
461
522
  const socket = createConnection(socketPath(paths, id));
462
523
  let loop;
@@ -470,6 +531,8 @@ async function attachLocal(paths, id) {
470
531
  socket.on("error", disconnect);
471
532
  socket.on("close", disconnect);
472
533
  socket.once("connect", () => {
534
+ if (pipeToken)
535
+ socket.write(encodeFrame({ t: "auth", d: pipeToken }));
473
536
  loop = runTerminalLoop({
474
537
  send(frame) {
475
538
  if (!socket.destroyed && socket.writable) {