olympus-ai 3.2.3 → 3.3.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.
- package/.claude-plugin/plugin.json +1 -1
- package/dist/__tests__/ascent-checkpoint.test.d.ts +2 -0
- package/dist/__tests__/ascent-checkpoint.test.d.ts.map +1 -0
- package/dist/__tests__/ascent-checkpoint.test.js +261 -0
- package/dist/__tests__/ascent-checkpoint.test.js.map +1 -0
- package/dist/__tests__/config-ascent.test.d.ts +2 -0
- package/dist/__tests__/config-ascent.test.d.ts.map +1 -0
- package/dist/__tests__/config-ascent.test.js +134 -0
- package/dist/__tests__/config-ascent.test.js.map +1 -0
- package/dist/__tests__/hook-blocking.test.d.ts +8 -0
- package/dist/__tests__/hook-blocking.test.d.ts.map +1 -0
- package/dist/__tests__/hook-blocking.test.js +277 -0
- package/dist/__tests__/hook-blocking.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +1 -1
- package/dist/__tests__/metrics-cli.test.d.ts +5 -0
- package/dist/__tests__/metrics-cli.test.d.ts.map +1 -0
- package/dist/__tests__/metrics-cli.test.js +24 -0
- package/dist/__tests__/metrics-cli.test.js.map +1 -0
- package/dist/__tests__/skill-auto-detection.test.d.ts +2 -0
- package/dist/__tests__/skill-auto-detection.test.d.ts.map +1 -0
- package/dist/__tests__/skill-auto-detection.test.js +255 -0
- package/dist/__tests__/skill-auto-detection.test.js.map +1 -0
- package/dist/__tests__/token-estimator.test.d.ts +5 -0
- package/dist/__tests__/token-estimator.test.d.ts.map +1 -0
- package/dist/__tests__/token-estimator.test.js +192 -0
- package/dist/__tests__/token-estimator.test.js.map +1 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +83 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/document-writer.d.ts.map +1 -1
- package/dist/agents/document-writer.js +38 -0
- package/dist/agents/document-writer.js.map +1 -1
- package/dist/agents/frontend-engineer.d.ts.map +1 -1
- package/dist/agents/frontend-engineer.js +16 -0
- package/dist/agents/frontend-engineer.js.map +1 -1
- package/dist/agents/olympian.d.ts.map +1 -1
- package/dist/agents/olympian.js +15 -0
- package/dist/agents/olympian.js.map +1 -1
- package/dist/cli/commands/metrics.d.ts +31 -0
- package/dist/cli/commands/metrics.d.ts.map +1 -0
- package/dist/cli/commands/metrics.js +266 -0
- package/dist/cli/commands/metrics.js.map +1 -0
- package/dist/cli/index.js +39 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +16 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/features/ascent-checkpoint/index.d.ts +48 -0
- package/dist/features/ascent-checkpoint/index.d.ts.map +1 -0
- package/dist/features/ascent-checkpoint/index.js +144 -0
- package/dist/features/ascent-checkpoint/index.js.map +1 -0
- package/dist/features/hook-logging/index.d.ts +37 -0
- package/dist/features/hook-logging/index.d.ts.map +1 -0
- package/dist/features/hook-logging/index.js +120 -0
- package/dist/features/hook-logging/index.js.map +1 -0
- package/dist/features/hook-logging/index.test.d.ts +5 -0
- package/dist/features/hook-logging/index.test.d.ts.map +1 -0
- package/dist/features/hook-logging/index.test.js +268 -0
- package/dist/features/hook-logging/index.test.js.map +1 -0
- package/dist/features/index.d.ts +3 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +8 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/magic-keywords.d.ts +51 -0
- package/dist/features/magic-keywords.d.ts.map +1 -1
- package/dist/features/magic-keywords.js +172 -0
- package/dist/features/magic-keywords.js.map +1 -1
- package/dist/features/session-state/index.d.ts +50 -0
- package/dist/features/session-state/index.d.ts.map +1 -0
- package/dist/features/session-state/index.js +64 -0
- package/dist/features/session-state/index.js.map +1 -0
- package/dist/features/session-state/index.test.d.ts +5 -0
- package/dist/features/session-state/index.test.d.ts.map +1 -0
- package/dist/features/session-state/index.test.js +221 -0
- package/dist/features/session-state/index.test.js.map +1 -0
- package/dist/features/token-metrics/index.d.ts +6 -0
- package/dist/features/token-metrics/index.d.ts.map +1 -0
- package/dist/features/token-metrics/index.js +5 -0
- package/dist/features/token-metrics/index.js.map +1 -0
- package/dist/features/token-metrics/storage.d.ts +16 -0
- package/dist/features/token-metrics/storage.d.ts.map +1 -0
- package/dist/features/token-metrics/storage.js +144 -0
- package/dist/features/token-metrics/storage.js.map +1 -0
- package/dist/features/token-metrics/token-estimator.d.ts +66 -0
- package/dist/features/token-metrics/token-estimator.d.ts.map +1 -0
- package/dist/features/token-metrics/token-estimator.js +230 -0
- package/dist/features/token-metrics/token-estimator.js.map +1 -0
- package/dist/features/token-metrics/types.d.ts +63 -0
- package/dist/features/token-metrics/types.d.ts.map +1 -0
- package/dist/features/token-metrics/types.js +5 -0
- package/dist/features/token-metrics/types.js.map +1 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts +2 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -1
- package/dist/hooks/olympus-orchestrator/constants.js +41 -0
- package/dist/hooks/olympus-orchestrator/constants.js.map +1 -1
- package/dist/hooks/olympus-orchestrator/index.d.ts +10 -1
- package/dist/hooks/olympus-orchestrator/index.d.ts.map +1 -1
- package/dist/hooks/olympus-orchestrator/index.js +108 -14
- package/dist/hooks/olympus-orchestrator/index.js.map +1 -1
- package/dist/hooks/registrations/index.d.ts +2 -1
- package/dist/hooks/registrations/index.d.ts.map +1 -1
- package/dist/hooks/registrations/index.js +3 -1
- package/dist/hooks/registrations/index.js.map +1 -1
- package/dist/hooks/registrations/token-metrics.d.ts +11 -0
- package/dist/hooks/registrations/token-metrics.d.ts.map +1 -0
- package/dist/hooks/registrations/token-metrics.js +119 -0
- package/dist/hooks/registrations/token-metrics.js.map +1 -0
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +334 -9
- package/dist/installer/index.js.map +1 -1
- package/dist/shared/types.d.ts +16 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/scripts/.olympus/token-metrics.jsonl +1 -0
- package/scripts/dist/hooks/olympus-hooks.cjs +127 -128
- package/scripts/esbuild.hooks.mjs +1 -1
- package/.claude/CLAUDE.md +0 -66
- package/scripts/generate-logo-hybrid-v2.mjs +0 -213
- package/scripts/generate-logo-hybrid.mjs +0 -209
- package/scripts/generate-logo-infinity.mjs +0 -239
- package/scripts/generate-logo-mythology.mjs +0 -190
- package/scripts/generate-logo-orchestration.mjs +0 -228
- package/scripts/generate-logo-recraft.mjs +0 -147
- package/scripts/generate-logo-simple.mjs +0 -154
- package/scripts/generate-logo.mjs +0 -117
package/dist/features/index.d.ts
CHANGED
|
@@ -8,5 +8,8 @@ export { type QuestState, type PlanProgress, type PlanSummary, OLYMPUS_DIR, QUES
|
|
|
8
8
|
export { ContextCollector, contextCollector, injectPendingContext, injectContextIntoText, createContextInjectorHook, type ContextSourceType, type ContextPriority, type ContextEntry, type RegisterContextOptions, type PendingContext, type MessageContext, type OutputPart, type InjectionStrategy, type InjectionResult } from './context-injector/index.js';
|
|
9
9
|
export { BackgroundManager, ConcurrencyManager, getBackgroundManager, resetBackgroundManager, type BackgroundTask, type BackgroundTaskStatus, type BackgroundTaskConfig, type LaunchInput, type ResumeInput, type TaskProgress } from './background-agent/index.js';
|
|
10
10
|
export { createBuiltinSkills, getBuiltinSkill, listBuiltinSkillNames, type BuiltinSkill, type SkillMcpConfig, type SkillRegistry } from './builtin-skills/index.js';
|
|
11
|
+
export { saveCheckpoint, loadCheckpoint, listCheckpoints, validateCheckpoint, hashPlanContent, getGitSha, getCheckpointsDir, type AscentCheckpoint } from './ascent-checkpoint/index.js';
|
|
11
12
|
export { routeTask, routeWithEscalation, routeAndAdaptTask, escalateModel, canEscalate, explainRouting, quickTierForAgent, extractLexicalSignals, extractStructuralSignals, extractContextSignals, extractAllSignals, calculateComplexityScore, calculateComplexityTier, scoreToTier, getScoreBreakdown, calculateConfidence, evaluateRules, getMatchingRules, createRule, mergeRules, DEFAULT_ROUTING_RULES, adaptPromptForTier, getPromptStrategy, getPromptPrefix, getPromptSuffix, createDelegationPrompt, getTaskInstructions, TIER_MODELS, TIER_TO_MODEL_TYPE, DEFAULT_ROUTING_CONFIG, AGENT_CATEGORY_TIERS, COMPLEXITY_KEYWORDS, TIER_PROMPT_STRATEGIES, TIER_TASK_INSTRUCTIONS, type ComplexityTier, type ComplexitySignals, type LexicalSignals, type StructuralSignals, type ContextSignals, type RoutingDecision, type RoutingContext, type RoutingConfig, type RoutingRule, type PromptAdaptationStrategy, } from './model-routing/index.js';
|
|
13
|
+
export { SessionState, sessionState, type TaskCompletion } from './session-state/index.js';
|
|
14
|
+
export { logViolation, getViolationStats, readViolations, clearViolations, type HookViolation } from './hook-logging/index.js';
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EAEvB,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY,EAEZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EAEjB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAEhB,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EAEd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,gBAAgB,EAChB,gBAAgB,EAEhB,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAEzB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,iBAAiB,EACjB,kBAAkB,EAElB,oBAAoB,EACpB,sBAAsB,EAEtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EAErB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,EAEjB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EAEjB,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB,EAErB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EAEnB,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EAEtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"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"}
|
package/dist/features/index.js
CHANGED
|
@@ -32,6 +32,10 @@ getBackgroundManager, resetBackgroundManager } from './background-agent/index.js
|
|
|
32
32
|
export {
|
|
33
33
|
// Functions
|
|
34
34
|
createBuiltinSkills, getBuiltinSkill, listBuiltinSkillNames } from './builtin-skills/index.js';
|
|
35
|
+
// Ascent Checkpoint - checkpoint system for ascent safety
|
|
36
|
+
export {
|
|
37
|
+
// Functions
|
|
38
|
+
saveCheckpoint, loadCheckpoint, listCheckpoints, validateCheckpoint, hashPlanContent, getGitSha, getCheckpointsDir } from './ascent-checkpoint/index.js';
|
|
35
39
|
// Model Routing - intelligent model tier routing
|
|
36
40
|
export {
|
|
37
41
|
// Main functions
|
|
@@ -46,4 +50,8 @@ evaluateRules, getMatchingRules, createRule, mergeRules, DEFAULT_ROUTING_RULES,
|
|
|
46
50
|
adaptPromptForTier, getPromptStrategy, getPromptPrefix, getPromptSuffix, createDelegationPrompt, getTaskInstructions,
|
|
47
51
|
// Constants
|
|
48
52
|
TIER_MODELS, TIER_TO_MODEL_TYPE, DEFAULT_ROUTING_CONFIG, AGENT_CATEGORY_TIERS, COMPLEXITY_KEYWORDS, TIER_PROMPT_STRATEGIES, TIER_TASK_INSTRUCTIONS, } from './model-routing/index.js';
|
|
53
|
+
// Session State - task completion tracking
|
|
54
|
+
export { SessionState, sessionState } from './session-state/index.js';
|
|
55
|
+
// Hook Logging - violation logging
|
|
56
|
+
export { logViolation, getViolationStats, readViolations, clearViolations } from './hook-logging/index.js';
|
|
49
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO;AAOL,YAAY;AACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY;AACZ,YAAY;AACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB;AACjB,qBAAqB;AACrB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,sCAAsC;AACtC,OAAO;AAKL,YAAY;AACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc;AACd,YAAY;AACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,mEAAmE;AACnE,OAAO;AACL,UAAU;AACV,gBAAgB,EAChB,gBAAgB;AAChB,YAAY;AACZ,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAW1B,MAAM,6BAA6B,CAAC;AAErC,gDAAgD;AAChD,OAAO;AACL,UAAU;AACV,iBAAiB,EACjB,kBAAkB;AAClB,YAAY;AACZ,oBAAoB,EACpB,sBAAsB,EAQvB,MAAM,6BAA6B,CAAC;AAErC,6CAA6C;AAC7C,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EAKtB,MAAM,2BAA2B,CAAC;AAEnC,iDAAiD;AACjD,OAAO;AACL,iBAAiB;AACjB,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB;AACjB,oBAAoB;AACpB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB;AACjB,UAAU;AACV,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,mBAAmB;AACnB,QAAQ;AACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB;AACrB,oBAAoB;AACpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB;AACnB,YAAY;AACZ,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GAYvB,MAAM,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,sBAAsB,EACtB,gCAAgC,EAChC,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,+BAA+B,CAAC;AAEvC,OAAO;AAOL,YAAY;AACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,YAAY;AACZ,YAAY;AACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,aAAa,EACb,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB;AACjB,qBAAqB;AACrB,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,sCAAsC;AACtC,OAAO;AAKL,YAAY;AACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,cAAc;AACd,YAAY;AACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,mEAAmE;AACnE,OAAO;AACL,UAAU;AACV,gBAAgB,EAChB,gBAAgB;AAChB,YAAY;AACZ,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EAW1B,MAAM,6BAA6B,CAAC;AAErC,gDAAgD;AAChD,OAAO;AACL,UAAU;AACV,iBAAiB,EACjB,kBAAkB;AAClB,YAAY;AACZ,oBAAoB,EACpB,sBAAsB,EAQvB,MAAM,6BAA6B,CAAC;AAErC,6CAA6C;AAC7C,OAAO;AACL,YAAY;AACZ,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EAKtB,MAAM,2BAA2B,CAAC;AAEnC,0DAA0D;AAC1D,OAAO;AACL,YAAY;AACZ,cAAc,EACd,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,SAAS,EACT,iBAAiB,EAGlB,MAAM,8BAA8B,CAAC;AAEtC,iDAAiD;AACjD,OAAO;AACL,iBAAiB;AACjB,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB;AACjB,oBAAoB;AACpB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB;AACjB,UAAU;AACV,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,mBAAmB;AACnB,QAAQ;AACR,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,qBAAqB;AACrB,oBAAoB;AACpB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB;AACnB,YAAY;AACZ,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GAYvB,MAAM,0BAA0B,CAAC;AAElC,2CAA2C;AAC3C,OAAO,EACL,YAAY,EACZ,YAAY,EAEb,MAAM,0BAA0B,CAAC;AAElC,mCAAmC;AACnC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,eAAe,EAEhB,MAAM,yBAAyB,CAAC"}
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* - ANALYZE: Delegate to oracle agent
|
|
11
11
|
* - ASCENT: Relentless persistence mode
|
|
12
12
|
*
|
|
13
|
+
* Skill Auto-Detection:
|
|
14
|
+
* - FRONTEND-UI-UX: Detects UI/component/design work with 2+ visual keywords
|
|
15
|
+
* - GIT-MASTER: Detects refactor/rename/restructure operations
|
|
16
|
+
* - ASCENT: Detects completion signals like "must complete", "don't stop", "until done"
|
|
17
|
+
*
|
|
13
18
|
* Behavior: Strips code blocks before detection to avoid false positives
|
|
14
19
|
* Configuration: Customizable keyword patterns via olympus.jsonc
|
|
15
20
|
*/
|
|
@@ -34,4 +39,50 @@ export declare function extractPromptText(parts: Array<{
|
|
|
34
39
|
text?: string;
|
|
35
40
|
[key: string]: unknown;
|
|
36
41
|
}>): string;
|
|
42
|
+
/**
|
|
43
|
+
* Auto-detect frontend-ui-ux skill from prompt
|
|
44
|
+
*
|
|
45
|
+
* Detection logic:
|
|
46
|
+
* - Primary keywords: component, ui, ux, design, styling, css, html, tailwind, sass, scss
|
|
47
|
+
* - Element keywords: button, modal, dialog, form, input, navbar, sidebar, menu, dropdown, card, layout
|
|
48
|
+
* - Action keywords: animate, responsive, theme, style
|
|
49
|
+
* - Negative signals: api, backend, server, database, endpoint, query, migration
|
|
50
|
+
*
|
|
51
|
+
* Rules:
|
|
52
|
+
* - Check negative signals first (if present, return false)
|
|
53
|
+
* - Require 2+ keyword matches from primary/elements/actions
|
|
54
|
+
*/
|
|
55
|
+
export declare function detectFrontendUiUx(prompt: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Auto-detect git-master skill from prompt
|
|
58
|
+
*
|
|
59
|
+
* Detection logic:
|
|
60
|
+
* - Trigger keywords: refactor, rename, reorganize, migrate, restructure, move files
|
|
61
|
+
* - Post-Task activation: when 2+ files modified (checked via hook)
|
|
62
|
+
* - Check git status is clean before activation
|
|
63
|
+
*
|
|
64
|
+
* Rules:
|
|
65
|
+
* - Check prompt for trigger keywords
|
|
66
|
+
* - Skip if git status dirty (unsafe to start)
|
|
67
|
+
*/
|
|
68
|
+
export declare function detectGitMaster(prompt: string): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Auto-detect ascent skill from prompt
|
|
71
|
+
*
|
|
72
|
+
* Detection logic:
|
|
73
|
+
* - Positive patterns: don't stop, must complete, finish this/it/everything,
|
|
74
|
+
* complete all/everything, until done/complete/finished, keep going, don't give up
|
|
75
|
+
* - Negative patterns: try, attempt, explore, investigate, check if, see if
|
|
76
|
+
*
|
|
77
|
+
* Rules:
|
|
78
|
+
* - Check negative patterns first (if match, return false)
|
|
79
|
+
* - Use regex for positive patterns (handle contractions)
|
|
80
|
+
* - Return true if any positive pattern matches
|
|
81
|
+
*/
|
|
82
|
+
export declare function detectAscent(prompt: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Detect all skills from a prompt
|
|
85
|
+
* Returns array of skill names that should be activated
|
|
86
|
+
*/
|
|
87
|
+
export declare function detectSkills(prompt: string): string[];
|
|
37
88
|
//# sourceMappingURL=magic-keywords.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-keywords.d.ts","sourceRoot":"","sources":["../../src/features/magic-keywords.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"magic-keywords.d.ts","sourceRoot":"","sources":["../../src/features/magic-keywords.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA2UrE;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAK9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CA+C9G;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,MAAM,EAAE,CAoCpG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC,GAAG,MAAM,CAK/G;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAoE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAoBvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAqCpD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAgBrD"}
|
|
@@ -10,6 +10,11 @@
|
|
|
10
10
|
* - ANALYZE: Delegate to oracle agent
|
|
11
11
|
* - ASCENT: Relentless persistence mode
|
|
12
12
|
*
|
|
13
|
+
* Skill Auto-Detection:
|
|
14
|
+
* - FRONTEND-UI-UX: Detects UI/component/design work with 2+ visual keywords
|
|
15
|
+
* - GIT-MASTER: Detects refactor/rename/restructure operations
|
|
16
|
+
* - ASCENT: Detects completion signals like "must complete", "don't stop", "until done"
|
|
17
|
+
*
|
|
13
18
|
* Behavior: Strips code blocks before detection to avoid false positives
|
|
14
19
|
* Configuration: Customizable keyword patterns via olympus.jsonc
|
|
15
20
|
*/
|
|
@@ -427,4 +432,171 @@ export function extractPromptText(parts) {
|
|
|
427
432
|
.map(p => p.text ?? '')
|
|
428
433
|
.join('\n');
|
|
429
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* Auto-detect frontend-ui-ux skill from prompt
|
|
437
|
+
*
|
|
438
|
+
* Detection logic:
|
|
439
|
+
* - Primary keywords: component, ui, ux, design, styling, css, html, tailwind, sass, scss
|
|
440
|
+
* - Element keywords: button, modal, dialog, form, input, navbar, sidebar, menu, dropdown, card, layout
|
|
441
|
+
* - Action keywords: animate, responsive, theme, style
|
|
442
|
+
* - Negative signals: api, backend, server, database, endpoint, query, migration
|
|
443
|
+
*
|
|
444
|
+
* Rules:
|
|
445
|
+
* - Check negative signals first (if present, return false)
|
|
446
|
+
* - Require 2+ keyword matches from primary/elements/actions
|
|
447
|
+
*/
|
|
448
|
+
export function detectFrontendUiUx(prompt) {
|
|
449
|
+
const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
|
|
450
|
+
// Negative signals - if present, NOT a frontend task
|
|
451
|
+
const negativeSignals = [
|
|
452
|
+
/\bapi\b/,
|
|
453
|
+
/\bbackend\b/,
|
|
454
|
+
/\bserver\b/,
|
|
455
|
+
/\bdatabase\b/,
|
|
456
|
+
/\bendpoint\b/,
|
|
457
|
+
/\bquery\b/,
|
|
458
|
+
/\bmigration\b/
|
|
459
|
+
];
|
|
460
|
+
for (const signal of negativeSignals) {
|
|
461
|
+
if (signal.test(cleanPrompt)) {
|
|
462
|
+
return false;
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
// Primary keywords
|
|
466
|
+
const primaryKeywords = [
|
|
467
|
+
/\bcomponent\b/,
|
|
468
|
+
/\bui\b/,
|
|
469
|
+
/\bux\b/,
|
|
470
|
+
/\bdesign\b/,
|
|
471
|
+
/\bstyling\b/,
|
|
472
|
+
/\bcss\b/,
|
|
473
|
+
/\bhtml\b/,
|
|
474
|
+
/\btailwind\b/,
|
|
475
|
+
/\bsass\b/,
|
|
476
|
+
/\bscss\b/
|
|
477
|
+
];
|
|
478
|
+
// Element keywords
|
|
479
|
+
const elementKeywords = [
|
|
480
|
+
/\bbutton\b/,
|
|
481
|
+
/\bmodal\b/,
|
|
482
|
+
/\bdialog\b/,
|
|
483
|
+
/\bform\b/,
|
|
484
|
+
/\binput\b/,
|
|
485
|
+
/\bnavbar\b/,
|
|
486
|
+
/\bsidebar\b/,
|
|
487
|
+
/\bmenu\b/,
|
|
488
|
+
/\bdropdown\b/,
|
|
489
|
+
/\bcard\b/,
|
|
490
|
+
/\blayout\b/
|
|
491
|
+
];
|
|
492
|
+
// Action keywords
|
|
493
|
+
const actionKeywords = [
|
|
494
|
+
/\banimate\b/,
|
|
495
|
+
/\bresponsive\b/,
|
|
496
|
+
/\btheme\b/,
|
|
497
|
+
/\bstyle\b/
|
|
498
|
+
];
|
|
499
|
+
// Count matches
|
|
500
|
+
let matchCount = 0;
|
|
501
|
+
for (const keyword of [...primaryKeywords, ...elementKeywords, ...actionKeywords]) {
|
|
502
|
+
if (keyword.test(cleanPrompt)) {
|
|
503
|
+
matchCount++;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
// Require 2+ keyword matches
|
|
507
|
+
return matchCount >= 2;
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Auto-detect git-master skill from prompt
|
|
511
|
+
*
|
|
512
|
+
* Detection logic:
|
|
513
|
+
* - Trigger keywords: refactor, rename, reorganize, migrate, restructure, move files
|
|
514
|
+
* - Post-Task activation: when 2+ files modified (checked via hook)
|
|
515
|
+
* - Check git status is clean before activation
|
|
516
|
+
*
|
|
517
|
+
* Rules:
|
|
518
|
+
* - Check prompt for trigger keywords
|
|
519
|
+
* - Skip if git status dirty (unsafe to start)
|
|
520
|
+
*/
|
|
521
|
+
export function detectGitMaster(prompt) {
|
|
522
|
+
const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
|
|
523
|
+
// Trigger keywords
|
|
524
|
+
const triggerKeywords = [
|
|
525
|
+
/\brefactor\b/,
|
|
526
|
+
/\brename\b/,
|
|
527
|
+
/\breorganize\b/,
|
|
528
|
+
/\bmigrate\b/,
|
|
529
|
+
/\brestructure\b/,
|
|
530
|
+
/\bmove\s+files?\b/
|
|
531
|
+
];
|
|
532
|
+
for (const keyword of triggerKeywords) {
|
|
533
|
+
if (keyword.test(cleanPrompt)) {
|
|
534
|
+
return true;
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Auto-detect ascent skill from prompt
|
|
541
|
+
*
|
|
542
|
+
* Detection logic:
|
|
543
|
+
* - Positive patterns: don't stop, must complete, finish this/it/everything,
|
|
544
|
+
* complete all/everything, until done/complete/finished, keep going, don't give up
|
|
545
|
+
* - Negative patterns: try, attempt, explore, investigate, check if, see if
|
|
546
|
+
*
|
|
547
|
+
* Rules:
|
|
548
|
+
* - Check negative patterns first (if match, return false)
|
|
549
|
+
* - Use regex for positive patterns (handle contractions)
|
|
550
|
+
* - Return true if any positive pattern matches
|
|
551
|
+
*/
|
|
552
|
+
export function detectAscent(prompt) {
|
|
553
|
+
const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
|
|
554
|
+
// Negative patterns - if present, NOT an ascent task
|
|
555
|
+
const negativePatterns = [
|
|
556
|
+
/\btry\b/,
|
|
557
|
+
/\battempt\b/,
|
|
558
|
+
/\bexplore\b/,
|
|
559
|
+
/\binvestigate\b/,
|
|
560
|
+
/\bcheck\s+if\b/,
|
|
561
|
+
/\bsee\s+if\b/
|
|
562
|
+
];
|
|
563
|
+
for (const pattern of negativePatterns) {
|
|
564
|
+
if (pattern.test(cleanPrompt)) {
|
|
565
|
+
return false;
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
// Positive patterns (with contraction support)
|
|
569
|
+
const positivePatterns = [
|
|
570
|
+
/don'?t\s+stop/,
|
|
571
|
+
/must\s+complete/,
|
|
572
|
+
/finish\s+(this|it|everything)/,
|
|
573
|
+
/complete\s+(all|everything)/,
|
|
574
|
+
/until\s+(done|complete|finished)/,
|
|
575
|
+
/keep\s+going/,
|
|
576
|
+
/don'?t\s+give\s+up/
|
|
577
|
+
];
|
|
578
|
+
for (const pattern of positivePatterns) {
|
|
579
|
+
if (pattern.test(cleanPrompt)) {
|
|
580
|
+
return true;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
return false;
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Detect all skills from a prompt
|
|
587
|
+
* Returns array of skill names that should be activated
|
|
588
|
+
*/
|
|
589
|
+
export function detectSkills(prompt) {
|
|
590
|
+
const skills = [];
|
|
591
|
+
if (detectFrontendUiUx(prompt)) {
|
|
592
|
+
skills.push('frontend-ui-ux');
|
|
593
|
+
}
|
|
594
|
+
if (detectGitMaster(prompt)) {
|
|
595
|
+
skills.push('git-master');
|
|
596
|
+
}
|
|
597
|
+
if (detectAscent(prompt)) {
|
|
598
|
+
skills.push('ascent');
|
|
599
|
+
}
|
|
600
|
+
return skills;
|
|
601
|
+
}
|
|
430
602
|
//# sourceMappingURL=magic-keywords.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"magic-keywords.js","sourceRoot":"","sources":["../../src/features/magic-keywords.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"magic-keywords.js","sourceRoot":"","sources":["../../src/features/magic-keywords.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session State Tracking
|
|
3
|
+
*
|
|
4
|
+
* Tracks recent task completions to enable smart verification edit detection.
|
|
5
|
+
* Maintains in-memory state of the last 3 completed tasks and their modified files.
|
|
6
|
+
*/
|
|
7
|
+
export interface TaskCompletion {
|
|
8
|
+
timestamp: number;
|
|
9
|
+
filesModified: string[];
|
|
10
|
+
taskId: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* SessionState tracks recent task completions and determines if an edit
|
|
14
|
+
* qualifies as a "verification edit" (small edit on recently-modified file).
|
|
15
|
+
*/
|
|
16
|
+
export declare class SessionState {
|
|
17
|
+
private recentTasks;
|
|
18
|
+
private readonly maxTracked;
|
|
19
|
+
/**
|
|
20
|
+
* Record a task completion with its modified files
|
|
21
|
+
*/
|
|
22
|
+
recordTaskCompletion(completion: TaskCompletion): void;
|
|
23
|
+
/**
|
|
24
|
+
* Check if a file edit qualifies as a verification edit:
|
|
25
|
+
* - File was modified by one of the last 3 tasks
|
|
26
|
+
* - Edit is small (< 10 lines changed)
|
|
27
|
+
*/
|
|
28
|
+
isVerificationEdit(filePath: string, linesChanged: number): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Get all files modified by recent tasks (deduplicated)
|
|
31
|
+
*/
|
|
32
|
+
getRecentTaskFiles(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Get recent task completions (for debugging/testing)
|
|
35
|
+
*/
|
|
36
|
+
getRecentTasks(): TaskCompletion[];
|
|
37
|
+
/**
|
|
38
|
+
* Clear all tracked tasks (for testing)
|
|
39
|
+
*/
|
|
40
|
+
clear(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Get number of tracked tasks
|
|
43
|
+
*/
|
|
44
|
+
get trackedCount(): number;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Singleton instance for the session
|
|
48
|
+
*/
|
|
49
|
+
export declare const sessionState: SessionState;
|
|
50
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/session-state/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAwB;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAK;IAEhC;;OAEG;IACH,oBAAoB,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI;IAOtD;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAUnE;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAK9B;;OAEG;IACH,cAAc,IAAI,cAAc,EAAE;IAIlC;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session State Tracking
|
|
3
|
+
*
|
|
4
|
+
* Tracks recent task completions to enable smart verification edit detection.
|
|
5
|
+
* Maintains in-memory state of the last 3 completed tasks and their modified files.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* SessionState tracks recent task completions and determines if an edit
|
|
9
|
+
* qualifies as a "verification edit" (small edit on recently-modified file).
|
|
10
|
+
*/
|
|
11
|
+
export class SessionState {
|
|
12
|
+
recentTasks = [];
|
|
13
|
+
maxTracked = 3;
|
|
14
|
+
/**
|
|
15
|
+
* Record a task completion with its modified files
|
|
16
|
+
*/
|
|
17
|
+
recordTaskCompletion(completion) {
|
|
18
|
+
this.recentTasks.unshift(completion);
|
|
19
|
+
if (this.recentTasks.length > this.maxTracked) {
|
|
20
|
+
this.recentTasks.pop();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Check if a file edit qualifies as a verification edit:
|
|
25
|
+
* - File was modified by one of the last 3 tasks
|
|
26
|
+
* - Edit is small (< 10 lines changed)
|
|
27
|
+
*/
|
|
28
|
+
isVerificationEdit(filePath, linesChanged) {
|
|
29
|
+
// Check if file was modified by any of last 3 tasks
|
|
30
|
+
const wasModifiedByTask = this.recentTasks.some((task) => task.filesModified.includes(filePath));
|
|
31
|
+
// Must be small edit (< 10 lines) on file from recent task
|
|
32
|
+
return wasModifiedByTask && linesChanged < 10;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get all files modified by recent tasks (deduplicated)
|
|
36
|
+
*/
|
|
37
|
+
getRecentTaskFiles() {
|
|
38
|
+
const allFiles = this.recentTasks.flatMap((t) => t.filesModified);
|
|
39
|
+
return Array.from(new Set(allFiles));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Get recent task completions (for debugging/testing)
|
|
43
|
+
*/
|
|
44
|
+
getRecentTasks() {
|
|
45
|
+
return [...this.recentTasks];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Clear all tracked tasks (for testing)
|
|
49
|
+
*/
|
|
50
|
+
clear() {
|
|
51
|
+
this.recentTasks = [];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get number of tracked tasks
|
|
55
|
+
*/
|
|
56
|
+
get trackedCount() {
|
|
57
|
+
return this.recentTasks.length;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Singleton instance for the session
|
|
62
|
+
*/
|
|
63
|
+
export const sessionState = new SessionState();
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/session-state/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;GAGG;AACH,MAAM,OAAO,YAAY;IACf,WAAW,GAAqB,EAAE,CAAC;IAC1B,UAAU,GAAG,CAAC,CAAC;IAEhC;;OAEG;IACH,oBAAoB,CAAC,UAA0B;QAC7C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;QACvD,oDAAoD;QACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACvD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtC,CAAC;QAEF,2DAA2D;QAC3D,OAAO,iBAAiB,IAAI,YAAY,GAAG,EAAE,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/features/session-state/index.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|