@aligndottech/cli 0.63.0 → 0.64.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/cli.d.ts +2 -2
- package/dist/cli.js +6 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/adjudicate.d.ts +3 -3
- package/dist/commands/capture.js +2 -2
- package/dist/commands/capture.js.map +1 -1
- package/dist/commands/check.d.ts +1 -1
- package/dist/commands/check.js +30 -30
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/connect-agents.d.ts +4 -2
- package/dist/commands/connect-agents.d.ts.map +1 -1
- package/dist/commands/connect-agents.js +7 -7
- package/dist/commands/connect-agents.js.map +1 -1
- package/dist/commands/connect.d.ts +1 -1
- package/dist/commands/connector/index.js +1 -1
- package/dist/commands/connector/index.js.map +1 -1
- package/dist/commands/context.d.ts +4 -4
- package/dist/commands/context.js +7 -7
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/decisions/index.js +4 -4
- package/dist/commands/decisions/index.js.map +1 -1
- package/dist/commands/default-action.d.ts.map +1 -1
- package/dist/commands/default-action.js +8 -5
- package/dist/commands/default-action.js.map +1 -1
- package/dist/commands/glossary.d.ts +1 -1
- package/dist/commands/import/confluence.js +1 -1
- package/dist/commands/import/confluence.js.map +1 -1
- package/dist/commands/import/git.js +4 -4
- package/dist/commands/import/git.js.map +1 -1
- package/dist/commands/import/jira.js +1 -1
- package/dist/commands/import/jira.js.map +1 -1
- package/dist/commands/import/sessions.d.ts +6 -6
- package/dist/commands/import/sessions.js +10 -10
- package/dist/commands/import/sessions.js.map +1 -1
- package/dist/commands/import.d.ts +2 -2
- package/dist/commands/import.js +2 -2
- package/dist/commands/invite.d.ts +1 -1
- package/dist/commands/invite.js +1 -1
- package/dist/commands/invite.js.map +1 -1
- package/dist/commands/local.js +3 -3
- package/dist/commands/local.js.map +1 -1
- package/dist/commands/mcp.d.ts +4 -4
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +34 -35
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/ratify.d.ts +1 -1
- package/dist/commands/ratify.js +1 -1
- package/dist/commands/ratify.js.map +1 -1
- package/dist/commands/registry.d.ts +2 -2
- package/dist/commands/registry.js +3 -3
- package/dist/commands/registry.js.map +1 -1
- package/dist/commands/search.js +2 -2
- package/dist/commands/search.js.map +1 -1
- package/dist/commands/setup.d.ts +14 -10
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +133 -75
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.js +2 -2
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/telemetry.d.ts +2 -2
- package/dist/commands/telemetry.js +3 -3
- package/dist/commands/telemetry.js.map +1 -1
- package/dist/commands/why.js +31 -31
- package/dist/commands/why.js.map +1 -1
- package/dist/detector/local-model-default.d.ts +1 -1
- package/dist/detector/local-model-default.js +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/access-capability.d.ts +1 -1
- package/dist/lib/access-capability.js +1 -1
- package/dist/lib/advisory-verdict.d.ts +3 -3
- package/dist/lib/advisory-verdict.js +3 -3
- package/dist/lib/agent-rules.d.ts +9 -0
- package/dist/lib/agent-rules.d.ts.map +1 -1
- package/dist/lib/agent-rules.js +55 -39
- package/dist/lib/agent-rules.js.map +1 -1
- package/dist/lib/approve-suggestions.d.ts +1 -1
- package/dist/lib/approve-suggestions.js +1 -1
- package/dist/lib/as-of.d.ts +6 -6
- package/dist/lib/as-of.js +6 -6
- package/dist/lib/ask-evidence.js +1 -1
- package/dist/lib/ask-key-offer.js +1 -1
- package/dist/lib/ask-listing.js +1 -1
- package/dist/lib/brand.d.ts +2 -2
- package/dist/lib/brand.js +3 -3
- package/dist/lib/capture-report.d.ts +1 -1
- package/dist/lib/capture-report.d.ts.map +1 -1
- package/dist/lib/capture-report.js +3 -3
- package/dist/lib/capture-report.js.map +1 -1
- package/dist/lib/capture-sources.d.ts +1 -1
- package/dist/lib/capture-sources.js +1 -1
- package/dist/lib/check-depth.d.ts +1 -1
- package/dist/lib/check-depth.js +1 -1
- package/dist/lib/claude-presence.d.ts +1 -1
- package/dist/lib/claude-presence.js +1 -1
- package/dist/lib/cli-oauth.js +1 -1
- package/dist/lib/cli-oauth.js.map +1 -1
- package/dist/lib/commands-doc.d.ts +1 -1
- package/dist/lib/commands-doc.js +1 -1
- package/dist/lib/commit-cite.js +2 -2
- package/dist/lib/commit-shape.d.ts +1 -1
- package/dist/lib/commit-shape.js +1 -1
- package/dist/lib/config.d.ts +6 -6
- package/dist/lib/config.js +7 -7
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/connect-prompt.d.ts +1 -1
- package/dist/lib/connect-prompt.js +1 -1
- package/dist/lib/decider-kind.d.ts +4 -4
- package/dist/lib/decider-kind.js +4 -4
- package/dist/lib/decision-links.d.ts +7 -8
- package/dist/lib/decision-links.d.ts.map +1 -1
- package/dist/lib/decision-links.js +8 -9
- package/dist/lib/decision-links.js.map +1 -1
- package/dist/lib/decision-refs.d.ts +3 -3
- package/dist/lib/decision-refs.js +4 -4
- package/dist/lib/decision-refs.js.map +1 -1
- package/dist/lib/decision-relations.d.ts +4 -4
- package/dist/lib/decision-relations.js +4 -4
- package/dist/lib/decision-render.d.ts +2 -2
- package/dist/lib/decision-render.d.ts.map +1 -1
- package/dist/lib/decision-render.js +5 -5
- package/dist/lib/decision-render.js.map +1 -1
- package/dist/lib/decisions-context.d.ts +4 -4
- package/dist/lib/decisions-context.js +5 -5
- package/dist/lib/decisions-context.js.map +1 -1
- package/dist/lib/doctor-mcp.js +1 -1
- package/dist/lib/doctor.d.ts +2 -2
- package/dist/lib/embedding-assets.js +1 -1
- package/dist/lib/embedding-runtime.js +1 -1
- package/dist/lib/fetchers/capture.d.ts +1 -1
- package/dist/lib/fetchers/docs.d.ts +1 -1
- package/dist/lib/fetchers/docs.js +5 -5
- package/dist/lib/fetchers/docs.js.map +1 -1
- package/dist/lib/fetchers/git.d.ts +1 -1
- package/dist/lib/fetchers/git.js +1 -1
- package/dist/lib/fetchers/github.d.ts +2 -2
- package/dist/lib/fetchers/github.js +2 -2
- package/dist/lib/fetchers/linear.js +1 -1
- package/dist/lib/fetchers/slack.d.ts +2 -2
- package/dist/lib/fetchers/slack.js +2 -2
- package/dist/lib/first-decision.d.ts +1 -1
- package/dist/lib/first-decision.js +1 -1
- package/dist/lib/first-run-pr-import.d.ts +1 -1
- package/dist/lib/format-date.d.ts +1 -1
- package/dist/lib/format-date.js +1 -1
- package/dist/lib/found-summary.js +4 -4
- package/dist/lib/found-summary.js.map +1 -1
- package/dist/lib/gateway-client.d.ts +27 -27
- package/dist/lib/gateway-client.d.ts.map +1 -1
- package/dist/lib/gateway-client.js +30 -30
- package/dist/lib/gateway-client.js.map +1 -1
- package/dist/lib/git.d.ts +10 -10
- package/dist/lib/git.d.ts.map +1 -1
- package/dist/lib/git.js +12 -12
- package/dist/lib/git.js.map +1 -1
- package/dist/lib/hook-context.js +1 -1
- package/dist/lib/hook-payload.d.ts +1 -1
- package/dist/lib/hybrid-rank.d.ts +3 -3
- package/dist/lib/hybrid-rank.d.ts.map +1 -1
- package/dist/lib/hybrid-rank.js +3 -3
- package/dist/lib/hybrid-rank.js.map +1 -1
- package/dist/lib/import-defaults.d.ts +5 -5
- package/dist/lib/import-defaults.js +3 -3
- package/dist/lib/inline-rules.d.ts +1 -1
- package/dist/lib/inline-rules.js +1 -1
- package/dist/lib/invite-prompt.d.ts +1 -1
- package/dist/lib/invite-prompt.js +1 -1
- package/dist/lib/launch/mcp-child-env.js +1 -1
- package/dist/lib/launch/mcp-child-env.js.map +1 -1
- package/dist/lib/launch/strict-entry.js +2 -2
- package/dist/lib/launch/strict-entry.js.map +1 -1
- package/dist/lib/lexical-store.d.ts +1 -1
- package/dist/lib/lexical-store.js +1 -1
- package/dist/lib/lexical-terms.d.ts +1 -1
- package/dist/lib/lexical-terms.js +1 -1
- package/dist/lib/lexical-text.d.ts +2 -2
- package/dist/lib/lexical-text.js +2 -2
- package/dist/lib/llm-providers.d.ts +1 -1
- package/dist/lib/llm-providers.js +2 -2
- package/dist/lib/llm-providers.js.map +1 -1
- package/dist/lib/llm-trace.d.ts +1 -1
- package/dist/lib/llm-trace.js +1 -1
- package/dist/lib/llm-trace.js.map +1 -1
- package/dist/lib/local-candidate-classify.d.ts +1 -1
- package/dist/lib/local-candidate-classify.js +3 -3
- package/dist/lib/local-candidate-classify.js.map +1 -1
- package/dist/lib/local-db-migrate.d.ts +6 -6
- package/dist/lib/local-db-migrate.js +9 -9
- package/dist/lib/local-db-migrate.js.map +1 -1
- package/dist/lib/local-db-v11.d.ts +1 -1
- package/dist/lib/local-db.d.ts +33 -33
- package/dist/lib/local-db.d.ts.map +1 -1
- package/dist/lib/local-db.js +27 -27
- package/dist/lib/local-db.js.map +1 -1
- package/dist/lib/local-embeddings-native.js +1 -1
- package/dist/lib/local-embeddings.d.ts +2 -2
- package/dist/lib/local-embeddings.js +2 -2
- package/dist/lib/local-embeddings.js.map +1 -1
- package/dist/lib/local-gateway-client.d.ts +5 -5
- package/dist/lib/local-gateway-client.js +40 -40
- package/dist/lib/local-gateway-client.js.map +1 -1
- package/dist/lib/local-ingest.d.ts +3 -3
- package/dist/lib/local-ingest.js +3 -3
- package/dist/lib/local-link-pass.js +1 -1
- package/dist/lib/local-link-pass.js.map +1 -1
- package/dist/lib/local-llm.d.ts +21 -22
- package/dist/lib/local-llm.d.ts.map +1 -1
- package/dist/lib/local-llm.js +28 -30
- package/dist/lib/local-llm.js.map +1 -1
- package/dist/lib/local-mode.d.ts +1 -1
- package/dist/lib/local-mode.js +2 -2
- package/dist/lib/local-mode.js.map +1 -1
- package/dist/lib/local-provenance.d.ts +1 -1
- package/dist/lib/local-provenance.js +1 -1
- package/dist/lib/local-relationship-classifier.d.ts +6 -6
- package/dist/lib/local-relationship-classifier.js +7 -7
- package/dist/lib/local-relationship-classifier.js.map +1 -1
- package/dist/lib/local-thresholds.d.ts +3 -3
- package/dist/lib/local-thresholds.js +4 -4
- package/dist/lib/local-thresholds.js.map +1 -1
- package/dist/lib/mcp/share-status-tool.js +1 -1
- package/dist/lib/mcp/share-tool.js +1 -1
- package/dist/lib/mcp-setup.d.ts +11 -4
- package/dist/lib/mcp-setup.d.ts.map +1 -1
- package/dist/lib/mcp-setup.js +22 -12
- package/dist/lib/mcp-setup.js.map +1 -1
- package/dist/lib/mcp-timeline-tools.d.ts +5 -5
- package/dist/lib/mcp-timeline-tools.d.ts.map +1 -1
- package/dist/lib/mcp-timeline-tools.js +22 -23
- package/dist/lib/mcp-timeline-tools.js.map +1 -1
- package/dist/lib/next-step.d.ts +11 -5
- package/dist/lib/next-step.d.ts.map +1 -1
- package/dist/lib/next-step.js +12 -4
- package/dist/lib/next-step.js.map +1 -1
- package/dist/lib/personal-import.d.ts +3 -3
- package/dist/lib/personal-import.d.ts.map +1 -1
- package/dist/lib/personal-import.js +4 -4
- package/dist/lib/personal-import.js.map +1 -1
- package/dist/lib/personal-oauth.js +3 -3
- package/dist/lib/personal-oauth.js.map +1 -1
- package/dist/lib/query-expand.d.ts +1 -1
- package/dist/lib/query-expand.js +1 -1
- package/dist/lib/read-value-rollup.d.ts +2 -2
- package/dist/lib/read-value-rollup.js +3 -3
- package/dist/lib/read-value-rollup.js.map +1 -1
- package/dist/lib/reason-extract.d.ts +1 -1
- package/dist/lib/reason-extract.js +1 -1
- package/dist/lib/repo-identity.d.ts +2 -2
- package/dist/lib/repo-identity.js +3 -3
- package/dist/lib/resolve-env.d.ts +1 -1
- package/dist/lib/resolve-env.js +1 -1
- package/dist/lib/scope-defaults.js +1 -1
- package/dist/lib/scope-real.d.ts.map +1 -1
- package/dist/lib/scope-real.js +1 -1
- package/dist/lib/scope-real.js.map +1 -1
- package/dist/lib/search-query.d.ts +2 -2
- package/dist/lib/search-query.js +2 -2
- package/dist/lib/search-rerank.d.ts +1 -1
- package/dist/lib/search-rerank.js +1 -1
- package/dist/lib/sessions/confirm-freetext.d.ts +3 -3
- package/dist/lib/sessions/confirm-freetext.d.ts.map +1 -1
- package/dist/lib/sessions/confirm-freetext.js +2 -2
- package/dist/lib/sessions/extract-freetext.d.ts +3 -3
- package/dist/lib/sessions/extract-freetext.d.ts.map +1 -1
- package/dist/lib/sessions/import-summary.d.ts +1 -1
- package/dist/lib/sessions/import-summary.js +1 -1
- package/dist/lib/sessions/memory-files.d.ts +1 -1
- package/dist/lib/sessions/memory-files.js +5 -5
- package/dist/lib/sessions/source-url.d.ts +2 -2
- package/dist/lib/sessions/source-url.js +2 -2
- package/dist/lib/sessions/types.d.ts +6 -6
- package/dist/lib/sessions/types.js +4 -4
- package/dist/lib/setup-funnel.d.ts +2 -2
- package/dist/lib/setup-ux.d.ts +2 -2
- package/dist/lib/setup-ux.js +3 -3
- package/dist/lib/setup-ux.js.map +1 -1
- package/dist/lib/share/approval.js +1 -1
- package/dist/lib/share/browser-flow.d.ts +1 -1
- package/dist/lib/share/browser-flow.js +1 -1
- package/dist/lib/share/command.js +1 -1
- package/dist/lib/share/envelope.js +1 -1
- package/dist/lib/share/pending.d.ts +1 -1
- package/dist/lib/share/requests-client.d.ts +1 -1
- package/dist/lib/share/run.d.ts +1 -1
- package/dist/lib/sparse-graph.d.ts +20 -0
- package/dist/lib/sparse-graph.d.ts.map +1 -0
- package/dist/lib/sparse-graph.js +39 -0
- package/dist/lib/sparse-graph.js.map +1 -0
- package/dist/lib/suppress-sqlite-warning.d.ts +1 -1
- package/dist/lib/sync/real-env.d.ts.map +1 -1
- package/dist/lib/telemetry-env.d.ts +3 -3
- package/dist/lib/telemetry-env.js +1 -1
- package/dist/lib/token-estimate.d.ts +1 -1
- package/dist/lib/token-estimate.js +3 -3
- package/dist/lib/token-estimate.js.map +1 -1
- package/dist/lib/token-scope-gate.d.ts +1 -1
- package/dist/lib/token-scope-gate.js +1 -1
- package/dist/lib/trusted-align-bin.d.ts +2 -2
- package/dist/lib/trusted-align-bin.d.ts.map +1 -1
- package/dist/lib/trusted-align-bin.js +2 -2
- package/dist/lib/trusted-align-bin.js.map +1 -1
- package/dist/lib/usage-telemetry.d.ts +17 -17
- package/dist/lib/usage-telemetry.js +24 -24
- package/dist/lib/usage-telemetry.js.map +1 -1
- package/dist/lib/user-hooks.d.ts +1 -1
- package/dist/lib/user-hooks.d.ts.map +1 -1
- package/dist/lib/user-hooks.js +3 -3
- package/dist/lib/user-hooks.js.map +1 -1
- package/dist/lib/value-rollup.d.ts +7 -7
- package/dist/lib/value-rollup.d.ts.map +1 -1
- package/dist/lib/value-rollup.js +12 -12
- package/dist/lib/value-rollup.js.map +1 -1
- package/dist/lib/write-confirm.d.ts +53 -0
- package/dist/lib/write-confirm.d.ts.map +1 -0
- package/dist/lib/write-confirm.js +70 -0
- package/dist/lib/write-confirm.js.map +1 -0
- package/package.json +7 -7
|
@@ -14,18 +14,17 @@
|
|
|
14
14
|
* fifteen lines of regex across two repos is the smaller cost today than blocking on a
|
|
15
15
|
* three-repo publish chain, but it is a duplicate and it should not stay one.
|
|
16
16
|
*
|
|
17
|
-
*
|
|
17
|
+
* `isSyntheticSource`/`navigableSourceUrl` below are the one part of the copy
|
|
18
18
|
* that this file used to omit entirely. Every local CLI row has `sourceUrl: null` today,
|
|
19
19
|
* so the gap was harmless - but `align context sync` and `align why` both read decisions
|
|
20
20
|
* from the HOSTED gateway (createGatewayClient, not the local db), and a hosted decision
|
|
21
|
-
* can carry a synthetic `align://claimed/...` / `align://unsourced/...` identity (
|
|
22
|
-
* minted by `claimedIdentityFor` in align-stack's
|
|
21
|
+
* can carry a synthetic `align://claimed/...` / `align://unsourced/...` identity (minted by `claimedIdentityFor` in align-stack's
|
|
23
22
|
* services/gateway/src/discover/suggestionHelpers.ts, for a scan that could not verify
|
|
24
23
|
* where a decision was made). Without this guard, that identity was printed straight into
|
|
25
24
|
* `.align/decisions.md` and `align why`'s output as if it were a clickable link - it is a
|
|
26
25
|
* syntactically valid URI, so nothing throws, it just points nowhere. Ported from
|
|
27
|
-
* align-stack's per-connector `syntheticSource.ts` (mcp-jira/mcp-github/mcp-teams
|
|
28
|
-
*
|
|
26
|
+
* align-stack's per-connector `syntheticSource.ts` (mcp-jira/mcp-github/mcp-teams); wired into the CLI's own
|
|
27
|
+
* render sites in `commands/context.ts` and
|
|
29
28
|
* `commands/why.ts`, which call `navigableSourceUrl` before printing a source as a link.
|
|
30
29
|
*
|
|
31
30
|
* NOT yet wired into `commands/mcp.ts`'s tool-call dispatch: that path forwards the
|
|
@@ -59,7 +58,7 @@ export function repositoryOf(sourceUrl) {
|
|
|
59
58
|
}
|
|
60
59
|
/**
|
|
61
60
|
* Tracker tickets have their own native cite - the key humans already say out
|
|
62
|
-
* loud ("
|
|
61
|
+
* loud ("APP-346", "PROJ-123") - so those URLs cite by key rather than getting
|
|
63
62
|
* a repo#number invented for them. Deliberately NOT folded into CODE_REF:
|
|
64
63
|
* repositoryOf must keep returning undefined for these, because a Linear
|
|
65
64
|
* workspace is not an owner and a ticket key is not a repository (that refusal
|
|
@@ -70,7 +69,7 @@ const LINEAR_ISSUE = /^https?:\/\/linear\.app\/[^/\s]+\/issue\/([A-Z][A-Z0-9]*-\
|
|
|
70
69
|
const JIRA_ISSUE = /^https?:\/\/[^/\s]+\/browse\/([A-Z][A-Z0-9]*-\d+)(?:[/?#]|$)/;
|
|
71
70
|
/**
|
|
72
71
|
* A decision rendered the way a human cites one: "align-cli#76" for code,
|
|
73
|
-
* the ticket key ("
|
|
72
|
+
* the ticket key ("APP-346") for tracker decisions.
|
|
74
73
|
*
|
|
75
74
|
* `repository` already carries the same fact, and the agent still wrote prose naming titles
|
|
76
75
|
* and dates but not repositories - so which repo a decision came from was only discoverable
|
|
@@ -90,8 +89,8 @@ export function citationFor(sourceUrl) {
|
|
|
90
89
|
return ticket ? ticket[1] : undefined;
|
|
91
90
|
}
|
|
92
91
|
/**
|
|
93
|
-
* Identities Align mints when a scan could not verify where a decision was made
|
|
94
|
-
*
|
|
92
|
+
* Identities Align mints when a scan could not verify where a decision was made:
|
|
93
|
+
* `align://claimed/<hash>` when the model claimed a source,
|
|
95
94
|
* `align://unsourced/<hash>` when it claimed nothing. Minted in align-stack's
|
|
96
95
|
* services/gateway/src/discover/suggestionHelpers.ts - this is a second writer of that
|
|
97
96
|
* list, same position as align-stack's own per-connector copies (mcp-align, mcp-teams,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-links.js","sourceRoot":"","sources":["../../src/lib/decision-links.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"decision-links.js","sourceRoot":"","sources":["../../src/lib/decision-links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,QAAQ,GAAG,8EAA8E,CAAC;AAEhG,0FAA0F;AAC1F,MAAM,UAAU,YAAY,CAAC,SAAoC;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,YAAY,GAAG,0EAA0E,CAAC;AAChG,MAAM,UAAU,GAAG,8DAA8D,CAAC;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,SAAoC;IAC9D,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1E,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAsB;IAC1D,kBAAkB;IAClB,oBAAoB;CACrB,CAAC;AAEF,0FAA0F;AAC1F,MAAM,UAAU,iBAAiB,CAAC,SAAoC;IACpE,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAChD,0EAA0E;IAC1E,OAAO,yBAAyB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAoC;IACrE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What a decision's text points AT: ticket keys, PR/issue numbers, and links into the
|
|
3
|
-
* tools where the rest of the story lives
|
|
3
|
+
* tools where the rest of the story lives.
|
|
4
4
|
*
|
|
5
5
|
* These refs are the foundation of the gap-driven connect prompt ("12 decisions cite
|
|
6
6
|
* Jira keys I can't read - `align connect jira`"): a ref whose platform has no
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* `refIdentityFor` at the bottom of this file is the inverse: given a decision's OWN
|
|
16
16
|
* (platform, sourceUrl), what shape would ANOTHER decision's text have cited it as.
|
|
17
|
-
* That is the
|
|
17
|
+
* That is the payoff - resolving a pre-existing gap into a real link once the
|
|
18
18
|
* missing source is imported.
|
|
19
19
|
*/
|
|
20
20
|
export interface DecisionRef {
|
|
@@ -25,7 +25,7 @@ export declare function extractRefs(text: string): DecisionRef[];
|
|
|
25
25
|
/**
|
|
26
26
|
* The inverse of extractRefs: what THIS decision's own identity would be recorded as,
|
|
27
27
|
* if some other decision's text cited it. Used at ingest to resolve a pre-existing gap
|
|
28
|
-
* into a real link the moment the missing source is imported
|
|
28
|
+
* into a real link the moment the missing source is imported - "Jira key ->
|
|
29
29
|
* imported Jira decision".
|
|
30
30
|
*
|
|
31
31
|
* Deliberately narrow, matching extractRefs' own restraint: only jira/linear/github/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* What a decision's text points AT: ticket keys, PR/issue numbers, and links into the
|
|
3
|
-
* tools where the rest of the story lives
|
|
3
|
+
* tools where the rest of the story lives.
|
|
4
4
|
*
|
|
5
5
|
* These refs are the foundation of the gap-driven connect prompt ("12 decisions cite
|
|
6
6
|
* Jira keys I can't read - `align connect jira`"): a ref whose platform has no
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
*
|
|
15
15
|
* `refIdentityFor` at the bottom of this file is the inverse: given a decision's OWN
|
|
16
16
|
* (platform, sourceUrl), what shape would ANOTHER decision's text have cited it as.
|
|
17
|
-
* That is the
|
|
17
|
+
* That is the payoff - resolving a pre-existing gap into a real link once the
|
|
18
18
|
* missing source is imported.
|
|
19
19
|
*/
|
|
20
20
|
// localCitationFor, not the shared citationFor: it also parses GitLab MR/issue
|
|
21
21
|
// URLs (commit-cite.ts), which citationFor's CODE_REF cannot see at all - without
|
|
22
22
|
// it, refIdentityFor('gitlab', ...) could never produce a 'code' candidate for a
|
|
23
|
-
// real GitLab source
|
|
23
|
+
// real GitLab source.
|
|
24
24
|
import { localCitationFor } from './commit-cite.js';
|
|
25
25
|
const URL_PATTERN = /https?:\/\/[^\s<>"']+/g;
|
|
26
26
|
/** Trailing prose punctuation is not part of a URL someone pasted mid-sentence. */
|
|
@@ -110,7 +110,7 @@ export function extractRefs(text) {
|
|
|
110
110
|
/**
|
|
111
111
|
* The inverse of extractRefs: what THIS decision's own identity would be recorded as,
|
|
112
112
|
* if some other decision's text cited it. Used at ingest to resolve a pre-existing gap
|
|
113
|
-
* into a real link the moment the missing source is imported
|
|
113
|
+
* into a real link the moment the missing source is imported - "Jira key ->
|
|
114
114
|
* imported Jira decision".
|
|
115
115
|
*
|
|
116
116
|
* Deliberately narrow, matching extractRefs' own restraint: only jira/linear/github/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-refs.js","sourceRoot":"","sources":["../../src/lib/decision-refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,+EAA+E;AAC/E,kFAAkF;AAClF,iFAAiF;AACjF
|
|
1
|
+
{"version":3,"file":"decision-refs.js","sourceRoot":"","sources":["../../src/lib/decision-refs.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A search hit whose status is not `active` is close to useless on its own: it tells an agent
|
|
5
5
|
* the decision is contested or replaced and nothing about by WHAT. The gateway answers both
|
|
6
|
-
* halves - `successor` (what REPLACED this, align-stack
|
|
7
|
-
* (what CONTESTS this,
|
|
6
|
+
* halves - `successor` (what REPLACED this, align-stack#2443) and `conflicts_with`
|
|
7
|
+
* (what CONTESTS this, align-stack#2461) - as `{ id, title, source_url, relation }`.
|
|
8
8
|
*
|
|
9
9
|
* WHAT THIS DOES NOT DO, because it was already true: it does not make those fields reach the
|
|
10
10
|
* agent. `align mcp`'s search arms have always been a pass-through - `serializeMcpResult` is a
|
|
@@ -54,7 +54,7 @@ export declare const DECISION_RELATION_FIELDS: readonly ["successor", "conflicts
|
|
|
54
54
|
*/
|
|
55
55
|
export declare function normaliseDecisionRelation(raw: unknown): DecisionRelation | undefined;
|
|
56
56
|
/**
|
|
57
|
-
*
|
|
57
|
+
* The LATER decisions on a row's topic (align-stack db/laterOnTopic.ts) - up to 3,
|
|
58
58
|
* linked or merely similar, each `{ id, title, source_url, status?, date, date_basis,
|
|
59
59
|
* relation?, direction?, similarity? }`. Unlike the two fields above it is a LIST and is present
|
|
60
60
|
* regardless of status: the case it exists for is an `active` row a later, unlinked decision
|
|
@@ -71,7 +71,7 @@ export declare function normaliseLaterOnTopic(raw: unknown): DecisionRelation[]
|
|
|
71
71
|
* Apply the contract to a search payload, leaving everything else exactly as the gateway sent it.
|
|
72
72
|
*
|
|
73
73
|
* Non-array `results`, a non-object row, or a row with neither field are all pass-throughs.
|
|
74
|
-
* This runs on every search response including local-embedded ones -
|
|
74
|
+
* This runs on every search response including local-embedded ones - now, local
|
|
75
75
|
* `searchDecisions`/`listDecisions` DO read `decision_links` (via `relationFieldsFor` in
|
|
76
76
|
* local-gateway-client.ts) and can emit a real `successor`/`conflicts_with`, written at
|
|
77
77
|
* capture time by `classifyRelationship` or left as a plain `relates` cosine edge that emits
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A search hit whose status is not `active` is close to useless on its own: it tells an agent
|
|
5
5
|
* the decision is contested or replaced and nothing about by WHAT. The gateway answers both
|
|
6
|
-
* halves - `successor` (what REPLACED this, align-stack
|
|
7
|
-
* (what CONTESTS this,
|
|
6
|
+
* halves - `successor` (what REPLACED this, align-stack#2443) and `conflicts_with`
|
|
7
|
+
* (what CONTESTS this, align-stack#2461) - as `{ id, title, source_url, relation }`.
|
|
8
8
|
*
|
|
9
9
|
* WHAT THIS DOES NOT DO, because it was already true: it does not make those fields reach the
|
|
10
10
|
* agent. `align mcp`'s search arms have always been a pass-through - `serializeMcpResult` is a
|
|
@@ -61,7 +61,7 @@ export function normaliseDecisionRelation(raw) {
|
|
|
61
61
|
return out;
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
64
|
-
*
|
|
64
|
+
* The LATER decisions on a row's topic (align-stack db/laterOnTopic.ts) - up to 3,
|
|
65
65
|
* linked or merely similar, each `{ id, title, source_url, status?, date, date_basis,
|
|
66
66
|
* relation?, direction?, similarity? }`. Unlike the two fields above it is a LIST and is present
|
|
67
67
|
* regardless of status: the case it exists for is an `active` row a later, unlinked decision
|
|
@@ -83,7 +83,7 @@ export function normaliseLaterOnTopic(raw) {
|
|
|
83
83
|
* Apply the contract to a search payload, leaving everything else exactly as the gateway sent it.
|
|
84
84
|
*
|
|
85
85
|
* Non-array `results`, a non-object row, or a row with neither field are all pass-throughs.
|
|
86
|
-
* This runs on every search response including local-embedded ones -
|
|
86
|
+
* This runs on every search response including local-embedded ones - now, local
|
|
87
87
|
* `searchDecisions`/`listDecisions` DO read `decision_links` (via `relationFieldsFor` in
|
|
88
88
|
* local-gateway-client.ts) and can emit a real `successor`/`conflicts_with`, written at
|
|
89
89
|
* capture time by `classifyRelationship` or left as a plain `relates` cosine edge that emits
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type RenderBudget = 'compact' | 'full';
|
|
2
2
|
export interface RenderableDecision {
|
|
3
3
|
/** Required. A positive integer the CALLER assigns when numbering a candidate list -
|
|
4
|
-
* never a raw id/uuid
|
|
4
|
+
* never a raw id/uuid. */
|
|
5
5
|
ordinal: number;
|
|
6
6
|
title?: string | null;
|
|
7
7
|
/** One of decision_snapshots.status - 'superseded'/'archived' render RETIRED,
|
|
@@ -24,7 +24,7 @@ export interface RenderableDecision {
|
|
|
24
24
|
* re-derived here. */
|
|
25
25
|
cite?: string | null;
|
|
26
26
|
/** Never read for rendering - present only so a caller's row shape does not need
|
|
27
|
-
* stripping before calling. See the
|
|
27
|
+
* stripping before calling. See the positive control in decision-render.test.ts. */
|
|
28
28
|
id?: string;
|
|
29
29
|
}
|
|
30
30
|
export declare const FULL_STATEMENT_TOKEN_BUDGET = 90;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-render.d.ts","sourceRoot":"","sources":["../../src/lib/decision-render.ts"],"names":[],"mappings":"AAoCA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC;
|
|
1
|
+
{"version":3,"file":"decision-render.d.ts","sourceRoot":"","sources":["../../src/lib/decision-render.ts"],"names":[],"mappings":"AAoCA,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC;8BAC0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB;yEACqE;IACrE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB;IAChB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE;YAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACrE;0BACsB;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;wFACoF;IACpF,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAUD,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAC9C,eAAO,MAAM,2BAA2B,MAAM,CAAC;AA+E/C,wBAAgB,cAAc,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GAAG,MAAM,CAsC5F"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//
|
|
1
|
+
// The one writer for rendering a decision into text a model reads.
|
|
2
2
|
//
|
|
3
3
|
// This is the TypeScript twin of align-stack's `services/brain/app/decision_render.py`.
|
|
4
4
|
// Two separate repos with no shared filesystem, so the two implementations are pinned to
|
|
@@ -12,13 +12,13 @@
|
|
|
12
12
|
// rationale (why the bracket order is what it is, why truncation is estimated rather than
|
|
13
13
|
// counted live, why `dimension` is a caller-formatted string rather than a typed import).
|
|
14
14
|
//
|
|
15
|
-
// INPUT CONTRACT. `d.ordinal` is required (
|
|
15
|
+
// INPUT CONTRACT. `d.ordinal` is required (render candidates by ordinal, never a
|
|
16
16
|
// raw id - an id present on `d` for the caller's own bookkeeping never reaches the output).
|
|
17
17
|
// Everything else is optional. `dimension` is a caller-formatted scope label; this module
|
|
18
18
|
// does not import the gateway's DecisionDimension type, so a caller holding one formats it
|
|
19
19
|
// before calling (keeps this module dependency-free of the gateway's domain types).
|
|
20
20
|
//
|
|
21
|
-
// OUTPUT SHAPE, in this exact order (
|
|
21
|
+
// OUTPUT SHAPE, in this exact order (the status flag is FIRST in the bracket - it
|
|
22
22
|
// decides which relation types are even worth proposing, so it must not sit behind a long
|
|
23
23
|
// line of context a reader skims past):
|
|
24
24
|
//
|
|
@@ -121,9 +121,9 @@ export function renderDecision(d, opts) {
|
|
|
121
121
|
throw new Error(`renderDecision: unknown budget ${JSON.stringify(opts.budget)}, expected 'compact' or 'full'`);
|
|
122
122
|
}
|
|
123
123
|
if (d.ordinal === undefined || d.ordinal === null) {
|
|
124
|
-
//
|
|
124
|
+
// An id must never ride the text - the ordinal is what the caller assigns
|
|
125
125
|
// instead. A missing ordinal is a caller bug, not a "render with no number" case.
|
|
126
|
-
throw new Error("renderDecision: 'ordinal' is required (
|
|
126
|
+
throw new Error("renderDecision: 'ordinal' is required (never render a raw id)");
|
|
127
127
|
}
|
|
128
128
|
if (!Number.isInteger(d.ordinal) || d.ordinal < 1) {
|
|
129
129
|
throw new Error(`renderDecision: 'ordinal' must be a positive integer, got ${JSON.stringify(d.ordinal)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-render.js","sourceRoot":"","sources":["../../src/lib/decision-render.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"decision-render.js","sourceRoot":"","sources":["../../src/lib/decision-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Render the decisions file Align owns, and the one line that imports it.
|
|
3
3
|
*
|
|
4
4
|
* MECHANISM. Align owns `.align/decisions.md` outright and the user's CLAUDE.md gains a single
|
|
5
5
|
* import line. That satisfies Tom's augment-never-overwrite constraint STRUCTURALLY rather than
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* unsuperseded is a gateway query; this module formats a list and writes a file, which is
|
|
17
17
|
* plumbing.
|
|
18
18
|
*
|
|
19
|
-
* EXTERNAL STORAGE
|
|
19
|
+
* EXTERNAL STORAGE. A LOCAL graph's content is personal (built with the user's own
|
|
20
20
|
* read-only tokens), so it must never be representable in the git working tree at all - not
|
|
21
21
|
* even gitignored, which is a convention a `git add -f`, an edited line, or a merge dropping it
|
|
22
22
|
* can all bypass silently. `{ external: true }` writes the real bytes to
|
|
@@ -38,7 +38,7 @@ export interface ContextDecision {
|
|
|
38
38
|
cite?: string;
|
|
39
39
|
/** Where it was DECIDED. Never interchangeable with a decision_url into the Align app. */
|
|
40
40
|
sourceUrl?: string;
|
|
41
|
-
/**
|
|
41
|
+
/** Who decided, and whether a human has stood behind it. The label built from
|
|
42
42
|
* these (deciderLabel) is what routes a row into the claims section below, and what gets
|
|
43
43
|
* printed on its line - this is the one surface where the label has to be IN THE TEXT,
|
|
44
44
|
* since the file is consumed by agents that only read files. */
|
|
@@ -92,7 +92,7 @@ export declare function externalContextPath(repoRoot: string): string;
|
|
|
92
92
|
* a file that differs between runs turns every regeneration into a git diff in someone else's
|
|
93
93
|
* repo. The renderer carries no timestamp for exactly this reason.
|
|
94
94
|
*
|
|
95
|
-
* `opts.external`: the local-graph case (
|
|
95
|
+
* `opts.external`: the local-graph case (see the file header). Every existing caller
|
|
96
96
|
* omits it and gets byte-for-byte the same plain-file behaviour as before this option existed.
|
|
97
97
|
*/
|
|
98
98
|
export declare function writeDecisionsContext(repoRoot: string, decisions: ContextDecision[], opts?: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Render the decisions file Align owns, and the one line that imports it.
|
|
3
3
|
*
|
|
4
4
|
* MECHANISM. Align owns `.align/decisions.md` outright and the user's CLAUDE.md gains a single
|
|
5
5
|
* import line. That satisfies Tom's augment-never-overwrite constraint STRUCTURALLY rather than
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* unsuperseded is a gateway query; this module formats a list and writes a file, which is
|
|
17
17
|
* plumbing.
|
|
18
18
|
*
|
|
19
|
-
* EXTERNAL STORAGE
|
|
19
|
+
* EXTERNAL STORAGE. A LOCAL graph's content is personal (built with the user's own
|
|
20
20
|
* read-only tokens), so it must never be representable in the git working tree at all - not
|
|
21
21
|
* even gitignored, which is a convention a `git add -f`, an edited line, or a merge dropping it
|
|
22
22
|
* can all bypass silently. `{ external: true }` writes the real bytes to
|
|
@@ -49,7 +49,7 @@ export const ALIGN_IMPORT_LINE = `@${ALIGN_CONTEXT_PATH}`;
|
|
|
49
49
|
function ordered(decisions) {
|
|
50
50
|
return [...decisions].sort((a, b) => (a.cite ?? '').localeCompare(b.cite ?? '') || a.title.localeCompare(b.title));
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
52
|
+
/** The whole point of the split. An unratified agent claim must not render beside
|
|
53
53
|
* what the rest of the file states as fact - it goes in its own section, so a reader (human
|
|
54
54
|
* or agent) cannot mistake "said once, by an agent, mid-task" for "decided". */
|
|
55
55
|
function isUnratifiedClaim(d) {
|
|
@@ -81,7 +81,7 @@ export function renderDecisionsFile(decisions) {
|
|
|
81
81
|
];
|
|
82
82
|
if (decisions.length === 0) {
|
|
83
83
|
// "Nothing found" and "the fetch failed" must not look alike, so say which this is.
|
|
84
|
-
// An empty section reads as a claim that no decisions exist (
|
|
84
|
+
// An empty section reads as a claim that no decisions exist (new surface).
|
|
85
85
|
return `${[...header, 'No decisions have been captured for this repository yet.'].join('\n')}\n`;
|
|
86
86
|
}
|
|
87
87
|
const all = ordered(decisions);
|
|
@@ -162,7 +162,7 @@ function tryWriteExternalAndLink(repoRoot, inRepoTarget, rendered) {
|
|
|
162
162
|
* a file that differs between runs turns every regeneration into a git diff in someone else's
|
|
163
163
|
* repo. The renderer carries no timestamp for exactly this reason.
|
|
164
164
|
*
|
|
165
|
-
* `opts.external`: the local-graph case (
|
|
165
|
+
* `opts.external`: the local-graph case (see the file header). Every existing caller
|
|
166
166
|
* omits it and gets byte-for-byte the same plain-file behaviour as before this option existed.
|
|
167
167
|
*/
|
|
168
168
|
export async function writeDecisionsContext(repoRoot, decisions, opts = {}) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decisions-context.js","sourceRoot":"","sources":["../../src/lib/decisions-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAiBxF,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAE1D;;;;;GAKG;AACH,SAAS,OAAO,CAAC,SAA4B;IAC3C,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAClC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED;;iFAEiF;AACjF,SAAS,iBAAiB,CAAC,CAAkB;IAC3C,OAAO,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,2BAA2B,CAAC;AAC7I,CAAC;AAED,SAAS,IAAI,CAAC,CAAkB;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1C,MAAM,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAClH,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,OAAO,KAAK,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAA4B;IAC9D,MAAM,MAAM,GAAG;QACb,kCAAkC;QAClC,EAAE;QACF,uFAAuF;QACvF,uDAAuD;QACvD,EAAE;KACH,CAAC;IAEF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,oFAAoF;QACpF,
|
|
1
|
+
{"version":3,"file":"decisions-context.js","sourceRoot":"","sources":["../../src/lib/decisions-context.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/doctor-mcp.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The one real `tools/call` `align doctor` makes, through the same `align mcp` an agent
|
|
3
3
|
* would start, spawned the way an agent's config spawns it (alignServerEntry, so on Windows that is
|
|
4
4
|
* `cmd /c align mcp`, the form a client can actually launch).
|
|
5
5
|
*
|
package/dist/lib/doctor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* The checks behind `align doctor`, the install preflight.
|
|
3
3
|
*
|
|
4
4
|
* On a remote install the person at the keyboard is the buyer, so every failing check names the
|
|
5
5
|
* one next step for THEM. The last check is the one that matters: a real `tools/call` of
|
|
@@ -42,7 +42,7 @@ export interface DoctorDeps {
|
|
|
42
42
|
/**
|
|
43
43
|
* Local graph only: make sure the on-device embedding runtime and model are present (downloading
|
|
44
44
|
* them if this is the first run) and verified. Throws with the reason on any failure. Absent on
|
|
45
|
-
* a cloud install, where nothing embeds on this machine
|
|
45
|
+
* a cloud install, where nothing embeds on this machine.
|
|
46
46
|
*/
|
|
47
47
|
ensureEmbeddings?(): Promise<{
|
|
48
48
|
detail: string;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* release-asset builder (scripts/build-ort-runtime.ts) and `align doctor` all read this file, so
|
|
7
7
|
* the digest the CLI trusts and the digest the workflow publishes cannot drift apart.
|
|
8
8
|
*
|
|
9
|
-
* WHY A DOWNLOAD AT ALL
|
|
9
|
+
* WHY A DOWNLOAD AT ALL. `@huggingface/transformers` depends on `onnxruntime-node`,
|
|
10
10
|
* whose npm tarball carries the runtime for EVERY OS and the CUDA/TensorRT providers (548MB
|
|
11
11
|
* installed), plus `onnxruntime-web` (141MB, browser) and `sharp` - 779MB for a CLI whose
|
|
12
12
|
* embeddings need ~46MB of one platform's CPU library. npm has no way to install one platform's
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fetch, verify, cache and load the two things on-device embeddings need that npm no longer
|
|
3
|
-
* ships
|
|
3
|
+
* ships: the native ONNX Runtime for THIS os/arch, and the model files.
|
|
4
4
|
*
|
|
5
5
|
* Contract:
|
|
6
6
|
* - Every byte is checked against a digest pinned in embedding-assets.ts BEFORE it touches the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* One place that turns a fetcher's read into a capture report, so a
|
|
3
3
|
* connector-core that cannot report (0.5.0) and one that can (0.6.0, `fetchWithReport`)
|
|
4
4
|
* differ in exactly one branch rather than in nine wrappers.
|
|
5
5
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CaptureFetchResult } from './capture.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* The same read, plus its capture report. A local read has no page size to fall
|
|
4
4
|
* off and no access to lack, so the one thing it drops is a headed section under the
|
|
5
5
|
* length floor, and that is the one skip it reports. `scanned` is every ADR file and
|
|
6
6
|
* headed section seen; the cap is echoed only when it bounded the read - "8 ADRs and
|
|
@@ -4,7 +4,7 @@ import { buildBlobUrl, getCurrentBranch, getRemoteUrl } from '../git.js';
|
|
|
4
4
|
import { ALIGN_NUDGE_END, ALIGN_NUDGE_START } from '../agent-rules.js';
|
|
5
5
|
import { ALIGN_IMPORT_LINE } from '../decisions-context.js';
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* Read what the repo already wrote down, credential-free. Two sources:
|
|
8
8
|
*
|
|
9
9
|
* - ADR directories, the common naming conventions. ADRs are decision-shaped by
|
|
10
10
|
* construction (title, status, context, decision) - highest precision, lowest
|
|
@@ -13,7 +13,7 @@ import { ALIGN_IMPORT_LINE } from '../decisions-context.js';
|
|
|
13
13
|
* import line Align itself put there (align-cli#116: Align owns `.align/`
|
|
14
14
|
* outright and must never re-ingest its own output - that is a feedback loop).
|
|
15
15
|
*
|
|
16
|
-
* Both are filed under platform: 'docs', a value distinct from 'git'.
|
|
16
|
+
* Both are filed under platform: 'docs', a value distinct from 'git'. a measurement of
|
|
17
17
|
* a git-only import at 1,484 rows of "what changed and almost no why"; an ADR is exactly
|
|
18
18
|
* the "why" a commit subject cannot carry, and collapsing the two under one platform
|
|
19
19
|
* would destroy the only cheap way to select on that distinction later.
|
|
@@ -28,7 +28,7 @@ import { ALIGN_IMPORT_LINE } from '../decisions-context.js';
|
|
|
28
28
|
* a repo can legitimately carry more than one (a migration between conventions, or
|
|
29
29
|
* doc/adr and docs/decisions covering different eras of the same project). */
|
|
30
30
|
const ADR_DIR_CANDIDATES = ['docs/adr', 'doc/adr', 'docs/decisions', 'doc/decisions', 'adr'];
|
|
31
|
-
/** Root-level only, matching the two write-only surfaces
|
|
31
|
+
/** Root-level only, matching the two write-only surfaces it names. Nested
|
|
32
32
|
* per-package CLAUDE.md/AGENTS.md files are a real convention in this repo's own
|
|
33
33
|
* monorepo, but scoping to root for the first cut keeps the read side of the two
|
|
34
34
|
* files the CLI already knows how to write. */
|
|
@@ -123,7 +123,7 @@ function splitIntoSections(content) {
|
|
|
123
123
|
}
|
|
124
124
|
async function readAgentRulesItems(repoRoot, remoteUrl, branch) {
|
|
125
125
|
const items = [];
|
|
126
|
-
//
|
|
126
|
+
// Headed sections the length floor dropped, so the capture report can name
|
|
127
127
|
// them. The headingless preamble (an H1 line, an intro sentence) is not counted when it
|
|
128
128
|
// is dropped: nobody wrote it as a section, so nobody will look for it in the graph.
|
|
129
129
|
let droppedShort = 0;
|
|
@@ -195,7 +195,7 @@ async function readDocsItems(opts) {
|
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
197
|
/**
|
|
198
|
-
*
|
|
198
|
+
* The same read, plus its capture report. A local read has no page size to fall
|
|
199
199
|
* off and no access to lack, so the one thing it drops is a headed section under the
|
|
200
200
|
* length floor, and that is the one skip it reports. `scanned` is every ADR file and
|
|
201
201
|
* headed section seen; the cap is echoed only when it bounded the read - "8 ADRs and
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/lib/fetchers/docs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/lib/fetchers/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI5D;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;;+EAE+E;AAC/E,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;AAE7F;;;gDAGgD;AAChD,MAAM,iBAAiB,GAAG,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAErD;kFACkF;AAClF,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,IAAI;SACR,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAClC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,gDAAgD;SACzE,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACxC,IAAI,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,OAAO;SACX,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,IAAI,EAAE;SACN,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB;IAC1C,MAAM,GAAG,GAAgD,EAAE,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,kDAAkD;QAC9D,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC9D,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7E,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,0FAA0F;IAC1F,4FAA4F;IAC5F,0EAA0E;IAC1E,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO,CAAC,OAAe,EAAE,OAAe,EAAE,SAAwB,EAAE,MAAc;IACzF,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;QACpD,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,gBAAgB,CAAC,OAAO,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,sBAAsB,CAAC,OAAe;IAC7C,IAAI,GAAG,GAAG,OAAO,CAAC;IAClB,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC7C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACzC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;QAC9C,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;IACD,GAAG,GAAG,GAAG;SACN,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,iBAAiB,CAAC;SACnD,IAAI,CAAC,IAAI,CAAC,CAAC;IACd,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;6BAE6B;AAC7B,SAAS,iBAAiB,CAAC,OAAe;IACxC,MAAM,QAAQ,GAAuD,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACpG,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACrC,IAAI,EAAE;YAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;;YACvD,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AACxF,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,QAAgB,EAChB,SAAwB,EACxB,MAAc;IAEd,MAAM,KAAK,GAAyB,EAAE,CAAC;IACvC,2EAA2E;IAC3E,wFAAwF;IACxF,qFAAqF;IACrF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,+CAA+C;QAC3D,CAAC;QACD,MAAM,QAAQ,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC7C,qFAAqF;QACrF,gFAAgF;QAChF,mFAAmF;QACnF,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,KAAK,MAAM,OAAO,IAAI,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,OAAO;oBAAE,YAAY,EAAE,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACtF,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACtC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;gBAC9B,MAAM,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACT,UAAU,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,MAAM,EAAE;gBAC/D,QAAQ,EAAE,MAAM;gBAChB,QAAQ,EAAE,OAAO,CAAC,IAAI;gBACtB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AACjC,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,IAAqC;IAQhE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtD,YAAY,CAAC,OAAO,CAAC;QACrB,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;QAC7C,YAAY,CAAC,QAAQ,CAAC;KACvB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,QAAQ;SACtB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;SACpB,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/E,wFAAwF;IACxF,2FAA2F;IAC3F,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/C,qFAAqF;IACrF,qFAAqF;IACrF,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAExG,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACxG,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC;IAC5D,OAAO;QACL,KAAK,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC;QAC7D,OAAO,EAAE,UAAU,GAAG,YAAY;QAClC,oFAAoF;QACpF,uCAAuC;QACvC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC,KAAK;QAC/B,YAAY;KACb,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAqC;IACxE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3E,OAAO;QACL,KAAK;QACL,MAAM,EAAE;YACN,OAAO;YACP,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5C,KAAK,EAAE,YAAY,GAAG,CAAC;gBACrB,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,eAAe,oDAAoD,EAAE,CAAC;gBAC1H,CAAC,CAAC,EAAE;SACP;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CaptureFetchReport, CaptureFetchResult, CaptureSkip } from './capture.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Git's two drop reasons, kept apart. A commit whose SUBJECT is mechanical
|
|
4
4
|
* (isDecisionCommit: a prefix from MECHANICAL_SUBJECT_PREFIXES, or too short) never
|
|
5
5
|
* reaches the rationale gate at all, so folding it into "stated no reason" overstates
|
|
6
6
|
* what that gate did (Copilot review, PR #223). `scanned - kept - rejectedByRationale`
|
package/dist/lib/fetchers/git.js
CHANGED
|
@@ -2,7 +2,7 @@ import { GitFetcher } from '@aligndottech/connector-core';
|
|
|
2
2
|
import { getCommitHistoryDetailed, getRemoteUrl } from '../git.js';
|
|
3
3
|
import { MECHANICAL_SUBJECT_PREFIXES } from '../commit-shape.js';
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Git's two drop reasons, kept apart. A commit whose SUBJECT is mechanical
|
|
6
6
|
* (isDecisionCommit: a prefix from MECHANICAL_SUBJECT_PREFIXES, or too short) never
|
|
7
7
|
* reaches the rationale gate at all, so folding it into "stated no reason" overstates
|
|
8
8
|
* what that gate did (Copilot review, PR #223). `scanned - kept - rejectedByRationale`
|
|
@@ -2,7 +2,7 @@ import { type CaptureFetchResult, type CaptureSkip, type WindowedOpts } from './
|
|
|
2
2
|
import type { FetcherItem } from '@aligndottech/connector-core';
|
|
3
3
|
/**
|
|
4
4
|
* Read-only personal GitHub import (canonical fetcher in connector-core). `repo` (`owner/repo`)
|
|
5
|
-
* narrows the search to one repo - connector-core >= 0.7.0
|
|
5
|
+
* narrows the search to one repo - connector-core >= 0.7.0; omitted, every repo the
|
|
6
6
|
* token can see, unchanged from before that version.
|
|
7
7
|
*
|
|
8
8
|
* L3: the list is read ITEMS FIRST (`discussion: 'none'`, about 4 search calls per 300 items),
|
|
@@ -47,7 +47,7 @@ export declare function drainDiscussion(pending: FetcherItem[], o: {
|
|
|
47
47
|
skips: CaptureSkip[];
|
|
48
48
|
}>;
|
|
49
49
|
/**
|
|
50
|
-
*
|
|
50
|
+
* Which repo to scope GitHub's search to, if any, given CLI overrides that may
|
|
51
51
|
* not exist at every call site - `align setup`'s interactive GitHub source has neither
|
|
52
52
|
* flag, so it calls this with `{}` and gets the same auto-detect `import github` does.
|
|
53
53
|
*
|
|
@@ -4,7 +4,7 @@ import { withCaptureReport } from './capture.js';
|
|
|
4
4
|
import { currentRepoIdentity } from '../repo-identity.js';
|
|
5
5
|
/**
|
|
6
6
|
* Read-only personal GitHub import (canonical fetcher in connector-core). `repo` (`owner/repo`)
|
|
7
|
-
* narrows the search to one repo - connector-core >= 0.7.0
|
|
7
|
+
* narrows the search to one repo - connector-core >= 0.7.0; omitted, every repo the
|
|
8
8
|
* token can see, unchanged from before that version.
|
|
9
9
|
*
|
|
10
10
|
* L3: the list is read ITEMS FIRST (`discussion: 'none'`, about 4 search calls per 300 items),
|
|
@@ -126,7 +126,7 @@ export async function drainDiscussion(pending, o) {
|
|
|
126
126
|
}
|
|
127
127
|
const GITHUB_HOST_PREFIX = 'github.com/';
|
|
128
128
|
/**
|
|
129
|
-
*
|
|
129
|
+
* Which repo to scope GitHub's search to, if any, given CLI overrides that may
|
|
130
130
|
* not exist at every call site - `align setup`'s interactive GitHub source has neither
|
|
131
131
|
* flag, so it calls this with `{}` and gets the same auto-detect `import github` does.
|
|
132
132
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LinearFetcher } from '@aligndottech/connector-core';
|
|
2
2
|
import { withCaptureReport } from './capture.js';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Linear's scoped personal-API-key dialog
|
|
5
5
|
* (linear.app/settings/account/security/api-keys/new) lets a key be created without Read
|
|
6
6
|
* access. This fetcher's query is read-only, so a key like that gets refused with a plain
|
|
7
7
|
* 400 - `connector-core`'s providerError already surfaces Linear's own words for a 400 (see
|