@cat-factory/kernel 0.19.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -31,6 +31,25 @@ export declare const DEFAULT_CI_MAX_ATTEMPTS: 10;
31
31
  * preset resolves. One reviewer pass = one iteration; the initial review is iteration 1.
32
32
  */
33
33
  export declare const DEFAULT_MAX_REQUIREMENT_ITERATIONS: 6;
34
+ /**
35
+ * Budgets for the linked-context the engine assembles for an agent step. Container
36
+ * kinds get a cheap in-prompt summary index (capped by `maxItems`/`summaryChars`)
37
+ * plus the full bodies materialised as files in the run workspace (capped overall by
38
+ * `maxContextFileBytes` so the job body can't bloat). Inline kinds — which have no
39
+ * checkout to explore — instead get the full body injected into the prompt, trimmed
40
+ * to `inlineBodyTokens` (see {@link estimateTokens}). Tunable; deliberately generous
41
+ * on the file budget (the agent only reads what it needs) and tight on the prompt.
42
+ */
43
+ export declare const CONTEXT_BUDGET: {
44
+ /** Max linked items listed in the in-prompt summary index. */
45
+ readonly maxItems: 20;
46
+ /** Length of each item's one-line summary in the index. */
47
+ readonly summaryChars: 160;
48
+ /** Token budget for body injected into an inline (no-checkout) kind's prompt. */
49
+ readonly inlineBodyTokens: 2500;
50
+ /** Total bytes cap across all materialised context files in a job body (~256 KB). */
51
+ readonly maxContextFileBytes: 262144;
52
+ };
34
53
  /**
35
54
  * A model preset template (no id/createdAt yet) used to seed a fresh workspace's
36
55
  * preset library. {@link DEFAULT_MODEL_PRESETS} lists the built-ins; the service
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI3E;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAKxC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;aAC/B,IAAI,EAAE,UAAU;aAChB,aAAa,EAAE,GAAG;aAClB,OAAO,EAAE,GAAG;aACZ,SAAS,EAAE,GAAG;aACd,aAAa,EAAE,EAAE;aACjB,wBAAwB,EAAE,CAAC;aAE3B,4BAA4B,EAAE,MAAM;aAKpC,yBAAyB,EAAE,EAAE;aAC7B,kBAAkB,EAAE,CAAC;CACb,CAAA;AAEV,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,IAAqC,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,GAAgD,CAAA;AAE/F;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAGlD,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,EAAE,eAC0C,CAAA;AAE7E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,GAAG,SAAS,EACxD,SAAS,EAAE,MAAM,GAChB,MAAM,CAGR;AAED,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAStD,CAAA"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAI3E;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,iBAKxC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;aAC/B,IAAI,EAAE,UAAU;aAChB,aAAa,EAAE,GAAG;aAClB,OAAO,EAAE,GAAG;aACZ,SAAS,EAAE,GAAG;aACd,aAAa,EAAE,EAAE;aACjB,wBAAwB,EAAE,CAAC;aAE3B,4BAA4B,EAAE,MAAM;aAKpC,yBAAyB,EAAE,EAAE;aAC7B,kBAAkB,EAAE,CAAC;CACb,CAAA;AAEV,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,IAAqC,CAAA;AAEzE;;;GAGG;AACH,eAAO,MAAM,kCAAkC,GAAgD,CAAA;AAE/F;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc;IACzB,8DAA8D;aAC9D,QAAQ,EAAE,EAAE;IACZ,2DAA2D;aAC3D,YAAY,EAAE,GAAG;IACjB,iFAAiF;aACjF,gBAAgB,EAAE,IAAI;IACtB,qFAAqF;aACrF,mBAAmB,EAAE,MAAO;CACpB,CAAA;AAEV;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAAe,EAGlD,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,oBAAoB,EAAE,eAC0C,CAAA;AAE7E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,GAAG,SAAS,EACxD,SAAS,EAAE,MAAM,GAChB,MAAM,CAGR;AAED,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAStD,CAAA"}
@@ -41,6 +41,25 @@ export const DEFAULT_CI_MAX_ATTEMPTS = DEFAULT_MERGE_PRESET.ciMaxAttempts;
41
41
  * preset resolves. One reviewer pass = one iteration; the initial review is iteration 1.
42
42
  */
43
43
  export const DEFAULT_MAX_REQUIREMENT_ITERATIONS = DEFAULT_MERGE_PRESET.maxRequirementIterations;
44
+ /**
45
+ * Budgets for the linked-context the engine assembles for an agent step. Container
46
+ * kinds get a cheap in-prompt summary index (capped by `maxItems`/`summaryChars`)
47
+ * plus the full bodies materialised as files in the run workspace (capped overall by
48
+ * `maxContextFileBytes` so the job body can't bloat). Inline kinds — which have no
49
+ * checkout to explore — instead get the full body injected into the prompt, trimmed
50
+ * to `inlineBodyTokens` (see {@link estimateTokens}). Tunable; deliberately generous
51
+ * on the file budget (the agent only reads what it needs) and tight on the prompt.
52
+ */
53
+ export const CONTEXT_BUDGET = {
54
+ /** Max linked items listed in the in-prompt summary index. */
55
+ maxItems: 20,
56
+ /** Length of each item's one-line summary in the index. */
57
+ summaryChars: 160,
58
+ /** Token budget for body injected into an inline (no-checkout) kind's prompt. */
59
+ inlineBodyTokens: 2500,
60
+ /** Total bytes cap across all materialised context files in a job body (~256 KB). */
61
+ maxContextFileBytes: 262_144,
62
+ };
44
63
  /**
45
64
  * The model presets seeded for every workspace. The default points every agent kind
46
65
  * at Kimi K2.7; a second built-in points everything at GLM-5.2. Both use the catalog
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAEA,wDAAwD;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,wBAAwB,EAAE,GAAG;IAC7B,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,UAAU;IAChB,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,EAAE;IACjB,wBAAwB,EAAE,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,EAAE,MAAM;IACpC,6EAA6E;IAC7E,4EAA4E;IAC5E,kFAAkF;IAClF,+DAA+D;IAC/D,yBAAyB,EAAE,EAAE;IAC7B,kBAAkB,EAAE,CAAC;CACb,CAAA;AAEV,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,aAAa,CAAA;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,oBAAoB,CAAC,wBAAwB,CAAA;AAc/F;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;IAC/E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;CACzE,CAAA;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAC/B,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAE,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAwD,EACxD,SAAiB;IAEjB,MAAM,CAAC,GAAG,MAAM,IAAI,oBAAoB,CAAA;IACxC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAA;AAChD,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;CAC3B,CAAA"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/domain/catalog.ts"],"names":[],"mappings":"AAEA,wDAAwD;AAExD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsB;IAC3D,wBAAwB,EAAE,GAAG;IAC7B,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,UAAU;IAChB,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,GAAG;IACZ,SAAS,EAAE,GAAG;IACd,aAAa,EAAE,EAAE;IACjB,wBAAwB,EAAE,CAAC;IAC3B,gFAAgF;IAChF,4BAA4B,EAAE,MAAM;IACpC,6EAA6E;IAC7E,4EAA4E;IAC5E,kFAAkF;IAClF,+DAA+D;IAC/D,yBAAyB,EAAE,EAAE;IAC7B,kBAAkB,EAAE,CAAC;CACb,CAAA;AAEV,oFAAoF;AACpF,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,aAAa,CAAA;AAEzE;;;GAGG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,oBAAoB,CAAC,wBAAwB,CAAA;AAE/F;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,8DAA8D;IAC9D,QAAQ,EAAE,EAAE;IACZ,2DAA2D;IAC3D,YAAY,EAAE,GAAG;IACjB,iFAAiF;IACjF,gBAAgB,EAAE,IAAI;IACtB,qFAAqF;IACrF,mBAAmB,EAAE,OAAO;CACpB,CAAA;AAcV;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;IAC/E,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;CACzE,CAAA;AAED,2FAA2F;AAC3F,MAAM,CAAC,MAAM,oBAAoB,GAC/B,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAE,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAwD,EACxD,SAAiB;IAEjB,MAAM,CAAC,GAAG,MAAM,IAAI,oBAAoB,CAAA;IACxC,OAAO,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,WAAW,CAAA;AAChD,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE,UAAU;IACpB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;CAC3B,CAAA"}
package/dist/index.d.ts CHANGED
@@ -2,7 +2,7 @@ export * from './domain/types.js';
2
2
  export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, assertFound, getErrorMessage, type DomainErrorCode, type CredentialRequiredReason, } from './domain/errors.js';
3
3
  export { sameSubtasks, sameSubtaskItems } from './domain/subtasks.logic.js';
4
4
  export { resolveWritebackFlag } from './domain/writeback.js';
5
- export { BLOCK_TYPE_LABEL, DEFAULT_MERGE_PRESET, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, modelForKindFromPreset, type ModelPresetSeed, } from './domain/catalog.js';
5
+ export { BLOCK_TYPE_LABEL, DEFAULT_MERGE_PRESET, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, CONTEXT_BUDGET, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, modelForKindFromPreset, type ModelPresetSeed, } from './domain/catalog.js';
6
6
  export { type SelectableModel, type ModelVariant, type SubscriptionVariant, type SubscriptionVendorConfig, type ProviderCapabilities, type ModelCostResolver, MODEL_CATALOG, SUBSCRIPTION_VENDORS, ALL_SUBSCRIPTION_VENDORS, getSelectableModel, contextWindowFor, effectiveCatalog, effectiveCatalogWith, type LocalEndpointModels, localSelectableModels, parseLocalModelId, openRouterSelectableModels, parseOpenRouterModelId, resolveModelRef, isModelUsable, subscriptionOptionFor, isIndividualVendor, INDIVIDUAL_VENDORS, individualVendorForModelId, personalCredentialVendorForModelId, } from './domain/models.js';
7
7
  export { seedBlocks, seedPipelines, BLUEPRINT_PIPELINE_ID, DEP_UPDATE_PIPELINE_ID, TECH_DEBT_PIPELINE_ID, } from './domain/seed.js';
8
8
  export { registerPipeline, registerPipelines, registeredPipelines, clearRegisteredPipelines, } from './domain/pipeline-registry.js';
@@ -10,8 +10,9 @@ export * from './ports/index.js';
10
10
  export { type ServiceRegistrationDeps, registerServiceForFrame, } from './domain/service-registration.js';
11
11
  export { MapSourceRegistry } from './shared/source-registry.logic.js';
12
12
  export * as atlassianLogic from './shared/atlassian.logic.js';
13
- export { markdownToText, buildExcerpt } from './shared/markdown.logic.js';
13
+ export { markdownToText, buildExcerpt, estimateTokens, contentHash, } from './shared/markdown.logic.js';
14
14
  export { normalizeAtlassianBaseUrl, assertSafeAtlassianBaseUrl } from './shared/atlassian.logic.js';
15
+ export { normalizeUrl, urlMatchCandidates } from './shared/url.logic.js';
15
16
  export { requireWorkspace } from './workspace-guard.js';
16
17
  export { type TaskContextView, renderTaskContext } from './shared/tasks-prompt.logic.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAEnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,wBAAwB,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AAIzB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EACL,KAAK,uBAAuB,EAC5B,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAE,KAAK,eAAe,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ export * from './domain/types.js';
4
4
  export { DomainError, NotFoundError, ValidationError, ConflictError, CredentialRequiredError, assertFound, getErrorMessage, } from './domain/errors.js';
5
5
  export { sameSubtasks, sameSubtaskItems } from './domain/subtasks.logic.js';
6
6
  export { resolveWritebackFlag } from './domain/writeback.js';
7
- export { BLOCK_TYPE_LABEL, DEFAULT_MERGE_PRESET, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, modelForKindFromPreset, } from './domain/catalog.js';
7
+ export { BLOCK_TYPE_LABEL, DEFAULT_MERGE_PRESET, DEFAULT_CI_MAX_ATTEMPTS, DEFAULT_MAX_REQUIREMENT_ITERATIONS, CONTEXT_BUDGET, DEFAULT_WORKSPACE_SETTINGS, DEFAULT_MODEL_PRESETS, DEFAULT_MODEL_PRESET, modelForKindFromPreset, } from './domain/catalog.js';
8
8
  export { MODEL_CATALOG, SUBSCRIPTION_VENDORS, ALL_SUBSCRIPTION_VENDORS, getSelectableModel, contextWindowFor, effectiveCatalog, effectiveCatalogWith, localSelectableModels, parseLocalModelId, openRouterSelectableModels, parseOpenRouterModelId, resolveModelRef, isModelUsable, subscriptionOptionFor, isIndividualVendor, INDIVIDUAL_VENDORS, individualVendorForModelId, personalCredentialVendorForModelId, } from './domain/models.js';
9
9
  export { seedBlocks, seedPipelines, BLUEPRINT_PIPELINE_ID, DEP_UPDATE_PIPELINE_ID, TECH_DEBT_PIPELINE_ID, } from './domain/seed.js';
10
10
  // Installation-level extension point for predefined pipelines (mirrors the custom
@@ -15,8 +15,9 @@ export * from './ports/index.js';
15
15
  export { registerServiceForFrame, } from './domain/service-registration.js';
16
16
  export { MapSourceRegistry } from './shared/source-registry.logic.js';
17
17
  export * as atlassianLogic from './shared/atlassian.logic.js';
18
- export { markdownToText, buildExcerpt } from './shared/markdown.logic.js';
18
+ export { markdownToText, buildExcerpt, estimateTokens, contentHash, } from './shared/markdown.logic.js';
19
19
  export { normalizeAtlassianBaseUrl, assertSafeAtlassianBaseUrl } from './shared/atlassian.logic.js';
20
+ export { normalizeUrl, urlMatchCandidates } from './shared/url.logic.js';
20
21
  export { requireWorkspace } from './workspace-guard.js';
21
22
  export { renderTaskContext } from './shared/tasks-prompt.logic.js';
22
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAE9D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAOL,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kFAAkF;AAClF,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAEL,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AAEnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAwB,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,8DAA8D;AAE9D,cAAc,mBAAmB,CAAA;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,eAAe,GAGhB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,sBAAsB,GAEvB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAOL,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,qBAAqB,EACrB,iBAAiB,EACjB,0BAA0B,EAC1B,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,kCAAkC,GACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,kBAAkB,CAAA;AACzB,kFAAkF;AAClF,yFAAyF;AACzF,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,+BAA+B,CAAA;AAEtC,cAAc,kBAAkB,CAAA;AAEhC,OAAO,EAEL,uBAAuB,GACxB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,cAAc,MAAM,6BAA6B,CAAA;AAC7D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,WAAW,GACZ,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAA;AACnG,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAEvD,OAAO,EAAwB,iBAAiB,EAAE,MAAM,gCAAgC,CAAA"}
@@ -65,7 +65,12 @@ export interface AgentRunContext {
65
65
  contextDocs?: {
66
66
  title: string;
67
67
  url: string;
68
+ /** Short plain-text excerpt for list/preview rendering. */
68
69
  excerpt: string;
70
+ /** One-line summary rendered into the in-prompt summary index. */
71
+ summary: string;
72
+ /** Full normalized-Markdown body, materialised as a file for the agent to explore. */
73
+ body: string;
69
74
  }[];
70
75
  /**
71
76
  * Tracker issues (Jira, …) linked to this block, supplied as extra context.
@@ -88,6 +93,8 @@ export interface AgentRunContext {
88
93
  createdAt: string;
89
94
  body: string;
90
95
  }[];
96
+ /** One-line summary rendered into the in-prompt summary index. */
97
+ summary: string;
91
98
  }[];
92
99
  /**
93
100
  * Task-level configuration values contributed by the agents in this task's
@@ -1 +1 @@
1
- {"version":3,"file":"agent-executor.d.ts","sourceRoot":"","sources":["../../src/ports/agent-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-executor.d.ts","sourceRoot":"","sources":["../../src/ports/agent-executor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../src/ports/agent-executor.ts"],"names":[],"mappings":"AA4XA,yDAAyD;AACzD,MAAM,UAAU,oBAAoB,CAAC,QAAuB;IAC1D,MAAM,SAAS,GAAG,QAAuC,CAAA;IACzD,OAAO,CACL,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU;QACzC,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;QACxC,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU,CACxC,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"agent-executor.js","sourceRoot":"","sources":["../../src/ports/agent-executor.ts"],"names":[],"mappings":"AAuYA,yDAAyD;AACzD,MAAM,UAAU,oBAAoB,CAAC,QAAuB;IAC1D,MAAM,SAAS,GAAG,QAAuC,CAAA;IACzD,OAAO,CACL,OAAO,SAAS,CAAC,SAAS,KAAK,UAAU;QACzC,OAAO,SAAS,CAAC,QAAQ,KAAK,UAAU;QACxC,OAAO,SAAS,CAAC,OAAO,KAAK,UAAU,CACxC,CAAA;AACH,CAAC"}
@@ -38,6 +38,8 @@ export interface DocumentRecord {
38
38
  url: string;
39
39
  excerpt: string;
40
40
  body: string;
41
+ /** FNV-1a digest of `body`, for cheap change detection across re-imports. */
42
+ contentHash: string;
41
43
  linkedBlockId: string | null;
42
44
  syncedAt: number;
43
45
  deletedAt: number | null;
@@ -47,6 +49,12 @@ export interface DocumentRepository {
47
49
  get(workspaceId: string, source: DocumentSourceKind, externalId: string): Promise<DocumentRecord | null>;
48
50
  /** Every live document imported into the workspace, across sources. */
49
51
  listByWorkspace(workspaceId: string): Promise<DocumentRecord[]>;
52
+ /**
53
+ * Resolve a single live document by its canonical `url` (trailing-slash tolerant),
54
+ * across sources. Used to resolve a URL named explicitly in a block's description
55
+ * against the imported corpus without scanning every document body.
56
+ */
57
+ getByUrl(workspaceId: string, url: string): Promise<DocumentRecord | null>;
50
58
  /** Live documents attached to a board block (resolved during execution). */
51
59
  listByBlock(workspaceId: string, blockId: string): Promise<DocumentRecord[]>;
52
60
  /** Attach a document to a board block (or detach with null). */
@@ -1 +1 @@
1
- {"version":3,"file":"document-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/document-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAO/D;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,WAAW,EAAE,mBAAmB,CAAA;IAChC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,8EAA8E;IAC9E,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA;IAC3C,iEAAiE;IACjE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAA;IACzE,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,wDAAwD;IACxD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,GAAG,CACD,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACjC,uEAAuE;IACvE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/D,4EAA4E;IAC5E,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC5E,gEAAgE;IAChE,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB"}
1
+ {"version":3,"file":"document-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/document-repositories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAO/D;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,WAAW,EAAE,mBAAmB,CAAA;IAChC,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,sDAAsD;IACtD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,8EAA8E;IAC9E,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAA;IAC3C,iEAAiE;IACjE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,EAAE,CAAC,CAAA;IACzE,uEAAuE;IACvE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvD,wDAAwD;IACxD,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACvF;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7C,GAAG,CACD,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACjC,uEAAuE;IACvE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC/D;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1E,4EAA4E;IAC5E,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;IAC5E,gEAAgE;IAChE,SAAS,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,IAAI,CAAC,CAAA;CACjB"}
@@ -72,6 +72,12 @@ export interface TaskRepository {
72
72
  get(workspaceId: string, source: TaskSourceKind, externalId: string): Promise<TaskRecord | null>;
73
73
  /** Every live issue imported into the workspace, across sources. */
74
74
  listByWorkspace(workspaceId: string): Promise<TaskRecord[]>;
75
+ /**
76
+ * Resolve a single live issue by its canonical `url` (trailing-slash tolerant),
77
+ * across sources. Used to resolve a URL named explicitly in a block's description
78
+ * against the imported corpus without scanning every issue.
79
+ */
80
+ getByUrl(workspaceId: string, url: string): Promise<TaskRecord | null>;
75
81
  /** Live issues attached to a board block (resolved during execution). */
76
82
  listByBlock(workspaceId: string, blockId: string): Promise<TaskRecord[]>;
77
83
  /** Attach an issue to a board block (or detach with null). */
@@ -1 +1 @@
1
- {"version":3,"file":"task-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/task-repositories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-repositories.d.ts","sourceRoot":"","sources":["../../src/ports/task-repositories.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,19 @@
2
2
  export declare function markdownToText(markdown: string): string;
3
3
  /** A short plain-text excerpt of a Markdown body, for list/preview rendering. */
4
4
  export declare function buildExcerpt(markdown: string, max?: number): string;
5
+ /**
6
+ * A rough token estimate for budgeting context. Not exact — it only trims context,
7
+ * it never bills — so a model-agnostic heuristic beats a per-vendor tokenizer here
8
+ * (our fleet spans Anthropic/Qwen/Llama, not just OpenAI). ~4 chars/token is the
9
+ * conventional English approximation (Anthropic guides ~3.5; 4 keeps us from
10
+ * over-trimming). Dependency-free so it runs on the Worker edge runtime.
11
+ */
12
+ export declare function estimateTokens(text: string): number;
13
+ /**
14
+ * A fast, dependency-free 32-bit FNV-1a hex digest. Used for cheap content-change
15
+ * detection (skip re-importing an unchanged document body), NOT for security — so a
16
+ * non-cryptographic hash is the right tool, and it runs identically on the Worker edge
17
+ * runtime and Node without WebCrypto's async ceremony.
18
+ */
19
+ export declare function contentHash(text: string): string;
5
20
  //# sourceMappingURL=markdown.logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/markdown.logic.ts"],"names":[],"mappings":"AAKA,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAGhE"}
1
+ {"version":3,"file":"markdown.logic.d.ts","sourceRoot":"","sources":["../../src/shared/markdown.logic.ts"],"names":[],"mappings":"AAKA,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CASvD;AAED,iFAAiF;AACjF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAM,GAAG,MAAM,CAGhE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOhD"}
@@ -18,4 +18,28 @@ export function buildExcerpt(markdown, max = 280) {
18
18
  const text = markdownToText(markdown);
19
19
  return text.length > max ? `${text.slice(0, max - 1).trimEnd()}…` : text;
20
20
  }
21
+ /**
22
+ * A rough token estimate for budgeting context. Not exact — it only trims context,
23
+ * it never bills — so a model-agnostic heuristic beats a per-vendor tokenizer here
24
+ * (our fleet spans Anthropic/Qwen/Llama, not just OpenAI). ~4 chars/token is the
25
+ * conventional English approximation (Anthropic guides ~3.5; 4 keeps us from
26
+ * over-trimming). Dependency-free so it runs on the Worker edge runtime.
27
+ */
28
+ export function estimateTokens(text) {
29
+ return Math.ceil(text.length / 4);
30
+ }
31
+ /**
32
+ * A fast, dependency-free 32-bit FNV-1a hex digest. Used for cheap content-change
33
+ * detection (skip re-importing an unchanged document body), NOT for security — so a
34
+ * non-cryptographic hash is the right tool, and it runs identically on the Worker edge
35
+ * runtime and Node without WebCrypto's async ceremony.
36
+ */
37
+ export function contentHash(text) {
38
+ let h = 0x811c9dc5;
39
+ for (let i = 0; i < text.length; i++) {
40
+ h ^= text.charCodeAt(i);
41
+ h = Math.imul(h, 0x01000193);
42
+ }
43
+ return (h >>> 0).toString(16).padStart(8, '0');
44
+ }
21
45
  //# sourceMappingURL=markdown.logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.logic.js","sourceRoot":"","sources":["../../src/shared/markdown.logic.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,+DAA+D;AAE/D,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ;SACZ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;AACX,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,GAAG,GAAG,GAAG;IACtD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACrC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1E,CAAC"}
1
+ {"version":3,"file":"markdown.logic.js","sourceRoot":"","sources":["../../src/shared/markdown.logic.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6EAA6E;AAC7E,iFAAiF;AACjF,+DAA+D;AAE/D,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,QAAQ;SACZ,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACpC,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC;SACnC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;SACtB,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC;SACvC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAA;AACX,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,YAAY,CAAC,QAAgB,EAAE,GAAG,GAAG,GAAG;IACtD,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACrC,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;AACnC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,IAAI,CAAC,GAAG,UAAU,CAAA;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACvB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAA;IAC9B,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;AAChD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /** Canonicalise a URL for equality: trim surrounding space and drop trailing slashes. */
2
+ export declare function normalizeUrl(url: string): string;
3
+ /**
4
+ * The two stored-`url` forms a reference can equal: the trailing-slash-stripped base
5
+ * and that base with a single trailing slash. Lets a repository resolve a URL with a
6
+ * `WHERE url IN (?, ?)` point lookup instead of scanning + normalising every row.
7
+ */
8
+ export declare function urlMatchCandidates(url: string): [string, string];
9
+ //# sourceMappingURL=url.logic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.logic.d.ts","sourceRoot":"","sources":["../../src/shared/url.logic.ts"],"names":[],"mappings":"AAKA,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGhE"}
@@ -0,0 +1,18 @@
1
+ // Small, dependency-free URL helpers for matching a URL named in prose against the
2
+ // canonical `url` stored on an imported document/issue. Deliberately conservative:
3
+ // we only canonicalise differences that are semantically irrelevant (surrounding
4
+ // whitespace and a trailing slash) so a point lookup stays high-confidence.
5
+ /** Canonicalise a URL for equality: trim surrounding space and drop trailing slashes. */
6
+ export function normalizeUrl(url) {
7
+ return url.trim().replace(/\/+$/, '');
8
+ }
9
+ /**
10
+ * The two stored-`url` forms a reference can equal: the trailing-slash-stripped base
11
+ * and that base with a single trailing slash. Lets a repository resolve a URL with a
12
+ * `WHERE url IN (?, ?)` point lookup instead of scanning + normalising every row.
13
+ */
14
+ export function urlMatchCandidates(url) {
15
+ const base = normalizeUrl(url);
16
+ return [base, `${base}/`];
17
+ }
18
+ //# sourceMappingURL=url.logic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.logic.js","sourceRoot":"","sources":["../../src/shared/url.logic.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,mFAAmF;AACnF,iFAAiF;AACjF,4EAA4E;AAE5E,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACvC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC9B,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,CAAA;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/kernel",
3
- "version": "0.19.0",
3
+ "version": "0.20.0",
4
4
  "description": "Shared vocabulary, pure logic, and port interfaces for the Agent Architecture Board.",
5
5
  "repository": {
6
6
  "type": "git",