codebyplan 1.13.65 → 1.13.67
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +118 -75
- package/dist/__tests__/helpers.d.ts +22 -0
- package/dist/__tests__/helpers.d.ts.map +1 -0
- package/dist/ci-public.d.ts +20 -0
- package/dist/ci-public.d.ts.map +1 -0
- package/dist/ci.js +11 -2
- package/dist/cli/arch-map.d.ts +33 -0
- package/dist/cli/arch-map.d.ts.map +1 -0
- package/dist/cli/branch.d.ts +10 -0
- package/dist/cli/branch.d.ts.map +1 -0
- package/dist/cli/bump.d.ts +12 -0
- package/dist/cli/bump.d.ts.map +1 -0
- package/dist/cli/cd.d.ts +20 -0
- package/dist/cli/cd.d.ts.map +1 -0
- package/dist/cli/check.d.ts +30 -0
- package/dist/cli/check.d.ts.map +1 -0
- package/dist/cli/checkpoint.d.ts +17 -0
- package/dist/cli/checkpoint.d.ts.map +1 -0
- package/dist/cli/ci.d.ts +31 -0
- package/dist/cli/ci.d.ts.map +1 -0
- package/dist/cli/claude/__test-helpers__/expect-manifest.d.ts +7 -0
- package/dist/cli/claude/__test-helpers__/expect-manifest.d.ts.map +1 -0
- package/dist/cli/claude/__test-helpers__/tmp-fixture.d.ts +64 -0
- package/dist/cli/claude/__test-helpers__/tmp-fixture.d.ts.map +1 -0
- package/dist/cli/claude/audit-mode.d.ts +16 -0
- package/dist/cli/claude/audit-mode.d.ts.map +1 -0
- package/dist/cli/claude/generate.d.ts +23 -0
- package/dist/cli/claude/generate.d.ts.map +1 -0
- package/dist/cli/claude/install.d.ts +55 -0
- package/dist/cli/claude/install.d.ts.map +1 -0
- package/dist/cli/claude/migrate-memory.d.ts +117 -0
- package/dist/cli/claude/migrate-memory.d.ts.map +1 -0
- package/dist/cli/claude/readme.d.ts +28 -0
- package/dist/cli/claude/readme.d.ts.map +1 -0
- package/dist/cli/claude/status.d.ts +41 -0
- package/dist/cli/claude/status.d.ts.map +1 -0
- package/dist/cli/claude/uninstall.d.ts +21 -0
- package/dist/cli/claude/uninstall.d.ts.map +1 -0
- package/dist/cli/claude/update.d.ts +25 -0
- package/dist/cli/claude/update.d.ts.map +1 -0
- package/dist/cli/claude/verify-parity.d.ts +25 -0
- package/dist/cli/claude/verify-parity.d.ts.map +1 -0
- package/dist/cli/cleanup-plan-folders.d.ts +21 -0
- package/dist/cli/cleanup-plan-folders.d.ts.map +1 -0
- package/dist/cli/commit.d.ts +25 -0
- package/dist/cli/commit.d.ts.map +1 -0
- package/dist/cli/config.d.ts +50 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/confirm.d.ts +9 -0
- package/dist/cli/confirm.d.ts.map +1 -0
- package/dist/cli/create-org.d.ts +9 -0
- package/dist/cli/create-org.d.ts.map +1 -0
- package/dist/cli/create-project.d.ts +10 -0
- package/dist/cli/create-project.d.ts.map +1 -0
- package/dist/cli/create-repo.d.ts +14 -0
- package/dist/cli/create-repo.d.ts.map +1 -0
- package/dist/cli/docs.d.ts +41 -0
- package/dist/cli/docs.d.ts.map +1 -0
- package/dist/cli/doctor.d.ts +17 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/e2e/verify-round.d.ts +46 -0
- package/dist/cli/e2e/verify-round.d.ts.map +1 -0
- package/dist/cli/e2e.d.ts +11 -0
- package/dist/cli/e2e.d.ts.map +1 -0
- package/dist/cli/eslint.d.ts +20 -0
- package/dist/cli/eslint.d.ts.map +1 -0
- package/dist/cli/export-writer.d.ts +99 -0
- package/dist/cli/export-writer.d.ts.map +1 -0
- package/dist/cli/handoff.d.ts +13 -0
- package/dist/cli/handoff.d.ts.map +1 -0
- package/dist/cli/login.d.ts +10 -0
- package/dist/cli/login.d.ts.map +1 -0
- package/dist/cli/logout.d.ts +2 -0
- package/dist/cli/logout.d.ts.map +1 -0
- package/dist/cli/lsp.d.ts +16 -0
- package/dist/cli/lsp.d.ts.map +1 -0
- package/dist/cli/migration-collisions.d.ts +10 -0
- package/dist/cli/migration-collisions.d.ts.map +1 -0
- package/dist/cli/ports.d.ts +29 -0
- package/dist/cli/ports.d.ts.map +1 -0
- package/dist/cli/process-exit-signal.d.ts +24 -0
- package/dist/cli/process-exit-signal.d.ts.map +1 -0
- package/dist/cli/round.d.ts +79 -0
- package/dist/cli/round.d.ts.map +1 -0
- package/dist/cli/scaffold-publish-workflow.d.ts +16 -0
- package/dist/cli/scaffold-publish-workflow.d.ts.map +1 -0
- package/dist/cli/session/freshness-gate.d.ts +21 -0
- package/dist/cli/session/freshness-gate.d.ts.map +1 -0
- package/dist/cli/session/home-ff.d.ts +16 -0
- package/dist/cli/session/home-ff.d.ts.map +1 -0
- package/dist/cli/session/infra-files.d.ts +21 -0
- package/dist/cli/session/infra-files.d.ts.map +1 -0
- package/dist/cli/session/start.d.ts +70 -0
- package/dist/cli/session/start.d.ts.map +1 -0
- package/dist/cli/session.d.ts +17 -0
- package/dist/cli/session.d.ts.map +1 -0
- package/dist/cli/setup.d.ts +2 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/ship.d.ts +16 -0
- package/dist/cli/ship.d.ts.map +1 -0
- package/dist/cli/slug.d.ts +10 -0
- package/dist/cli/slug.d.ts.map +1 -0
- package/dist/cli/standalone-task.d.ts +31 -0
- package/dist/cli/standalone-task.d.ts.map +1 -0
- package/dist/cli/statusline.d.ts +10 -0
- package/dist/cli/statusline.d.ts.map +1 -0
- package/dist/cli/supabase/new-migration.d.ts +24 -0
- package/dist/cli/supabase/new-migration.d.ts.map +1 -0
- package/dist/cli/supabase/preview-check.d.ts +30 -0
- package/dist/cli/supabase/preview-check.d.ts.map +1 -0
- package/dist/cli/supabase/resolve-preview.d.ts +19 -0
- package/dist/cli/supabase/resolve-preview.d.ts.map +1 -0
- package/dist/cli/supabase/teardown-preview.d.ts +22 -0
- package/dist/cli/supabase/teardown-preview.d.ts.map +1 -0
- package/dist/cli/sync.d.ts +13 -0
- package/dist/cli/sync.d.ts.map +1 -0
- package/dist/cli/task.d.ts +17 -0
- package/dist/cli/task.d.ts.map +1 -0
- package/dist/cli/tech-stack.d.ts +11 -0
- package/dist/cli/tech-stack.d.ts.map +1 -0
- package/dist/cli/upgrade-auth.d.ts +2 -0
- package/dist/cli/upgrade-auth.d.ts.map +1 -0
- package/dist/cli/upload-e2e-images.d.ts +18 -0
- package/dist/cli/upload-e2e-images.d.ts.map +1 -0
- package/dist/cli/validate-waves.d.ts +22 -0
- package/dist/cli/validate-waves.d.ts.map +1 -0
- package/dist/cli/version-status.d.ts +42 -0
- package/dist/cli/version-status.d.ts.map +1 -0
- package/dist/cli/watch.d.ts +18 -0
- package/dist/cli/watch.d.ts.map +1 -0
- package/dist/cli/whoami.d.ts +5 -0
- package/dist/cli/whoami.d.ts.map +1 -0
- package/dist/cli/worktree/add.d.ts +81 -0
- package/dist/cli/worktree/add.d.ts.map +1 -0
- package/dist/cli/worktree/create.d.ts +46 -0
- package/dist/cli/worktree/create.d.ts.map +1 -0
- package/dist/cli/worktree/path.d.ts +19 -0
- package/dist/cli/worktree/path.d.ts.map +1 -0
- package/dist/cli/worktree/remove.d.ts +92 -0
- package/dist/cli/worktree/remove.d.ts.map +1 -0
- package/dist/cli/worktree.d.ts +15 -0
- package/dist/cli/worktree.d.ts.map +1 -0
- package/dist/cli.js +5697 -5322
- package/dist/dispatch.d.ts +64 -0
- package/dist/dispatch.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/lib/agents-generator.d.ts +42 -0
- package/dist/lib/agents-generator.d.ts.map +1 -0
- package/dist/lib/api.d.ts +54 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/atomic-write.d.ts +27 -0
- package/dist/lib/atomic-write.d.ts.map +1 -0
- package/dist/lib/branch-checkout.d.ts +47 -0
- package/dist/lib/branch-checkout.d.ts.map +1 -0
- package/dist/lib/branch-port-resolver.d.ts +58 -0
- package/dist/lib/branch-port-resolver.d.ts.map +1 -0
- package/dist/lib/bump.d.ts +97 -0
- package/dist/lib/bump.d.ts.map +1 -0
- package/dist/lib/cd-init.d.ts +86 -0
- package/dist/lib/cd-init.d.ts.map +1 -0
- package/dist/lib/check-baseline.d.ts +91 -0
- package/dist/lib/check-baseline.d.ts.map +1 -0
- package/dist/lib/check.d.ts +178 -0
- package/dist/lib/check.d.ts.map +1 -0
- package/dist/lib/ci-init.d.ts +106 -0
- package/dist/lib/ci-init.d.ts.map +1 -0
- package/dist/lib/ci-resolve.d.ts +60 -0
- package/dist/lib/ci-resolve.d.ts.map +1 -0
- package/dist/lib/claude-mode-audit.d.ts +41 -0
- package/dist/lib/claude-mode-audit.d.ts.map +1 -0
- package/dist/lib/claude-plan.d.ts +34 -0
- package/dist/lib/claude-plan.d.ts.map +1 -0
- package/dist/lib/commit-scope.d.ts +21 -0
- package/dist/lib/commit-scope.d.ts.map +1 -0
- package/dist/lib/e2e.d.ts +157 -0
- package/dist/lib/e2e.d.ts.map +1 -0
- package/dist/lib/eslint-generator.d.ts +86 -0
- package/dist/lib/eslint-generator.d.ts.map +1 -0
- package/dist/lib/file-lock.d.ts +44 -0
- package/dist/lib/file-lock.d.ts.map +1 -0
- package/dist/lib/flags.d.ts +115 -0
- package/dist/lib/flags.d.ts.map +1 -0
- package/dist/lib/gh-required-checks.d.ts +76 -0
- package/dist/lib/gh-required-checks.d.ts.map +1 -0
- package/dist/lib/git-utils.d.ts +46 -0
- package/dist/lib/git-utils.d.ts.map +1 -0
- package/dist/lib/gitignore-block.d.ts +32 -0
- package/dist/lib/gitignore-block.d.ts.map +1 -0
- package/dist/lib/gitignore-detect.d.ts +117 -0
- package/dist/lib/gitignore-detect.d.ts.map +1 -0
- package/dist/lib/handoff-file.d.ts +63 -0
- package/dist/lib/handoff-file.d.ts.map +1 -0
- package/dist/lib/hash.d.ts +9 -0
- package/dist/lib/hash.d.ts.map +1 -0
- package/dist/lib/lsp-detect.d.ts +42 -0
- package/dist/lib/lsp-detect.d.ts.map +1 -0
- package/dist/lib/manifest.d.ts +88 -0
- package/dist/lib/manifest.d.ts.map +1 -0
- package/dist/lib/mcp-client.d.ts +39 -0
- package/dist/lib/mcp-client.d.ts.map +1 -0
- package/dist/lib/migrate-branch-model.d.ts +34 -0
- package/dist/lib/migrate-branch-model.d.ts.map +1 -0
- package/dist/lib/migrate-local-config.d.ts +39 -0
- package/dist/lib/migrate-local-config.d.ts.map +1 -0
- package/dist/lib/migration-collisions.d.ts +61 -0
- package/dist/lib/migration-collisions.d.ts.map +1 -0
- package/dist/lib/port-verify.d.ts +73 -0
- package/dist/lib/port-verify.d.ts.map +1 -0
- package/dist/lib/prompt.d.ts +41 -0
- package/dist/lib/prompt.d.ts.map +1 -0
- package/dist/lib/readme-generator.d.ts +108 -0
- package/dist/lib/readme-generator.d.ts.map +1 -0
- package/dist/lib/repo-reader.d.ts +59 -0
- package/dist/lib/repo-reader.d.ts.map +1 -0
- package/dist/lib/scaffold-cd-workflow.d.ts +48 -0
- package/dist/lib/scaffold-cd-workflow.d.ts.map +1 -0
- package/dist/lib/scaffold-ci-workflow.d.ts +83 -0
- package/dist/lib/scaffold-ci-workflow.d.ts.map +1 -0
- package/dist/lib/scaffold-publish-workflow.d.ts +48 -0
- package/dist/lib/scaffold-publish-workflow.d.ts.map +1 -0
- package/dist/lib/server-detect.d.ts +20 -0
- package/dist/lib/server-detect.d.ts.map +1 -0
- package/dist/lib/session.d.ts +371 -0
- package/dist/lib/session.d.ts.map +1 -0
- package/dist/lib/settings-merge.d.ts +268 -0
- package/dist/lib/settings-merge.d.ts.map +1 -0
- package/dist/lib/ship.d.ts +84 -0
- package/dist/lib/ship.d.ts.map +1 -0
- package/dist/lib/slug.d.ts +26 -0
- package/dist/lib/slug.d.ts.map +1 -0
- package/dist/lib/spawn.d.ts +12 -0
- package/dist/lib/spawn.d.ts.map +1 -0
- package/dist/lib/state-client.d.ts +54 -0
- package/dist/lib/state-client.d.ts.map +1 -0
- package/dist/lib/state-store.d.ts +153 -0
- package/dist/lib/state-store.d.ts.map +1 -0
- package/dist/lib/state-sync.d.ts +101 -0
- package/dist/lib/state-sync.d.ts.map +1 -0
- package/dist/lib/statusline-config.d.ts +55 -0
- package/dist/lib/statusline-config.d.ts.map +1 -0
- package/dist/lib/structure-generator.d.ts +63 -0
- package/dist/lib/structure-generator.d.ts.map +1 -0
- package/dist/lib/supabase.d.ts +87 -0
- package/dist/lib/supabase.d.ts.map +1 -0
- package/dist/lib/sync-approvals.d.ts +108 -0
- package/dist/lib/sync-approvals.d.ts.map +1 -0
- package/dist/lib/tech-detect.d.ts +77 -0
- package/dist/lib/tech-detect.d.ts.map +1 -0
- package/dist/lib/template-walker.d.ts +26 -0
- package/dist/lib/template-walker.d.ts.map +1 -0
- package/dist/lib/templates-dir.d.ts +25 -0
- package/dist/lib/templates-dir.d.ts.map +1 -0
- package/dist/lib/types.d.ts +843 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/validate-waves.d.ts +38 -0
- package/dist/lib/validate-waves.d.ts.map +1 -0
- package/dist/lib/verify-parity.d.ts +154 -0
- package/dist/lib/verify-parity.d.ts.map +1 -0
- package/dist/lib/version.d.ts +3 -0
- package/dist/lib/version.d.ts.map +1 -0
- package/dist/lib/watch-daemon.d.ts +114 -0
- package/dist/lib/watch-daemon.d.ts.map +1 -0
- package/dist/lib/worktree.d.ts +56 -0
- package/dist/lib/worktree.d.ts.map +1 -0
- package/dist/oauth/browser.d.ts +8 -0
- package/dist/oauth/browser.d.ts.map +1 -0
- package/dist/oauth/client-registration.d.ts +16 -0
- package/dist/oauth/client-registration.d.ts.map +1 -0
- package/dist/oauth/device-flow.d.ts +40 -0
- package/dist/oauth/device-flow.d.ts.map +1 -0
- package/dist/oauth/jwt-decode.d.ts +10 -0
- package/dist/oauth/jwt-decode.d.ts.map +1 -0
- package/dist/oauth/keychain.d.ts +17 -0
- package/dist/oauth/keychain.d.ts.map +1 -0
- package/dist/oauth/token-refresh.d.ts +7 -0
- package/dist/oauth/token-refresh.d.ts.map +1 -0
- package/dist/oauth/types.d.ts +28 -0
- package/dist/oauth/types.d.ts.map +1 -0
- package/dist/oauth/urls.d.ts +16 -0
- package/dist/oauth/urls.d.ts.map +1 -0
- package/package.json +5 -6
- package/templates/agents/cbp-security-agent.md +0 -1
- package/templates/agents/cbp-stripe-agent.md +0 -1
- package/templates/agents/cbp-testing-qa-agent.md +0 -1
- package/templates/hooks/cbp-skill-context-guard.sh +0 -1
- package/templates/hooks/cbp-test-hooks.sh +0 -81
- package/templates/hooks/validate-structure-lib.sh +36 -9
- package/templates/rules/cbp-operating-gotchas.md +8 -10
- package/templates/rules/todo-backend.md +4 -2
- package/templates/skills/cbp-build-cc-settings/reference/cbp-permission-policy.md +3 -3
- package/templates/skills/cbp-checkpoint-check/SKILL.md +0 -1
- package/templates/skills/cbp-checkpoint-end/SKILL.md +11 -5
- package/templates/skills/cbp-clear-continue/SKILL.md +0 -1
- package/templates/skills/cbp-clear-prep/SKILL.md +0 -1
- package/templates/skills/cbp-finalize/SKILL.md +2 -2
- package/templates/skills/cbp-setup-cd/SKILL.md +0 -1
- package/templates/skills/cbp-setup-ci/SKILL.md +0 -1
- package/templates/skills/cbp-standalone-task-complete/SKILL.md +40 -0
- package/templates/skills/cbp-stripe/SKILL.md +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wave validation for CodeByPlan round plans.
|
|
3
|
+
*
|
|
4
|
+
* Checks three structural invariants:
|
|
5
|
+
* I — Files are disjoint across waves (no path appears in more than one wave).
|
|
6
|
+
* II — depends_on forms a valid DAG (existing refs, no cycles).
|
|
7
|
+
* III — Each wave has 3–15 files (inclusive), with documented exemptions for
|
|
8
|
+
* small plans.
|
|
9
|
+
*
|
|
10
|
+
* Pure function — no I/O, no MCP, no git, no filesystem, no process/exit, no console.
|
|
11
|
+
*/
|
|
12
|
+
export interface Wave {
|
|
13
|
+
name: string;
|
|
14
|
+
agent_type?: "round-builder" | "inline";
|
|
15
|
+
files: string[];
|
|
16
|
+
depends_on?: string[];
|
|
17
|
+
skill_preloads?: string[];
|
|
18
|
+
note?: string;
|
|
19
|
+
}
|
|
20
|
+
export interface WaveViolation {
|
|
21
|
+
invariant: "I" | "II" | "III";
|
|
22
|
+
code: string;
|
|
23
|
+
message: string;
|
|
24
|
+
wave?: string;
|
|
25
|
+
detail?: unknown;
|
|
26
|
+
}
|
|
27
|
+
export interface ValidateWavesResult {
|
|
28
|
+
ok: boolean;
|
|
29
|
+
violations: WaveViolation[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Validate an array of waves against invariants I, II, and III.
|
|
33
|
+
*
|
|
34
|
+
* Returns { ok: true, violations: [] } when all invariants hold.
|
|
35
|
+
* Returns { ok: false, violations: [...] } when one or more are violated.
|
|
36
|
+
*/
|
|
37
|
+
export declare function validateWaves(waves: Wave[]): ValidateWavesResult;
|
|
38
|
+
//# sourceMappingURL=validate-waves.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-waves.d.ts","sourceRoot":"","sources":["../../src/lib/validate-waves.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,eAAe,GAAG,QAAQ,CAAC;IACxC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,KAAK,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAMD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,mBAAmB,CAuLhE"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Directories scanned when checking sibling parity between .claude/ and
|
|
3
|
+
* packages/codebyplan-package/templates/. Mirrors SCAN_DIRS in
|
|
4
|
+
* scripts/check-sibling-identity.mjs.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SCAN_DIRS: readonly string[];
|
|
7
|
+
/**
|
|
8
|
+
* Valid scope values for the `scope:` frontmatter key (in .md files) and the
|
|
9
|
+
* `# @scope:` comment (in .sh files).
|
|
10
|
+
*
|
|
11
|
+
* The `repo-only:<slug>` variant is validated by REPO_ONLY_RE below.
|
|
12
|
+
*/
|
|
13
|
+
export type ScopeValue = "org-shared" | "project-shared" | `repo-only:${string}`;
|
|
14
|
+
/** Returns true when the given string is a valid scope marker value. */
|
|
15
|
+
export declare function isValidScope(s: string): s is ScopeValue;
|
|
16
|
+
export type ViolationType = "divergent" | "missing-twin" | "extra-twin" | "missing-scope" | "invalid-scope" | "redundant-scope";
|
|
17
|
+
export interface ParityViolation {
|
|
18
|
+
type: ViolationType;
|
|
19
|
+
/** Relative path — relative to the .claude/ directory for parity violations,
|
|
20
|
+
* or to claudeDir for scope violations. */
|
|
21
|
+
path: string;
|
|
22
|
+
detail?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Files that intentionally have no twin in templates/.
|
|
26
|
+
*
|
|
27
|
+
* KEEP IN SYNC with `EXPECTED_ONE_SIDED` in `scripts/check-sibling-identity.mjs`
|
|
28
|
+
* — the two are maintained independently (CJS script vs ESM lib) and there is no
|
|
29
|
+
* shared import. If you add an entry here, add it there too (and vice versa) or
|
|
30
|
+
* the two parity tools will disagree.
|
|
31
|
+
*/
|
|
32
|
+
export declare const DEFAULT_EXPECTED_ONE_SIDED: Set<string>;
|
|
33
|
+
export interface CheckSiblingParityOpts {
|
|
34
|
+
/** Absolute path to the .claude/ directory. */
|
|
35
|
+
claudeDir: string;
|
|
36
|
+
/** Absolute path to the templates/ directory (packages/codebyplan-package/templates). */
|
|
37
|
+
templatesDir: string;
|
|
38
|
+
/** Paths relative to a SCAN_DIR root that are allowed to have no template twin. */
|
|
39
|
+
expectedOneSided?: Set<string>;
|
|
40
|
+
/**
|
|
41
|
+
* Absolute paths to subtrees that should be skipped entirely.
|
|
42
|
+
* Defaults to [path.join(claudeDir, 'hooks', '__test-fixtures__')].
|
|
43
|
+
*/
|
|
44
|
+
ignoredSubtrees?: string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Compare .claude/{SCAN_DIRS} against templates/{SCAN_DIRS} byte-for-byte.
|
|
48
|
+
*
|
|
49
|
+
* Reports:
|
|
50
|
+
* - `divergent` — file exists on both sides but content differs
|
|
51
|
+
* - `missing-twin` — .claude file has no template twin (and is not in expectedOneSided)
|
|
52
|
+
* - `extra-twin` — template file has no .claude counterpart
|
|
53
|
+
*
|
|
54
|
+
* Does NOT walk templates for extra-twin detection when templatesDir is absent
|
|
55
|
+
* (callers should guard that before calling).
|
|
56
|
+
*
|
|
57
|
+
* Mirrors the logic in scripts/check-sibling-identity.mjs.
|
|
58
|
+
*/
|
|
59
|
+
export declare function checkSiblingParity(opts: CheckSiblingParityOpts): ParityViolation[];
|
|
60
|
+
export interface CheckScopeMarkersOpts {
|
|
61
|
+
/** Absolute path to the .claude/ directory. */
|
|
62
|
+
claudeDir: string;
|
|
63
|
+
/** Subdirectories to walk. Defaults to SCAN_DIRS. */
|
|
64
|
+
scanDirs?: readonly string[];
|
|
65
|
+
/**
|
|
66
|
+
* Set of relative paths (from claudeDir) exempt from scope enforcement.
|
|
67
|
+
* Useful for test fixtures or generated files that intentionally lack scope.
|
|
68
|
+
*/
|
|
69
|
+
allowlist?: Set<string>;
|
|
70
|
+
/**
|
|
71
|
+
* Absolute path to the templates/ directory.
|
|
72
|
+
* When provided and the directory exists, files that have a twin under this
|
|
73
|
+
* directory are considered *managed* — for managed files, org-shared is the
|
|
74
|
+
* implicit markerless default and an explicit `org-shared` marker is
|
|
75
|
+
* redundant (WARN), but the marker is otherwise optional.
|
|
76
|
+
* When absent/undefined, all structural entries are treated as user-created
|
|
77
|
+
* (the pre-existing behavior is preserved exactly).
|
|
78
|
+
*/
|
|
79
|
+
templatesDir?: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Decide whether a file is a *structural entry* that requires a scope marker.
|
|
83
|
+
*
|
|
84
|
+
* Only the entry file of each structural unit carries a marker — NOT the
|
|
85
|
+
* supporting `reference/`, `examples/`, `templates/`, or `scripts/` files that
|
|
86
|
+
* live inside a skill/agent folder. This mirrors the scope-vocabulary.md rule
|
|
87
|
+
* ("every CBP-managed agent, skill, rule, and hook script must declare exactly
|
|
88
|
+
* one scope") where the unit is the skill (its SKILL.md), the agent, the rule,
|
|
89
|
+
* or the hook script — not every Markdown file nested beneath them.
|
|
90
|
+
*
|
|
91
|
+
* `entry` is the path relative to the scanDir root (forward-slashed).
|
|
92
|
+
*/
|
|
93
|
+
export declare function isStructuralEntry(scanDir: string, entry: string): boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Walk .claude/{scanDirs} and check every *structural entry* file (per
|
|
96
|
+
* {@link isStructuralEntry}) for a valid scope marker.
|
|
97
|
+
*
|
|
98
|
+
* - .md files: `scope: <value>` in YAML frontmatter (first `---` block)
|
|
99
|
+
* - .sh files: `# @scope: <value>` comment line
|
|
100
|
+
*
|
|
101
|
+
* Reports:
|
|
102
|
+
* - `missing-scope` — user-created file (no twin) with no scope marker
|
|
103
|
+
* - `invalid-scope` — marker found but value is not in the enum
|
|
104
|
+
* - `redundant-scope` — managed file (twin exists) with an explicit `org-shared` marker
|
|
105
|
+
* (org-shared is the implicit default; the marker is superfluous)
|
|
106
|
+
*
|
|
107
|
+
* Twin-aware model (when `opts.templatesDir` is provided and exists):
|
|
108
|
+
* - A file is *managed* if a twin exists under `templatesDir` at the same relative path.
|
|
109
|
+
* - Managed files: marker is optional. A missing marker = OK (org-shared implied).
|
|
110
|
+
* An explicit `org-shared` marker = `redundant-scope` warning.
|
|
111
|
+
* Any other valid scope (project-shared, repo-only) = OK.
|
|
112
|
+
* An invalid scope value = `invalid-scope` error.
|
|
113
|
+
* - User-created files (no twin, or templatesDir absent): reproduces pre-existing behavior
|
|
114
|
+
* exactly — missing marker = `missing-scope`, invalid = `invalid-scope`, valid = OK.
|
|
115
|
+
*
|
|
116
|
+
* INVARIANT: when `opts.templatesDir` is absent/undefined, behavior is byte-identical to
|
|
117
|
+
* the previous implementation (no `redundant-scope` items ever produced).
|
|
118
|
+
*/
|
|
119
|
+
export declare function checkScopeMarkers(opts: CheckScopeMarkersOpts): ParityViolation[];
|
|
120
|
+
export interface RunVerifyParityOpts {
|
|
121
|
+
/** Absolute path to .claude/. */
|
|
122
|
+
claudeDir: string;
|
|
123
|
+
/**
|
|
124
|
+
* Absolute path to the package's templates/ directory.
|
|
125
|
+
* When omitted or the path does not exist, sibling parity is skipped
|
|
126
|
+
* (scope sweep still runs).
|
|
127
|
+
*/
|
|
128
|
+
templatesDir?: string;
|
|
129
|
+
/** One-sided allowlist forwarded to checkSiblingParity. */
|
|
130
|
+
expectedOneSided?: Set<string>;
|
|
131
|
+
}
|
|
132
|
+
export interface RunVerifyParityResult {
|
|
133
|
+
violations: ParityViolation[];
|
|
134
|
+
/**
|
|
135
|
+
* Non-blocking warnings (currently: `redundant-scope` items).
|
|
136
|
+
* These do NOT contribute to the exit-code — `violations.length > 0` drives
|
|
137
|
+
* the exit code; `warnings` are purely informational.
|
|
138
|
+
*/
|
|
139
|
+
warnings: ParityViolation[];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Run all parity checks:
|
|
143
|
+
* 1. Scope marker sweep (always — both monorepo and consumer installs).
|
|
144
|
+
* When templatesDir is provided and exists, twin-aware managed-file logic
|
|
145
|
+
* applies: redundant-scope items are partitioned into `warnings`.
|
|
146
|
+
* 2. Sibling parity (only when templatesDir is provided AND exists on disk).
|
|
147
|
+
*
|
|
148
|
+
* Pure — no process.exit, no console output.
|
|
149
|
+
*
|
|
150
|
+
* Exit-code invariant: `violations.length > 0 ? 1 : 0`.
|
|
151
|
+
* `warnings` (redundant-scope) NEVER raise the exit code.
|
|
152
|
+
*/
|
|
153
|
+
export declare function runVerifyParity(opts: RunVerifyParityOpts): RunVerifyParityResult;
|
|
154
|
+
//# sourceMappingURL=verify-parity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify-parity.d.ts","sourceRoot":"","sources":["../../src/lib/verify-parity.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,SAAS,EAAE,SAAS,MAAM,EAKtC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,gBAAgB,GAChB,aAAa,MAAM,EAAE,CAAC;AAM1B,wEAAwE;AACxE,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,IAAI,UAAU,CAEvD;AAID,MAAM,MAAM,aAAa,GACrB,WAAW,GACX,cAAc,GACd,YAAY,GACZ,eAAe,GACf,eAAe,GACf,iBAAiB,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB;gDAC4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,GAAG,CAAC,MAAM,CAKjD,CAAC;AAmBH,MAAM,WAAW,sBAAsB;IACrC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,yFAAyF;IACzF,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,sBAAsB,GAC3B,eAAe,EAAE,CAuFnB;AAID,MAAM,WAAW,qBAAqB;IACpC,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAuBzE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,qBAAqB,GAC1B,eAAe,EAAE,CAiGnB;AAID,MAAM,WAAW,mBAAmB;IAClC,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAyBvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/lib/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,QAA6C,CAAC;AAClE,eAAO,MAAM,YAAY,eAAe,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WatchDaemon — Supabase Realtime down-sync daemon.
|
|
3
|
+
*
|
|
4
|
+
* Uses dependency injection for all I/O and timers so it can be fully
|
|
5
|
+
* unit-tested without real network connections or Supabase clients.
|
|
6
|
+
*
|
|
7
|
+
* Timer behaviour:
|
|
8
|
+
* - Token refresh: adaptive — 80% of the minted token's TTL (min 30 s);
|
|
9
|
+
* falls back to 45 s when expires_at is unusable
|
|
10
|
+
* - Fallback poll: every 25 s (active ONLY while disconnected)
|
|
11
|
+
* - Safety poll: every 300 s (always-on; catches missed broadcasts)
|
|
12
|
+
* - Proactive reconnect: every ~25min (ahead of Supabase's ~30min WS close) —
|
|
13
|
+
* tears down the CLIENT (not just the channel) so the
|
|
14
|
+
* underlying WebSocket transport is actually replaced
|
|
15
|
+
* - Reconnect backoff: exp-backoff with jitter; deduped via `reconnecting`
|
|
16
|
+
* guard; re-mints a fresh token before re-subscribing
|
|
17
|
+
*/
|
|
18
|
+
export interface MintTokenResponse {
|
|
19
|
+
token: string;
|
|
20
|
+
expires_at: string;
|
|
21
|
+
supabase_url: string;
|
|
22
|
+
supabase_anon_key: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Minimal interface for a Supabase Realtime channel, capturing only what the
|
|
26
|
+
* daemon uses. Enables tests to provide a mock without importing the real SDK.
|
|
27
|
+
*/
|
|
28
|
+
export interface RealtimeChannelLike {
|
|
29
|
+
on(event: "broadcast", opts: {
|
|
30
|
+
event: string;
|
|
31
|
+
}, handler: (payload: unknown) => void): RealtimeChannelLike;
|
|
32
|
+
subscribe(statusCb?: (status: string, err?: Error) => void): RealtimeChannelLike;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Minimal interface for the Supabase client, capturing only what the daemon
|
|
36
|
+
* uses.
|
|
37
|
+
*/
|
|
38
|
+
export interface RealtimeClientLike {
|
|
39
|
+
realtime: {
|
|
40
|
+
setAuth(token: string): void;
|
|
41
|
+
};
|
|
42
|
+
channel(name: string, opts?: unknown): RealtimeChannelLike;
|
|
43
|
+
removeChannel(channel: RealtimeChannelLike): Promise<unknown>;
|
|
44
|
+
}
|
|
45
|
+
/** Dependency injection interface for WatchDaemon. */
|
|
46
|
+
export interface WatchDaemonDeps {
|
|
47
|
+
/** Mint a short-lived Supabase JWT from the CodeByPlan backend. */
|
|
48
|
+
mintToken(): Promise<MintTokenResponse>;
|
|
49
|
+
/** Create a Supabase Realtime client (dependency-injected for mocking). */
|
|
50
|
+
createRealtimeClient(url: string, anonKey: string): RealtimeClientLike;
|
|
51
|
+
/** Run a delta sync — reuses state-sync.ts runSync. */
|
|
52
|
+
runSync(repoRoot: string, repoId: string, worktreeId?: string): Promise<unknown>;
|
|
53
|
+
/** Read the local sync cursor for broadcast debounce. */
|
|
54
|
+
readCursor(repoRoot: string): Promise<{
|
|
55
|
+
sync_seq: number;
|
|
56
|
+
} | null>;
|
|
57
|
+
/** Current timestamp in ms (injectable so tests can control it). */
|
|
58
|
+
now(): number;
|
|
59
|
+
/** Optional log sink; defaults to process.stderr. */
|
|
60
|
+
log?(msg: string): void;
|
|
61
|
+
}
|
|
62
|
+
export declare class WatchDaemon {
|
|
63
|
+
private readonly deps;
|
|
64
|
+
private stopped;
|
|
65
|
+
private connected;
|
|
66
|
+
private reconnecting;
|
|
67
|
+
private reconnectAttempt;
|
|
68
|
+
private client;
|
|
69
|
+
private channel;
|
|
70
|
+
private tokenRefreshTimer;
|
|
71
|
+
private fallbackPollTimer;
|
|
72
|
+
private safetyPollTimer;
|
|
73
|
+
private proactiveReconnectTimer;
|
|
74
|
+
private stopResolve;
|
|
75
|
+
constructor(deps: WatchDaemonDeps);
|
|
76
|
+
/**
|
|
77
|
+
* Start the daemon: mint a token, open the Realtime channel, start all
|
|
78
|
+
* timers, and keep running until stop() is called.
|
|
79
|
+
*
|
|
80
|
+
* Never throws — all errors are caught and logged.
|
|
81
|
+
*/
|
|
82
|
+
run(repoRoot: string, repoId: string, worktreeId?: string): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Stop the daemon: clear all timers, remove the Realtime channel, and
|
|
85
|
+
* unblock run().
|
|
86
|
+
*/
|
|
87
|
+
stop(): void;
|
|
88
|
+
private connect;
|
|
89
|
+
/**
|
|
90
|
+
* Derive the next token-refresh delay from the minted token's expiry:
|
|
91
|
+
* 80% of the remaining TTL, floored at 30 s (clock-skew guard). Falls back
|
|
92
|
+
* to 45 s when expires_at is missing/unparseable/already past.
|
|
93
|
+
*/
|
|
94
|
+
private computeRefreshMs;
|
|
95
|
+
private subscribeToChannel;
|
|
96
|
+
private handleBroadcast;
|
|
97
|
+
private handleStatus;
|
|
98
|
+
private scheduleReconnect;
|
|
99
|
+
private startTokenRefresh;
|
|
100
|
+
private doTokenRefresh;
|
|
101
|
+
private startFallbackPoll;
|
|
102
|
+
private stopFallbackPoll;
|
|
103
|
+
private doFallbackPoll;
|
|
104
|
+
private startSafetyPoll;
|
|
105
|
+
private doSafetyPoll;
|
|
106
|
+
private scheduleProactiveReconnect;
|
|
107
|
+
private doProactiveReconnect;
|
|
108
|
+
private clearAllTimers;
|
|
109
|
+
private log;
|
|
110
|
+
/** Sleep for `ms` milliseconds — uses setTimeout so fake timers work in tests. */
|
|
111
|
+
private sleep;
|
|
112
|
+
}
|
|
113
|
+
export declare function createWatchDaemon(deps: WatchDaemonDeps): WatchDaemon;
|
|
114
|
+
//# sourceMappingURL=watch-daemon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch-daemon.d.ts","sourceRoot":"","sources":["../../src/lib/watch-daemon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,CACA,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAClC,mBAAmB,CAAC;IACvB,SAAS,CACP,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,IAAI,GAC/C,mBAAmB,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE;QACR,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,mBAAmB,CAAC;IAC3D,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/D;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,SAAS,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,2EAA2E;IAC3E,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAAC;IACvE,uDAAuD;IACvD,OAAO,CACL,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,yDAAyD;IACzD,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACnE,oEAAoE;IACpE,GAAG,IAAI,MAAM,CAAC;IACd,qDAAqD;IACrD,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAkBD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;IAGvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,OAAO,CAAoC;IAGnD,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,iBAAiB,CAA+C;IACxE,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,uBAAuB,CAA8C;IAG7E,OAAO,CAAC,WAAW,CAA6B;gBAEpC,IAAI,EAAE,eAAe;IAIjC;;;;;OAKG;IACG,GAAG,CACP,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAgBhB;;;OAGG;IACH,IAAI,IAAI,IAAI;YAgBE,OAAO;IA6BrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,kBAAkB;YAwBZ,eAAe;IA6B7B,OAAO,CAAC,YAAY;YA+BN,iBAAiB;IA0D/B,OAAO,CAAC,iBAAiB;YAWX,cAAc;IAmB5B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,gBAAgB;YAOV,cAAc;IAkB5B,OAAO,CAAC,eAAe;YAWT,YAAY;IAkB1B,OAAO,CAAC,0BAA0B;YAapB,oBAAoB;IA8ClC,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,GAAG;IAQX,kFAAkF;IAClF,OAAO,CAAC,KAAK;CAGd;AAMD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,CAEpE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure lib for .codebyplan/ directory helpers.
|
|
3
|
+
*
|
|
4
|
+
* All public functions accept injectable deps so tests never touch the real
|
|
5
|
+
* filesystem. No top-level side effects.
|
|
6
|
+
*/
|
|
7
|
+
import type { Repo } from "./types.js";
|
|
8
|
+
export interface FsDeps {
|
|
9
|
+
mkdir: (path: string, opts?: {
|
|
10
|
+
recursive?: boolean;
|
|
11
|
+
}) => Promise<void>;
|
|
12
|
+
writeFile: (path: string, data: string, encoding: string) => Promise<void>;
|
|
13
|
+
readFile: (path: string, encoding: string) => Promise<string>;
|
|
14
|
+
exists: (path: string) => Promise<boolean>;
|
|
15
|
+
}
|
|
16
|
+
export declare const defaultFsDeps: FsDeps;
|
|
17
|
+
/**
|
|
18
|
+
* Write the full `.codebyplan/` directory for a newly-initialized project.
|
|
19
|
+
*
|
|
20
|
+
* Extracted from `src/cli/setup.ts` to enable injection of filesystem deps
|
|
21
|
+
* for testing. The call site in setup.ts continues to pass `deps = undefined`
|
|
22
|
+
* (defaultFsDeps) so behavior is byte-identical to the original private function.
|
|
23
|
+
*
|
|
24
|
+
* Writes:
|
|
25
|
+
* repo.json, server.json, git.json, shipment.json, vendor.json,
|
|
26
|
+
* e2e.json, eslint.json, statusline.json (only when absent),
|
|
27
|
+
* and ensures the .gitignore managed block.
|
|
28
|
+
*
|
|
29
|
+
* @param projectPath Absolute path to the project root.
|
|
30
|
+
* @param selectedRepo The repo row returned by the API.
|
|
31
|
+
* @param deps Injectable fs deps — defaults to node:fs/promises.
|
|
32
|
+
*/
|
|
33
|
+
export declare function writeCodebyplanDirectory(projectPath: string, selectedRepo: Repo, deps?: FsDeps): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Write `.codebyplan/` directory files for a new git worktree.
|
|
36
|
+
*
|
|
37
|
+
* This is the worktree-flavored variant of writeCodebyplanDirectory, covering
|
|
38
|
+
* what cbp-git-worktree-create SKILL.md Step 10 hand-writes today. Where the
|
|
39
|
+
* skill wrote bare `{}` stubs, this function uses the RICHER defaults from
|
|
40
|
+
* writeCodebyplanDirectory for consistency (planner decision).
|
|
41
|
+
*
|
|
42
|
+
* Does NOT write device.local.json (it is set up by `codebyplan setup` on the
|
|
43
|
+
* device — it's always gitignored and per-device). Does NOT call
|
|
44
|
+
* ensureManagedGitignoreBlock since the worktree shares the main repo's
|
|
45
|
+
* .gitignore. Does NOT write e2e.json / eslint.json — those are locally managed
|
|
46
|
+
* and the worktree inherits its own via /cbp-setup-e2e and /cbp-setup-eslint.
|
|
47
|
+
*
|
|
48
|
+
* Reuses the shared write helpers for repo.json, server.json, git.json,
|
|
49
|
+
* shipment.json, vendor.json, and statusline.json.
|
|
50
|
+
*
|
|
51
|
+
* @param worktreePath Absolute path to the target worktree root.
|
|
52
|
+
* @param repo Repo identity object (provides repo_id and optional org/project ids).
|
|
53
|
+
* @param deps Injectable fs deps — defaults to node:fs/promises.
|
|
54
|
+
*/
|
|
55
|
+
export declare function createWorktreeFiles(worktreePath: string, repo: Repo, deps?: FsDeps): Promise<void>;
|
|
56
|
+
//# sourceMappingURL=worktree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAMvC,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5C;AAQD,eAAO,MAAM,aAAa,EAAE,MAM3B,CAAC;AAyHF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,IAAI,EAClB,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,MAAsB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
export interface OpenBrowserOpts {
|
|
3
|
+
spawnFn?: typeof spawn;
|
|
4
|
+
isTTY?: boolean;
|
|
5
|
+
platform?: NodeJS.Platform;
|
|
6
|
+
}
|
|
7
|
+
export declare function tryOpenBrowser(url: string, opts?: OpenBrowserOpts): boolean;
|
|
8
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/oauth/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,eAAoB,GACzB,OAAO,CA0BT"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function registerClient(): Promise<string>;
|
|
2
|
+
export declare function clearClient(): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* Run `fn(clientId)` with auto-recovery from a server-revoked client_id.
|
|
5
|
+
*
|
|
6
|
+
* If the AS has deleted or rotated the oauth_clients row, the cached client_id
|
|
7
|
+
* returns 401 + `error: "invalid_client"`. This helper catches that case,
|
|
8
|
+
* wipes the stale cache, registers a fresh client, and retries `fn` exactly
|
|
9
|
+
* once with the new id. If the retry also fails, the underlying error
|
|
10
|
+
* propagates.
|
|
11
|
+
*/
|
|
12
|
+
export declare function ensureClientFor<T>(fn: (clientId: string) => Promise<T>): Promise<{
|
|
13
|
+
clientId: string;
|
|
14
|
+
result: T;
|
|
15
|
+
}>;
|
|
16
|
+
//# sourceMappingURL=client-registration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-registration.d.ts","sourceRoot":"","sources":["../../src/oauth/client-registration.ts"],"names":[],"mappings":"AAUA,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAmCtD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjD;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,CAAC,CAAA;CAAE,CAAC,CAY1C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DeviceCodeResponse, OAuthTokenResponse } from "./types.js";
|
|
2
|
+
export declare class OAuthInvalidClientError extends Error {
|
|
3
|
+
constructor();
|
|
4
|
+
}
|
|
5
|
+
export interface InitiateDeviceCodeResult extends DeviceCodeResponse {
|
|
6
|
+
/** The resource indicator that was sent in the device-authorization request.
|
|
7
|
+
* Callers should thread this exact value into pollUntilSettled so the
|
|
8
|
+
* token-poll POST carries the same resource as the device-auth request. */
|
|
9
|
+
resource: string;
|
|
10
|
+
}
|
|
11
|
+
export declare function initiateDeviceCode(clientId: string, scope?: string, resource?: string): Promise<InitiateDeviceCodeResult>;
|
|
12
|
+
export type PollOutcome = {
|
|
13
|
+
kind: "success";
|
|
14
|
+
tokens: OAuthTokenResponse;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "pending";
|
|
17
|
+
} | {
|
|
18
|
+
kind: "denied";
|
|
19
|
+
} | {
|
|
20
|
+
kind: "expired";
|
|
21
|
+
} | {
|
|
22
|
+
kind: "error";
|
|
23
|
+
message: string;
|
|
24
|
+
};
|
|
25
|
+
export type SettledOutcome = Exclude<PollOutcome, {
|
|
26
|
+
kind: "pending";
|
|
27
|
+
}>;
|
|
28
|
+
export declare function pollOnce(deviceCode: string, clientId: string, resource?: string): Promise<PollOutcome>;
|
|
29
|
+
export interface PollUntilSettledOpts {
|
|
30
|
+
deviceCode: string;
|
|
31
|
+
clientId: string;
|
|
32
|
+
intervalSec: number;
|
|
33
|
+
expiresInSec: number;
|
|
34
|
+
resource?: string;
|
|
35
|
+
onTick?: (elapsedSec: number) => void;
|
|
36
|
+
sleep?: (ms: number) => Promise<void>;
|
|
37
|
+
now?: () => number;
|
|
38
|
+
}
|
|
39
|
+
export declare function pollUntilSettled(opts: PollUntilSettledOpts): Promise<SettledOutcome>;
|
|
40
|
+
//# sourceMappingURL=device-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/oauth/device-flow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGzE,qBAAa,uBAAwB,SAAQ,KAAK;;CAOjD;AAED,MAAM,WAAW,wBAAyB,SAAQ,kBAAkB;IAClE;;gFAE4E;IAC5E,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,SAAgC,GACvC,OAAO,CAAC,wBAAwB,CAAC,CA0BnC;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvC,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AAEvE,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAkCtB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAKD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,cAAc,CAAC,CAiBzB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface JwtClaims {
|
|
2
|
+
sub: string;
|
|
3
|
+
email?: string;
|
|
4
|
+
scope?: string;
|
|
5
|
+
iat?: number;
|
|
6
|
+
exp?: number;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare function decodeJwtClaims(token: string): JwtClaims | null;
|
|
10
|
+
//# sourceMappingURL=jwt-decode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-decode.d.ts","sourceRoot":"","sources":["../../src/oauth/jwt-decode.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAQD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAoB/D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ClientRegistration, TokenBundle } from "./types.js";
|
|
2
|
+
export interface KeyringEntry {
|
|
3
|
+
getPassword(): string | null;
|
|
4
|
+
setPassword(password: string): void;
|
|
5
|
+
deletePassword(): boolean;
|
|
6
|
+
}
|
|
7
|
+
export type KeyringCtor = new (service: string, account: string) => KeyringEntry;
|
|
8
|
+
export declare function __setKeyringForTesting(ctor: KeyringCtor | null): void;
|
|
9
|
+
export declare function __resetKeyringForTesting(): void;
|
|
10
|
+
export declare function fallbackDir(): string;
|
|
11
|
+
export declare function saveTokens(tokens: TokenBundle): Promise<void>;
|
|
12
|
+
export declare function loadTokens(): Promise<TokenBundle | null>;
|
|
13
|
+
export declare function clearTokens(): Promise<void>;
|
|
14
|
+
export declare function saveClientRegistration(reg: ClientRegistration): Promise<void>;
|
|
15
|
+
export declare function loadClientRegistration(): Promise<ClientRegistration | null>;
|
|
16
|
+
export declare function clearClientRegistration(): Promise<void>;
|
|
17
|
+
//# sourceMappingURL=keychain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../../src/oauth/keychain.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAMlE,MAAM,WAAW,YAAY;IAC3B,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,cAAc,IAAI,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,KACxB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,KACZ,YAAY,CAAC;AAIlB,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CAErE;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAcD,wBAAgB,WAAW,IAAI,MAAM,CAQpC;AA4CD,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAanE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAuB9D;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAWjD;AAED,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,kBAAkB,GACtB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAqBjF;AAED,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAU7D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TokenBundle } from "./types.js";
|
|
2
|
+
export declare class NoTokenError extends Error {
|
|
3
|
+
constructor();
|
|
4
|
+
}
|
|
5
|
+
export declare function getAccessToken(): Promise<string>;
|
|
6
|
+
export declare function refreshTokens(refreshToken: string, fallbackUserId: string): Promise<TokenBundle | null>;
|
|
7
|
+
//# sourceMappingURL=token-refresh.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-refresh.d.ts","sourceRoot":"","sources":["../../src/oauth/token-refresh.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAsB,WAAW,EAAE,MAAM,YAAY,CAAC;AAKlE,qBAAa,YAAa,SAAQ,KAAK;;CAKtC;AAcD,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAiBtD;AA4CD,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAmC7B"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface TokenBundle {
|
|
2
|
+
access_token: string;
|
|
3
|
+
refresh_token: string;
|
|
4
|
+
expires_at: number;
|
|
5
|
+
issued_at: number;
|
|
6
|
+
user_id: string;
|
|
7
|
+
email: string | null;
|
|
8
|
+
}
|
|
9
|
+
export interface ClientRegistration {
|
|
10
|
+
client_id: string;
|
|
11
|
+
registered_at: number;
|
|
12
|
+
}
|
|
13
|
+
export interface DeviceCodeResponse {
|
|
14
|
+
device_code: string;
|
|
15
|
+
user_code: string;
|
|
16
|
+
verification_uri: string;
|
|
17
|
+
verification_uri_complete?: string;
|
|
18
|
+
interval: number;
|
|
19
|
+
expires_in: number;
|
|
20
|
+
}
|
|
21
|
+
export interface OAuthTokenResponse {
|
|
22
|
+
access_token: string;
|
|
23
|
+
refresh_token: string;
|
|
24
|
+
expires_in: number;
|
|
25
|
+
token_type: "Bearer";
|
|
26
|
+
scope: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/oauth/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,QAAQ,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function getAuthServerBase(): string;
|
|
2
|
+
export declare function getMcpServerBase(): string;
|
|
3
|
+
export declare function deviceEndpoint(): string;
|
|
4
|
+
export declare function tokenEndpoint(): string;
|
|
5
|
+
export declare function registerEndpoint(): string;
|
|
6
|
+
export declare function meEndpoint(): string;
|
|
7
|
+
export declare function mcpEndpoint(): string;
|
|
8
|
+
export declare function getBackendBase(): string;
|
|
9
|
+
export declare function backendSyncEndpoint(): string;
|
|
10
|
+
export declare function backendMintTokenEndpoint(): string;
|
|
11
|
+
export declare function backendCheckpointsEndpoint(): string;
|
|
12
|
+
export declare function backendTasksEndpoint(): string;
|
|
13
|
+
export declare function backendRoundsEndpoint(): string;
|
|
14
|
+
export declare function backendSessionLogsEndpoint(): string;
|
|
15
|
+
export declare function backendSessionStateEndpoint(repoId: string): string;
|
|
16
|
+
//# sourceMappingURL=urls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urls.d.ts","sourceRoot":"","sources":["../../src/oauth/urls.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,IAAI,MAAM,CAI1C;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED,wBAAgB,wBAAwB,IAAI,MAAM,CAEjD;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,0BAA0B,IAAI,MAAM,CAEnD;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE"}
|